什么是面向对象
一.什么是类?什么是对象?
现实世界是由很多很多对象组成的,基于对象抽出了类
对象:软件中真实存在的单个个体/东西
类:类型/类别,代表一类个体
类是对象的模子,对象是类的具体的实例
类中可以包含:
对象的属性/特征--------------------------成员变量
对象的行为/动作--------------------------方法
一个类可以创建多个对象
如何创建类?如何创建对象?如何访问成员?
通过关键字class来创建类
通过new关键字来创建对象
通过引用打点来访问类中的成员
凡是基于对象抽出来的类,只是为了做模子----都不需要main
类:是我们自己造出来的一种数据类型(引用类型)
二.方法的重载
1.方法的签名:是指方法名+参数列表。注意:与返回值类型无关
方法的重载也称为overlood,有如下两点说明
*发生在同一类中:参数列表不同,方法体不同
*编译器在编译时会根据方法的签名自动绑定调用的方法
重载的作用:
-
方法重载的主要好处就是不用为了对不同的参数类型或参数个数,而写多个函数。多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数。如果我们使用reflector去查看微软写的.net的基类库的话,我们可以发现他使用很多的方法重载,这样我们在调用的时候,就不需要记那么多的方法名称,而是知道了方法的功能就可以直接的给他传递不同的参数,编译器会明确的知道我们调用了哪一个方法。重载比if…else要优雅,减少了if…else部分的代码。
-
重载的最直接作用是方便了程序员可以根据不同的参数个数,顺序,类型,自动匹配方法,减少写过个函数名或方法名的重复步骤。
1.3:构造方法:
构造方法也称为构造函数,构造器,构建器,有如下五点说明:
*给成员变量赋初值
*与类同名,没有返回值类型(连void都没有)
*在创建(new)对象时被自动调用
*若自己不写构造方法,则编译器默认提供一个无参构造方法,若自己写了,则不在默认提供
*构造方法也可以重载
1.4:this
this是一个关键字,他是能用在方法中,在方法中访问成员变量之前默认有个this。它指代的是当前对象,即那个对象调用方法它指的就是那个对象。
this的用法如下:
-
this.成员变量名:用于访问成员变量,当成员变量也局部变量同名时,访问成员变量的this不能省略,若没有同名时,this一般都省略
-
this.方法名()用于调用方法(一般不常用)
-
this():用于调用构造方法(一般不常用)