面向对象

访问修饰符

修饰符一般只修饰属性和方法,属性尽量使用private,方法尽量使用public

public公开的,只要在同一工程内就可以访问

protected受保护的,只能在当前包或子类中才能访问

缺省,没有修饰符即默认,只能在当前包中才能访问

private,私有的,只能在当前类中使用

类型修饰符

static:修饰变量成为静态变量,修饰方法成为静态方法

1, 静态属性和方法在new之后放入内存,而非静态变量和方法在new之前就放内存

2, 静态属性和方法通过“类名.属性/方法”来调用,而非静态,属性或方法通过“对象名.属性/方法”调用

final:修饰变量成为静态变量,修饰方法成为静态方法

1, 修饰变量使之成为常量,常量名全部大写,不能修改其值

2, 修饰方法使之不能被子类重写

3, 修饰类使之不能被继承

是对象的抽象概念,由属性(成员变量)和方法(成员方法)组成

构造方法:

1, 方法名和类名一样,没有返回值也不能写成void

2, 目的是给属性赋初值

3, 创建一个类会默认创建一个无参的构造方法,会默认调用super(),如果自定义了构造方法会覆盖默认的构造方法

重写:子类中的方法和父类的返回值类型、方法名、参数列表相同

重载:在同一个类中,方法名相同,参数列表不同(个数,类型,顺序)

对象

类的实例化,通过new创建对象(JDK1.8以后可以通过反射不使用new创建对象)

把属性和方法封到一个类里面,使用的时候通过对象来访问

封装

把属性和方法封到一个类里面,使用的时候通过对象来访问

实现封装:

1,  属性私有化

2,  对属性提供getter和setter

继承

提高代码复用,降低冗余,通过关键字extends来实现

1, 单根继承(但是可以多重继承)

2, 父类私有属性方法和构造方法不能继承

3, super表示父类实例对象,只能在子类中使用

4, super()表示调用父类构造方法(必须写在子类构造器中第一行)

5, this表示当前类的实例对象,能区分局部变量和成员变量(属性)

6, this()表示调用当前类的构造方法,也不许放在首行

多态

1,  可以把父类当成子类来使用(实例化子类用父类接收)

2,  只能访问父类中的属性和方法,如果要访问子类独有的属性和方法要强制转换成子类

抽象类

通过abstract来定义

1, 可以包含抽象方法,不能直接实例化,只能实例化子类

2, 子类必须实现父类的抽象方法(如果不实现那么子类也必须是抽象类)

抽象方法:没有方法体,访问修饰符不能为private,因为这样子类就不能继承该方法也实现不了该方法

接口

通过interface来定义

1, 接口和接口可以多继承

2, 类和接口通过implements实现,也可以多实现(所以一般不采用接口多继承)

3, 由静态常量和抽象方法组成,对于常量可以省略public static final,对于方法可以省略public abstract

posted @ 2018-06-16 11:11  huanggy  阅读(154)  评论(0编辑  收藏  举报