0
点赞
收藏
分享

微信扫一扫

C#学习笔记3——面向对象

zmhc 2022-04-13 阅读 60
c#

1、类(class):字段(field)->变量,方法(method)->函数

class Persom{
    publie int a ;
    public void GetInfo(){

    }
}

2、构造方法(constructor):完成对象的初始化

        1)方法名与类名相同         2)没有返回类型,不能写void

pubilc Person(int b){
    a=b;
}

        系统默认产生构造方法,默认为public Person( ) { };

3、析构方法:C#自动进行对象的释放

4、方法重载(overloading):方法的签名不同(方法名及参数个数与类型,参数名不算)

5、this:对象本身

        1)访问本对象字段与方法

        2)区分字段与局部变量

public Person(int a)
{
    this.a=a;
}

        3)构造方法调用另一个构造方法

public Person():this(7)   
{
    ...
}

属性、索引

6、属性(property):对字段的一种访问(set、get)

private string _name;
public string Name
{
    get
    {
        return _name;
    }
    set
    {
        _name=value;
    }

}

//C#3以上版本可简写为
public string Name{get;set;}

        对属性的访问:

Person p=nwe Person;
p.a=7;
Console.WriteLine(p.a);

//编译器产生方法
void set_Name(int value);
string get_Name();

        属性实际上是方法,属性的优点:

        1)可只读或只写:只有get或set

        2)可有效性检查:if

        3)可是计算得到的数据

public string Info{
    get{return "Age:"+a;}
}

        4)可定义抽象属性

7、索引(indexer):对内容取下标的访问

修饰符 类型名 this[参数列表]
{
    set
    {
    }
    get
    {
    }
}

        使用索引:对象名[参数]

        编译器自动产生两个方法供使用

T get_Item(P);
void set_Item(P,T value);

         属性、索引的比较

属性索引
通过名称标识通过参数列表进行标识
通过简单名称访问通过[ ]运算符来访问
可用static修饰不能用static修饰
get访问器没有参数get访问器具有与索引相同的参数列表
set访问器包含隐式value参数除了value参数外,set访问器还有与索引相同的参数列表

 类的继承

8、继承(inheritance):子类subclass、父类baseclass

        C#中采用单继承,所有的类都是通过直接或间接继承

        子类自动从父类继承:字段、方法、属性、索引器等成员作为自己的成员

        除了继承父类的成员,还可以添加新的成员,隐藏或修改父类的成员

9、方法的继承

        与父类同名的方法:

        1)同名不同参数->重载(overloading)

        2)同名同参数->new

        3)同名同参,父类用absteact或virtual,子类用override修饰->虚方法的覆盖(overriding)

Person p1=new Person();
Person p2=new Student();
Student s1=new Student();
Student s2=new Student();
p1=s1;            //可以,Person类型可以引用Student对象
s2=p1;            //不行,编译错误
s2=(Student)p1;   //编译通过,运行时类型不能转换
s2=(Student)p2;   //正确,p2引用为Student对象

10、as运算符:若不能转换,值为null

        差别(与强制类型转换):1)as只针对引用型变量    2)若不能转换不会异常,结果为null

Student s3=p1 as Student;
Student s4=p2 as Student;

 11、is运算符:判断一个对象是不是某个类(及其子类)的实例

修饰符

举报

相关推荐

0 条评论