객체지향의 핵심인 클래스는 C#에서 매우 광범위하고 심층적으로 적용됩니다. 클래스에 대한 심층적인 숙달은 당연히 C# 학습의 중요한 부분입니다. 12--- 참조 유형은 이미 제공되었으므로 여기서는 반복하지 않겠습니다. 클래스와 밀접하게 관련된 것, 즉 객체에 대해 이야기해야 합니다.
클래스 및 객체:
클래스: 동일한 속성을 가진 사물로부터 추상화된 개념으로 일반적으로 유사한 개인의 집합을 설명하는 데 사용됩니다.
객체: 클래스를 구현한 개인입니다. (예를 들어 인간은 클래스이고 장산은 인간의 객체입니다.)
속성: 객체의 특성을 설명하는 데 사용됩니다. (클래스에서는 클래스의 데이터 멤버입니다^_^)
메서드: 개체의 기능을 설명합니다. (클래스 내부에서는 ^_^ 클래스의 데이터 멤버입니다. C/C++에서는 함수라고 부르는데, 추후 이름을 바꿀 예정입니다.)
이벤트: 다음 기능을 갖춘 함수입니다. 트리거의 차이점은 이벤트는 수동적이고 외부 사물에 의해 발생하며 수신자는 객체이며, 메소드는 객체에 의해 능동적으로 발생되는 작업이며 클래스의 데이터 멤버라는 것입니다.
클래스 정의: 클래스 정의는 class라는 키워드로 시작하고 그 뒤에 클래스 이름이 옵니다. 한 쌍의 중괄호로 묶인 클래스 본문입니다.访问修饰符 class 类名 { 访问修饰符数据成员; }
public class Student { private string name; private int age; }
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { //定义的一个类,类名叫People public class People { //全部指定为公有成员 public string name; public char sex; public uint age; } class Program { static void Main(string[] args) { People person = new People(); //实例化一个类,对象名叫 person Console.WriteLine("输入姓名: "); person.name = Console.ReadLine(); // 全部轻松访问,没有压力 Console.WriteLine("请输入性别:"); person.sex = Console.ReadKey().KeyChar; //char 类型转换 Console.WriteLine("\n请输入年龄:"); person.age = uint.Parse(Console.ReadLine()); //强制类型转换 Console.WriteLine("您的姓名是:{0}\t您的性别是:{1}\t您的年龄是:{2}",person.name,person.sex,person.age); } } }
위에 쓰여진 코드를 읽은 후, 이름을 제외하고 이 프로그램과 Struct 유형의 차이점이 무엇인지 발견했습니다. 위 프로그램에는 실제로 차이가 없습니다(모든 멤버는 공개입니다). 다음을 보십시오.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { //定义的一个类,类名叫People public class People { //全部指定私有成员 private string name; private char sex; private uint age; //定义public 方法作用是输入与输出 public void input() { Console.WriteLine("输入姓名: "); name = Console.ReadLine(); Console.WriteLine("请输入性别:"); sex = Console.ReadKey().KeyChar; //char 类型转换 Console.WriteLine("\n请输入年龄:"); age = uint.Parse(Console.ReadLine()); //强制类型转换 } public void output() { Console.WriteLine("您的姓名是:{0}\t您的性别是:{1}\t您的年龄是:{2}",name, sex,age); } } class Program { static void Main(string[] args) { People person = new People(); //实例化一个类,对象名叫 person person.input(); //通过调用 public 方法访问privat 成员并赋值 person.output(); //此时无法使用直接使用 Console.WriteLine(person.name)输出,访问权限不够 } } }
위와 완전히 동일하게 실행됩니다. 클래스에서 메서드를 정의할 수 있지만(위의 입력과 출력은 두 가지 메서드임) Struct 구조에서는 메서드를 정의할 수 없으며 속성을 지정합니다. People 클래스에서는 private 멤버로 외부 개체인 person에 직접 액세스할 수 없으며 People에 지정된 Public 메서드를 통해서만 액세스할 수 있습니다. 예를 들면, 우리가 통화할 때 대면하여 소통하는 것이 아니라 휴대전화를 매개로 서로 정보를 교환하는 것입니다. 이때 휴대전화는 귀하의 공공수단 중 하나로 간주될 수 있으며 귀하는 클래스의 비공개 메소드입니다. 저는 이 클래스에 의해 인스턴스화된 객체입니다.
위 내용은 C# 학습일지 13---클래스 선언 및 정의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!