C#-类(九)
类的定义
类是描述具有相同特征与行为的事物的抽象,类内部包含类的特征和类的行为
类支持继承
类的定义是关键字class为标志
类的格式
访问标识符 class 类名
{
类主体
}
访问标识符:指定了类及其成员的访问规则。如果不指定则使用默认的标识符
类的默认标识符为internal,而类成员的默认访问标识符为private
类的主体:定义行为和数据,类的字段、属性、方法和事件统称为类成员
类中函数和封装
类的成员函数是一个在类定义中有它的定义或原型的函数。作为类的一个成员,它能在类的任何对象上操作,且能访问该对象的类的所有成员
成员变量是对象的属性(从设计角度),且它们保持私有来实现封装
这些变量只能使用公共成员函数来访问
具体封装的过程参考上篇博文C#-方法(八)
类中构造函数
构造函数主要是用来创建对象时为对象赋初值来初始化对象。总与new运算符一起使用在创建对象的语句中
构造函数具有和类一样的名称,但它是一个特殊的函数,同一个类里面可以有多个参数不同的构造函数,也就是函数的多态
构造函数没有返回值,也不能用void修饰,只有访问修饰符
每个类中都会一个构造函数,如果用户定义没有定义,编译器就会自动为该类型生成默认构造函数
默认的构造函数没有任何参数
构造函数目的是用于初始化类
示例
1 namespace 构造函数 2 { 3 class Animal 4 { 5 //构造函数 6 public Animal(string name, string color, int speed) 7 { 8 this.name = name; 9 this.color = color; 10 this.speed = speed; 11 } 12 13 //名称 14 private string name; 15 public string Name 16 { 17 get { return name; } 18 set { name = value; } 19 } 20 //颜色 21 private string color; 22 public string Color 23 { 24 get { return color; } 25 set { color = value; } 26 } 27 28 //速度 29 private int speed; 30 public int Speed 31 { 32 get { return speed; } 33 set { speed = value; } 34 } 35 36 //主函数中创建类,获取构造函数中的属性 37 static void Main(string[] args) 38 { 39 Animal Tiger = new Animal("BigTiger", "yellow", 20); 40 Console.WriteLine("名字叫{0}身上的颜色是{1}行进速度为{2}", Tiger.Name, Tiger.Color, Tiger.Speed); 41 } 42 } 43 }
结果
类中析构函数
析构函数用于释放被占用的系统资源
析构函数的名字由符号“~”加类名组成
析构函数只能被自动调用
一个类只能有一个析构函数
析构函数没有任何修饰符、没有任何参数、也不返回任何值
析构函数不能继承或重载
构造函数VS析构函数
构造函数和析构函数是在类中说明的两种特殊的成员函数
构造函数是在创建对象时,使用给定的值将对象初始化
析构函数用于释放一个对象。在对象删除前,使用析构函数做一些清理工作,它与构造函数的功能正好相反
示例
1 using System; 2 namespace AgeApplication 3 { 4 class Age 5 { 6 private int number; // 线条的长度 7 public Age() // 构造函数 8 { 9 Console.WriteLine("年龄已创建"); 10 } 11 ~Age() //析构函数 12 { 13 Console.WriteLine("年龄已删除"); 14 } 15 16 public void setNumber(int Number) 17 { 18 number = Number; 19 } 20 public int getNumber() 21 { 22 return number; 23 } 24 25 static void Main(string[] args) 26 { 27 Age XiaoMing = new Age(); 28 // 设置年龄大小 29 XiaoMing.setNumber(18); 30 Console.WriteLine("小明的年龄是: {0}", XiaoMing.getNumber()); 31 } 32 } 33 }
结果
类的静态成员
使用static关键字把类成员定义为静态的
静态变量用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的实例来获取
当把一个成员函数声明为static。这样的函数就只能访问静态变量
创建对象
类定义对象的类型,但它不是对象本身
对象是类的具体
对象是基于类的具体实体,也称为类的实例
通过使用new关键字,后跟对象将基于的类的名称,可以创建对象
格式: 类名 对象名 = new 类名()
例:有一个 public class Student{类主体}的类
创建对象:Student XiaoMing = new Student();
创建类的实例后,对象可以获得类的属性