面向过程:
一个学生7点要起床,8点之前吃完饭,8点半上课,然后12点下课,然后吃午饭和睡觉,然后15点上课,知道19点下课吃晚饭,又是晚自习,最后下自习睡觉。
一个老师7点起床,吃早饭,讲课,吃饭睡午觉,上课,吃饭,晚间辅导,睡觉。
这就是对于一名学生和一名老师一天的作息。
面向对象:
学生:事件(起床,吃饭,上课),属性(时间)
老师:事件(起床,吃饭,讲课),属性(时间)
面向对象的特性:
封装:使得单个文件之间高内聚低耦合,将具有一定联系的处理逻辑或者共性特征提取出来封装成独立的java类,封装能使大型程序有清晰的结构和层次。
继承:万物皆对象,生物分类系统是阶元系统,通常包括七个主要级别:种、属、科、目、纲、门、界。种(物种)是基本单元,近缘的种归合为属,近缘的属归合为科,科隶于目,目隶于纲,纲隶于门,门隶于界。这个最能说明"继承"。举个例子,学生,老师,厨师,程序员,他们都是人,都满足人的吃饭睡觉的行为,都有身高体重的属性。所以学生继承人,老师等都继承人。
多态:在"继承"的基础之上,子类与父类区别的地方即为多态,父类提供接口(给出方法,但是不实现),子类以自己的方式实现。就像正方形和三角形计算面积一样,都有面积却有不同的计算方式。
抽象类与接口:
抽象类可以看成是多个实体共有的属性和行为的封装,比如,飞机大战中的英雄机,敌机,蜜蜂,子弹等等实体都拥有宽高和图片属性,就将这些属性抽取出来封装为“飞行物”抽象类。可以说抽象类是若干类的共同父类。
接口可以说是抽象类的一个特例,一般只为一个类设计,当一个类既是什么又是什么的时候就用到实现接口,接口一般定义一个类所特有的方法或属性。抽象类中可以有非抽象方法,但是接口中全是抽象方法,抽象类中属性默认protected,专为被继承而存在,接口中属性默认final,是不能改变的。
内部类:
在一个类中方法中或方法外的定义类。可以访问其所属类的变量,如果是局部变量必须是final类型。
class A{ class B{} public void show(){ class C{} } }
匿名内部类:
没有引用名,只声明变量
interface inter1{} class Ca{ public void show(inter1 i){} } new Ca().show(new inter1()..);
--只为自己而生