面向对象:
一、什么是对象?——一切皆为对象。object(目标)
生活中常说的“东西”,就是我们程序里所指得对象.
生活中遇到的“东西”,我们都会潜意识中进行归类--找模型--抽象--把好多事物的共同点提取出来.
二、类:class,对某类众多对象共同的特点进行抽象出来的模型.
对象(生活中的)----(抽象)----类
类---------(实例)---------对象(程序中的)
1.类中一般包括两类内容:
1)变量(名词,成员变量,成员属性)
2)函数(动词,成员函数,成员方法)
PS:成员表示在类中.
2.面向对象的三大特性:封装,继承,多态.
1)封装:
A.不同类的变量只属于各自的类.
B.不同对象的成员变量只属于各自的对象,彼此不影响.
C.对象中的变量需要通过方法(函数)实现操作,增强数据的安全性.
2)继承:protected(保护不受访问),两个相同类提取更高层次的抽象.
父类,子类.子类可以从父类继承下父类的成员变量和成员方法.
3)多态:某类众多不同对象在执行的时候,表现出来的形态各异,这种现象称为多态.(必须在继承基础上实现多态)
3.如何定义类? class 类名
4.如何实例化对象?new 出来
public可以直接赋值,不用public,要写方法,更安全,因可限制赋值范围--
public void SetAge(int a)
{
Age=a
}
值类型:int i=10
引用类型:Dog d=new Dog
三、构造函数:特殊的成员函数(一般是public).如果不写构造函数,系统会自动生成一个默认的构造函数.
1.写法特殊:没有返回值,函数名只能与类名一样.
2.执行特殊:类在实例化(new出来)的时候自动执行.构造函数是最早执行的成员函数.构造函数是用来生成对象的函数.
3.主要作用:对象实例化生成的时间,做一些初始化的工作.
重载:多个函数,他们的函数名相同,但参数不同(个数,类型)的函数就形成了重载.
ps:重载只有函数名和形参有关,与返回类型无关.
四、this:当前对象,不是当前类.
1.this.成员变量(成员方法)
2.this调用当前对象的其它构造函数。public Bird(string name,string color,int wings):this(name)
is: 对象 is 类名
判断对象是否属于后面的类,属于则返回true,否则返回false.
写函数需要有形参,接收类型尽量用父类型定义形参.传任何一个子类型都可以,因子类型都继承于父类型.