封装性:
是面向对象思想的三大特征之一。(还有继承、多态)
隐藏实现细节,仅对外提供访问接口。
通常在一个类中,属性都私有化,并对外提供getter and setter方法。
成员变量:在类中定义,在堆内存中,有默认初始值。
局部变量:在方法里定义,在栈内存中,没有默认初始值,必须定义、赋值,然后才能使用。
继承:类与类之间关联的一种,Java只允许单继承,C++允许多继承。
多态:允许以统一的风格编写程序,该统一风格由父类来实现。
权限修饰符:private、public、protected。
构造方法:
是指类构造对象时所调用的方法,用于对象的初始化工作。(给成员变量赋初值。)
方法名称与类名称相同,无返回值类型的声明。
在构造方法中调用另一个构造方法时,要用this(),该句代码必须在第一句。
eclipse快捷键:alt+shift+s 再点击……using fields 勾选 再点击Generate
this关键字:
可以调用类中的属性。
可以调用类中的方法或构造方法。
可以表示当前的对象。
在方法中使用this调用类中的其他方法,this可以省略。
Java值传递:
方法调用时,实际参数把它的值传递给对应的形式参数,函数接收的是原始值的一个copy,
此时内存中存在两个相等的基本类型,即实际参数和形式参数,后面方法中的操作都是对
形参这个值的修改,不影响实际参数的值。
static关键字的作用:
使用static关键字修饰一个属性。(声明为static的变量实质上是全局变量)
使用static关键字修饰一个方法。(无需本类的对象即可调用此方法,静态方法不能访问非静态属性和方法)
使用static关键字修饰一个类(内部类)。
代码块:
顺序:静态代码块、普通代码块、同步代码块、构造代码块。
单例设计模式:(2种实现方法)
懒汉式:占用的内存时间长,提高效率。
恶汉式:占用的内存时间长,效率低。(懒加载,延迟加载)
继承:
是从已有的类创建新类的过程。
被继承的类称为父类(超类),继承父类的类称为子类(派生类)。
继承是指一个对象直接使用另一个对象的属性和方法。
语法:访问权限 class 子类名 extends 父类名{
类体定义;
}
protected访问权限修饰符,在继承关系中使用,在父类中使用protected修饰的方法或属性可以被子类继承。
Java中一个类只能继承一个父类。(单继承)
构造方法不能被继承。
创造对象会调用构造方法,调用构造方法不一定就是创建对象。
当父类中没有无参构造方法时,子类必须显示的调用父类的带参构造方法,可以在子类中显示的使用super()调用父类的构造方法,只能出现在第一句。
方法重写(方法覆盖):
当子类并不想原封不动地继承父类的方法时,而想做一定的修改,就需要采用方法的重写。
super关键字:
super.属性 表示调用父类的属性,如果是继承过来的属性,那么super可以省略。
使用super可以调用父类中的方法。
final关键字:
使用final声明一个常量。修饰属性或者修饰局部变量(最终变量),也称为常量。
使用final声明一个方法。该方法为最终方法,只能被子类继承,不能被子类重写。
使用final声明一个类。该类转变为最终类,没有子类。
抽象类:
很多具有相同特征和行为的类可以抽象为一个抽象类。
使用abstract关键字声明的类为抽象类。
抽象方法只有声明,没有实现。(抽象类没有实例化)
继承抽象类的具体类必须实现所有的抽象方法。
抽象类不能被实例化,声明不能为final,可以有构造方法。
接口:
定义格式:
interface 接口名称{
全局常量;
抽象方法;
}
接口间可以多继承,不能被实例化,不能有构造方法。
一个具体类实现接口使用implements关键字。
具体类实现接口必须实现接口的所有方法。