C#面向对象
1、重载并没有使代码减少多少,但是方便了类的使用者,使类看上去有智能化的效果。
2、类的构造函数
函数名称和类的名称相同
不能有返回值
不能调用,new的时候自动调用//比如说类创建的时候就给他的一些字段赋值,把初始化的代码写到类的函数里,类的构造函数可以重载的。
3、继承是多态的一个基础
理解抽象类接口的区别以及如何利用他们实现多态
4、例如学生、老师都有共有的属性,年龄,班级、等,可以统一提取出来。继承共性,发扬个性。
5、
public calss Person
{
pricate int _age;
public int Age
{
get{returm _age;}
set{_age=value;}
}
private string _name;
public int Name
{
get{returm _age;}
set{_age=value;}
}
public string _sex;
public int Sex
{
get{returm _age;}
set{_age=value;}
}
}
-----------------------------------------------------------
1、OOP最核心的 封装 继承 多态。语言和语义上理解OOP
2、对象-----类的实例。类使抽象的概念,类就是创建对象的模板。模子使类,砖是实例。
1、函数,变量,if,for,while循环,这些都是面向过程的。但是不要把面向对象和面向过程分开,
这是一个互补的过程,用面向过程实现。不能割裂开,只是面向对象你不了面向过程的不足。
2、对象也可以叫做类的实例。人这个类有姓名、年龄、身高等字段。
3、方法就是类能够执行的动作。
窗口----显示,关闭 人---唱歌,跳舞
4、C#里面方法和函数一样。
5、基类:Base 父类:Parent子类:ChildClass
class Person
{
public int Height;
public int Age;
public string Name;
Public void SayHello()
{
Console.WriteLine("大家好。姓名是:{0}",this.Name);//我自己的升高
}
}
--------------------------想用这个类
Person p1=new Person();
p1.SayHello();
p1.Name="Tom";
p1.Age=30;
p1.Height=180;
6、封装就体现在访问级别上。字段、方法、属性都可以叫做类的成员,都可以定义访问级别
永远不要让字段Public
Class Person2
{
public int Height;
public int Age;
private string Name;//不可以让别人改,外界就不能 p2.Name="ddd" 这样访问了,但是自己内部可以访问
Public void SayHello()
{
this.睁眼(); //这样可以访问如果 睁眼() 在外部则不可以访问。
Console.WriteLine("大家好。姓名是:{0}",this.Name);//这样是可以访问的
}
Private void 睁眼() //注意是私有,内部
{
Console.WriteLine("睁开双眼");
}
}
7、
Class Person2
{
public int Height;
public int Age;
private string Name;
public void GiveName(string name)
{
this.Name=name;
}
}
Person2 p=new Person2();
p.GiveName("Tom");//虽然不能直接访问但可以通过方法来给字段取名。
----------------------------------------------------------------------
Class Person2
{
public int Height;
public int Age;
private string Name;
public void GiveName(string name)//加这个方法就是来决定这个名字要不要。
{
if(name=="Jerry")
{
return; //若取名Jerry,我不要,直接返回
}
this.Name=name;
}
}
Person2 p=new Person2();
p.GiveName("Tom");//虽然不能直接访问但可以通过方法来给字段取名。