java面向对象梳理一

来源:互联网 发布:mac iphone 铃声 编辑:程序博客网 时间:2024/05/01 20:44

java面向对象梳理一

(本文系初学者编写,缺漏指出,恳请指正回复!)
1. 类:类就像图纸,可以批量生产对象。称”类“为类型。
2. 对象:类的具体实例,比如类是“人”那么有个对象“李明”,对象的名字叫“李明”它包含了“人“这个类的全部属性与方法。一个对象既包含了数据(属性),又包含了操作(方法)。面向对象,认为万物都是对象,6是一个int类型的对象。
(此处特别注意两个概念:对象变量和对象实例。
我们提到“对象”时,它通常有两种意思,如下:
对象变量是一个变量,它变的这个”量“,不只是基本的数据类型数字字符串这些基本对象什么的,而是所有的类型包括自定义的类的对象
对象实例是一个具体的对象
我们声明一个某种类型的对象变量,需要给它赋值,赋一个同样类型的对象实例。即赋值号左边是对象变量,右边是对象实例)
3. 接口:接口是一种规范,它本身并不起任何作用,只是表明某个类,有特定的方法,比如灯泡,我们知道它有灯头,那么他就有插入灯座的这一个方法,如果另外一个东西,也有灯头,那么我们就知道它也能插入灯座。
4. 封装:对象将自己的属性的值保护起来,不然其它对象随便的接触或者该表(使对象之间的交流变得规范)。其它对象应该试图通过传递消息给那个对象,请它自己做出动作来改变属性的值(通过调用对象的方法,传入相应的参数)
5. 组合:任何对象都可以由基本对象和其他对象组合而成。
6. 继承:减少代码复制(相同代码出现多次),提升效率与规范的一种方法。两个类”人“”学生“,学生这个类,肯定有人的所有方法与属性,我们不需要在学生这个类中重写一遍,只需要声明,学生继承了人这个类,然后就获得了人的所有数据与方法。这样,在学生这个类中,我们只需要写学生特有的方法与数据,就写出了一个完整的”学生“类。我们说”人“是”学生“的父类
7. 多态性:多态性我认为有这么几个方面:方法重写、方法重载、向上类型转换、向下类型转换、方法的动态绑定。下面我一个一个的说下
8. 方法重写:刚刚说到继承,”人“”学生“两个类构成继承关系,”学生“类拥有”人“的所有方法,但是,”人“有些方法,”学生“有,但是实现过程不同,比如说:”睡觉“这个方法,”人“这个类睡8个小时,睡在卧室,而”学生“的这个方法,只睡7个小时,在宿舍。显然,我们不想让”学生“继承这种”睡觉“方法,那么在”学生里“重写一个睡觉的方法,按照我们需要来设计这个方法。这样在父类和子类中都有一个”睡觉“的方法,但子类只用他自己的子类方法。这就是方法重写。
9. 方法重载:一个类中,可以有多个同名的方法,但是参数不同,用来处理不同的消息。比如,我们有一个方法add,就是用来做加法,但是我们不仅仅想add整数,我们还想add字符串,add浮点数,如果只写一个方法,是不好实现的(参数表怎么填?)所以我们写了三个都叫add的方法,他们的参数表分别是int、 String、 double、类型的对象,当调用这个add方法后,java会根据传入参数不同的数据类型,执行三个add中的某一个。这就是方法重载。
10. 向上类型转换,对于一个学生,我们称它为一个人,这是毫无疑问的。我们可以声明一个”人“类型的对象变量”小明“,但是在赋值的时候,我们给”小明“引用一个学生,一个学生对象实例,(因为小明这个人就是一个学生)。所以在赋值时,将这个学生实例转换为了父类,人实例。引用给“小明”这个“人”类型的变量
11.向下类型转换,当一个对象实例,被向上类型转换后,又可以向下类型转换回来。如果一条语句里,使用了向下类型转换,那么说明这个对象,是经过向上类型转换来的,如果不是这样,那么这条语句就错了。
所以,我们在进行向下类型转换时,需要检查这个对象实例与对象变量的类型是不是一致的,不一致,就是向上类型转换来的。JAVA中提供了instanceof操作符来判断一个对象变量引用的到底是种类型的对象实例。

##

0 0
原创粉丝点击