面向对象
构造方法
- 构造方法的作用一般都是用来初始化成员变量
- 构造方法不是必须的,如果没有定义构造方法,则程序在编译的时候JVM会默认创建一个不带参数的构造方法
- 如果自己在类中定义了带参数的构造方法,那么JVM就不再生成不带参数的空构造方法了。我们在实例化的时候也只能通过自己定义的构造方法形式来创建一个对象。
构造方法是一种特殊的成员方法
构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。
每个类可以有零个或多个构造方法.
不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。
构造方法在创建对象时自动执行,一般不能显式地直接调用. 构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。
this关键字
表示类中的属性
可以使用this调用本类中其他的构造方法
this表示当前对象
面向对象三大特性
封装
将其信息属性和方法具体实现隐藏起来,只提供调用方法的接口,既封装。
为什么需要封装
继承
什么叫继承
- 一个类从另一个类派生出来的过程叫继承
- 被继承的类称为父类
- 执行继承的类称为子类
继承要点
一个类如果没有extends任何类,则默认继承Object类
JAVA只支持单继承,不允许多重继承。
可以有多层继承;类B继承类A;类C继承类B;
子类继承父类的成员变量和成员方法,但不继承父类的构造函数,但在子类的构造方法中可以使用super(参数列表)调用父类的构造方法。
如果子类的构造方法中没有显示的调用父类构造方法,也没有使用this关键字调用自己的其他构造方法,那么在产生子类实例对象时JVM自动调用父类无参数的构造方法
多态(重写,重载)
重写
- 子类重写父类的方法
- 子类与父类中work方法名、参数类型、返回值类型都一样但方法体不一样
重写特点 :
1、方法名、参数、返回值类型都相同
2、 方法中实现的具体操作不同重载
- 在同一个类中方法名相同
- 方法的参数类型或个数或顺序不同
重载注意点:
1、两个方法参数类型相同不能重载;
2、参数名不同不能作为重载的条件
final 关键字
- 使用final关键字修饰的变量为常量,常量不可修改(引用不能量,引用变量所指向的对象的内容可以变)
- 使用final声明的类不能被继承(不能有子类)
- final修饰的方法不能被重写
static 关键字
static 关键字特点
- static声明的属性为全局属性,多个对象共享同一个内存空间的
static变量与方法的使用
- 类名.static变量名
- 类名.static方法名
- 对象名.static变量名
- 对象名.static方法名
static 与非static 之间的调用
- static修饰的方法不能直接访问非static修饰的方法
内部类
内部类的作用
- 内部类可以很好的实现隐藏,一般的非内部类,是不允许有private 与protected权限的,但内部类可以
- 内部类拥有外围类的所有元素的访问权限
- 可以实现多重继承
- 可以避免修改接口而实现同一个类中两种同名方法的调用。
内部类的好处
- 隐藏你不想让别人知道的操作,也即封装性
- 每一个内部类对象可以访问创建它的外部类对象的内容,甚至包括私有变量