@
字段
字段的声明与声明变量类似,可以添加访问修饰符,通常情况下字段设置为私有的,然后定义属性对字段的读写进行限制
一般的命名规范约定,私有字段使用下划线前缀、小驼峰命名
private int _age //定义一个私有字段_age
属性
属性拥有两个访问器(get和set),用于控制读取和写入,通常和字段配套使用,用来对字段进行读写限制
//定义一个Age属性,限制赋值给_age字段的值为18到60岁之间 //get和set类似于不能接受参数的方法,value是赋给Age属性的值 public int Age { get { return _age; } set { if(value >= 18 && value<=60) _age = value; } }
方法
正式的C#术语中区分函数和方法,但是在初期,我们也可以把方法当成函数来理解
//定义一个SayAge方法,传递一个int类型的变量给SayAge方法,输出“我的年龄是~” public void SayAge(int age) { Console.WriteLine($"我的年龄是{age}") }
构造函数
构造函数是在创建对象的时候调用的方法,主要作用是初始化字段(为字段赋值),构造函数支持重载,即根据不同的参数签名(参数列表和参数类型共同组成),调用不同的构造函数
//定义Pen类,并创建构造方法 class Pen { private int _price; //无参构造方法,将_price字段初始化为0 public Pen() { this._price = 0; } //接收一个int类型的构造方法,将_price字段初始化为传递进来的price变量 public Pen(int price) { this._age = price; } } //注意事项:在如果没有定义构造函数,编译器会自动添加一个无参构造函数 //注意事项:如果自行定义了构造函数,无论带几个参数,编译器就不会再自动添加无参构造函数,如有需要,需要手动声明 //注意事项:如果构造函数没有为字段赋值,编译器会将值类型初始化为0,引用类型初始化为NULL
类和对象的简单解释
类是类别,是一个虚指;对象是具体的,是一个实指。如钢笔是一个类,我的价值15块的钢笔就是一个对象。
创建类和对象
//借用上方的Pen类,创建一个对象 Pen myPen = new Pen(15); //此条语句创建了一个myPen对象,并调用Pen(int price)构造函数将myPen对象的_price字段赋值为15
类中成员的归属问题
类中的成员有静态和非静态的区别,非静态成员每个对象都有一份,静态成员类有一份
Pen myPen = new Pen(15); Pen hePen = new Pen(150); //上方Pen类中price字段定义为非静态成员 //在定义myPen和hePen两个对象中,每个对象都有自己的_price字段
静态成员属于类,对象是没有的,且一个类的每个静态成员只有一份
//静态成员使用static修饰 //在Pen中定义一个Write静态方法,这个方法属于类,使用类名.方法名调用,例如这里需要调用此静态方法的语句是Pen.Write() class Pen { public static void Write() { Console.WriteLine("笔可以写字"); } } //注意事项:类的静态成员与对象无关,即实例化的Pen的对象myPen,是没有Write()方法的 //注意事项:每个类的每个静态成员只有一份,即Pen.Wirte()指向的方法和使用Pen实例化若干个对象后调用的Pen.Write()是同一个
类也可以定义为静态,静态类不能再实例化对象,定义静态类的主要作用是提供一些常用方法
如C#中的Console.WriteLine()
就是一个静态类中的静态方法
来源:https://www.cnblogs.com/wujuncheng/p/12586652.html