C#面向对象,基础知识

面向对象:就是CLASS,class就是用户自定义类型;

class:用户自定义引用类型;

三大特点:封装、继承、多态;

解决方案中右键添加class;

class内可以写结构体,枚举,函数;

C#中各个形状的含义

属性----------小扳手

成员变量------长方体

方法(函数)--立方体

封装:---属性

成员变量;对象;

public修饰符--可以跨类访问;

Main函数中Static不属于任何类,所以必须调用类;

方法的重载:

一个函数有多重的含义;

名称相同,参数不同时;

Ctrl+Shift+空格

类的静态成员:(Static)

就是不需要初始化

Static就是静态的意思;

在通过对象不走;直接通过“类”走;

讲义中:for循环中区分下区别的

命名空间:

namespace 名字----命名空间;

using就是应用的意思;

类库:

构造函数:

每一个类都默认有一个同名的无参数无返回值的构造函数;

造对象的过程,new初始化,实际就是调用类的构造函数的过程;

例子:public 名字(){}这就是默认的无参无返回值构造函数;

构造函数也是可以重载的;

四个修饰符:

public:可以跨命名空间使用,需要引用命名空间名;

private:私有的,只能在自己当前类访问;

protected:受保护的,能够跨类,在自己的子类可以访问;

internal(内部的,默认的)当前命名空间使用;

继承:类与类之间的关系(父子关系)

子类继承父类,那么子类就拥有父类的公共属性和方法;

一个子类只能继承一个父类,一个父类可以有多个子类;

子类对象可以直接转成父类,但父类只能“转回”对应的子类;

如果子类转成父类之后,父类对象就不能有子类的属性和方法;

继承的是公共的类;

引用类型和值类型的区别:

赋值时:

int a = 1;

int b = a;//a与b是两个完全不同的

Class1 dataa = new Class1();

Class1 datab = new Class1();//完全不同的

Class1 data1 = new Class1();

Class1 data2 = data1;//data2只是data1的一个快捷方式;是相同的;

class Tiger:Animal(继承关系表达)

{

}

继承的重载:

子类继承父类的方法,同名不同参时就可出现重载;

如果与父类同名同参时:子类只调用自己的方法;

还有一个虚方法(在其他班视频的6中最后几分钟),在子类转换成父类型后,仍然调用的是子类的方法;

多态:有了继承,才有多态。子类的多样化。

抽象基类与接口:就是子类必须继承父类的属性或方法;

抽象类不能造对象;无法直接在Main函数中new初始化使用;只有通过子类来使用;

就是加上abstract在class前

抽象方法和属性必须写在抽象类内;

抽象方法直接“;”结束,里面不写内容,通过子类必须写

override来实现;

抽象属性:

public abstract string 名字

{

get;

set;

}

接口:(相当于子类的师傅,一个子类可以有多个接口)

public interface xixing

{

void quyu();

}

以上就是一个xixing接口,里面有个函数quyu();

子类与接口连接后,也必须使用此接口内的函数;

winform:

partial分割;

所有控件都是类;

所有属性就是封装;

this说的是自己所在的类;

委托在类的外面;

委托变量的加法和减法:

委托变量的加法:当两个委托变量相加后,会先后执行,

最后返回后一个委托变量的值;

委托变量的减法:执行减号前面的委托变量,减号后面的的委托变量就不执行了;

class Tiger:Animal(继承关系表达)

{

}

继承的重载:

子类继承父类的方法,同名不同参时就可出现重载;

如果与父类同名同参时:子类只调用自己的方法;

还有一个虚方法(在其他班视频的6中最后几分钟),在子类转换成父类型后,仍然调用的是子类的方法;

多态:有了继承,才有多态。子类的多样化。

抽象基类与接口:就是子类必须继承父类的属性或方法;

抽象类不能造对象;无法直接在Main函数中new初始化使用;只有通过子类来使用;

就是加上abstract在class前

抽象方法和属性必须写在抽象类内;

抽象方法直接“;”结束,里面不写内容,通过子类必须写

override来实现;

抽象属性:

public abstract string 名字

{

get;

set;

}

接口:(相当于子类的师傅,一个子类可以有多个接口)

public interface xixing

{

void quyu();

}

以上就是一个xixing接口,里面有个函数quyu();

子类与接口连接后,也必须使用此接口内的函数;

1110:

winform:

partial分割;

所有控件都是类;

所有属性就是封装;

this说的是自己所在的类;

委托在类的外面;

委托变量的加法和减法:

委托变量的加法:当两个委托变量相加后,会先后执行,

最后返回后一个委托变量的值;

委托变量的减法:执行减号前面的委托变量,减号后面的的委托变量就不执行了;