C#类
//类头 public class People //一般来说C#中定义类时,它的首字母是大写 { //类体 //定义变量 public string name; public int age; } //实例化对象 People peo=new peo(); //变量赋值 peo.age=21; //////类的构造函数 //在创建一个类的时候,系统会自动给分配一个无参的构造函数 //有参构造函数 public People(string _name,int _age) { //可以用this指针 name=_name; age=_age; } //类中定义方法注意前面加上public,其他的和C++类同 //C++中的引用是用"&",而C#中"ref","out"为引用参数声明符,效果同C++的引用 "ref":当实参没有初始化,传给形参时,会报错,其他的效果同C++的引用 "out":当实参没有初始化,传给形参时,不会报错,其他的效果同C++的引用 即使用"ref"的变量必须初始化! //"params"数组型参数 public void show(params int[] showages) //当传进来的数组元素个数不确定时,声明params关键字为可变数组 { } //main int[] myages={11,12,13}; peo.show(myages); //////静态 //类中声明为静态变量:public static string name 访问方法可以直接通过类名调用 //类中声明为静态方法:public static void show(){} 访问方法可以直接通过类名调用 非静态方法可以访问静态变量 //静态类 public static class student { } //!静态类中不允许出现实例化的字段或方法 //////访问私有字段(封装字段) 当类中字段声明为私有时 private string name; 此时类外部无法直接访问该字段 访问方法: 在类中定义属性: public string Name { get //表示在访问属性的时候,所对应访问的字段 { return name; } set //隐式参数value,表示即将赋值的数据 { name=value; } } //main People peo=new People(); peo.Name; peo.Name="lin"; //也可以选中行,右键【重构】->【封装字段】 //////类的继承 //继承People public class doctor:People { } //base关键字 //子类新属性private string addr;进行封装 //如果基类有有参构造函数,则在子类中的构造函数需要这样写: public doctor(string name,int age,string addr):base(name,age) { this.addr=addr; } //new关键字 如果在基类中: public void show() { Console.WriteLine(this.Name+this.Age); } 子类中: public new void show() //声明为new覆盖基类的方法 { Console.WriteLine(this.Name+this.Age+this.Addr); } 也可以先调用基类的方法,再输出子类自己的方法 public new void show() { base.show(); Console.WriteLine(this.Addr); } //override关键字是针对父类中已经定义好的虚方法(virtual)可以进行重写(即父类中的方法应该声明为virtual) public override void show() { Console.WriteLine(this.Addr); }