面向对象总结:
1.面向对象:是基于面向过程的一种思想
面向过程:以函数为基础,关注过程
面向对象:以对象为基础,关注实现结果
特点:更符合人们的思考习惯
把复杂问题简单化了
把我们从执行者变成指挥者
2.封装
隐藏实现的细节,提供公共的访问方式
private关键字
修饰成员变量和成员方法--只能在本类中访问
3.构造方法
方法名与类名相同
没有返回值类型
没有具体的返回值
注意:
如果你不给出构造方法,jvm就会自动给你一个无参构造方法
推荐,手动给出无参构造方法
4.this关键字
代表当前类对象的引用
简单记:在方法中,哪个对象调用方法,this就代表谁
除静态方法外,所以方法都有一个隐含的this引用
5.static关键字
可以修饰成员变量和成员方法
特点:随着类的加载而加载
优先于对象存在
被类的所有对象共享
可以被类名调用
注意:
没有this关键字
静态方法只能访问静态成员
6.Math类的随机数
所属包:java.lang
类:Math
方法:public static double random()
java.lang包下的类不用导入包就可以直接使用
产生1到100之间的随机数
int number = (int)(Math.random()*100)+1;
7.继承
把多个类中的相同的属性和行为进行抽取,封装到一个类中
然后再建立新类的时候,不许要重头做起,继承刚才定义的那个累就好
好处:
提高代码的复用性
让类和类之间产生一个关系,是多态的前提
特点:
java只支持单继承,不支持多继承
java支持多重继承,比如C继承B,B继承A。。。
8.super和this的区别
super代表父类的存储空间标识(父类的引用)
super和this的用法:
成员变量:
this.变量 - - 本类的
super.变量 - - 父类的
构造方法:
this(...) - - 本类的
super(...) - - 父类的
成员方法:
this.方法名() - - 本类的
super.方法名() -- 父类的
9.final关键字
可以用来修饰类,成员变量,成员方法
特点:
修饰的类不能被继承
修饰的成员变量是一个常量
修饰的成员方法不能被重写
10.多态
概念:对象在不同的时刻变变现出来的不同状态
前提:
要有继承或者实现关系
要有方法的重写或实现
要有父类引用或者父接口引用指向子类对象
多态中成员特点:
成员变量:编译运行都看左边
成员方法:编译看左边,运行看右边(因为方法存在重写)
弊端:
父类或接口引用不能使用子类特有功能
解决方法:Fu f = new Zi() -- 向上转型
好处:
提高代码的扩展性和可维护性
11.抽象类
如果多个类中存在相同的方法声明,但是方法体不一样,我们就可以把方法声明提取出来
这个方法只有方法声明,没有方法体,就称为抽象方法。一个类中如果有抽象方法,
则必须把这个类定义成抽象类。
特点:
必须使用abstract修饰类和方法
抽象类不能被实例化
抽象类有构造方法,用于子类实例化使用
如果一个类是抽象类,那么,继承他的子类
要么是抽象类,要么重写所以抽象方法
成员特点:
成员变量 -- 可以是变量,也可以是常量
构造方法 -- 有构造方法
成员方法 -- 可以有抽象方法,也可以由非抽象方法
abstract不能和那些关键字共存
final - - - private - - - - static
12.接口
如果一个抽象类的方法都是抽象的,那么就可以称为接口
用interface修饰
接口的实现用implements修饰
格式:
interface 接口名{}
class 类名 implements 接口名{}
特点:
接口不可以被实例化
一个类如果实现了接口,这个类要么是抽象类,要么就是实现了接口的所有方法
接口的成员特点:
成员变量:只能是常量 默认修饰符:public static final
成员方法:只能是抽象方法 默认修饰符:public abstract
接口的思想特点:
对外暴露
是功能的扩展
高内聚,低耦合 内聚(类完成某件事的能力)耦合(类与类的关系)
类和接口的关系:
类和类:继承关系,只能单继承,可以多层继承
类与接口:实现关系,可以单实现,也可以多实现。
接口和接口:继承关系,可以单继承,也可以多继承。
:) |