this
代表当前对象
可以调用属性与方法、构造器
形参名与属性名相同时使用this可以区分形参与属性
调用构造器
this()
调用空参构造器
this(name)
调用有参构造器
不能调用自己this.this()
调用this()时必须放在构造器的首行
不能同时调用多个构造器,只能使用一个
super
父类的
可以调父类的属性、方法、构造器
使用super.属性,super.方法是显示的调用父类中的属性和方法
当子父类中定义同名的属性时,super.属性名调用的是父类的属性
当重写方法时在子类中使用父类方法,使用super.方法调用的是父类的方法
调用父类构造器
super() 无参构造器
super(形参)有参构造器
必须声明在构造器的首行
this()和super()不能同时使用
没有使用this()和super()时,构造器默认调用了super()
package
为了更好的管理项目中类,提供了包的概念
包名中的点代表一层文件目录
同一个包下不能定义同名的类、接口
不同的包下能定义同名的类、接口
作用
声明类或接口的所属的包
声明在类的首行
import
// 导入指定包下的类、接口
// 导入包下的所有类
import java.util.*
// 使用xxx.*的方式导入类或接口时,如果使用xxx的子包下的类,仍然需要显示导入
// java.lang包下的类或接口可以省略import,不需要显式导入
// 当前包下的类可以省略import
// 如果引入的两个包下的类同名则必须有一个类以全类名的方式使用
java.lang.ArrayList list = new java.lang.ArrayList();
// 导入指定类的静态结构(属性、方法)import static
import static java.lang.System.*
static
静态成员变量
被类的多个对象共享
类实例化的多个对象中其中一个修改其他的都会改
内存
jdk6时在方法区
jdk7及之后在堆里
随着类的加载而加载,由于类只会加载一次,静态变量也只有一份
随着类的卸载而消亡
可以被类直接调用,也可以使用对象调用
他的getter、setter需要使用static方法
静态方法
随着类的加载而加载
可以通过"类.静态方法"调用静态方法
静态方法内可以调用静态属性和静态方法,不能调用非静态变量和方法;属性和方法的前缀是当前类,可以省略this
在当前类的非静态方法中可以调用类的静态结构(属性、方法)
方法中不能使用this和super
final
修饰符
类
此类不能被继承
例:String、StringBuilder、StringBuffer
方法
此方法不能被重写
变量
此时的变量就变成了常量,被赋值之后不能修改
可以是成员变量也可以是局部变量
成员变量
只能显式赋值、在代码块中赋值、在构造器中赋值
局部变量
方法内声明的局部变量;调用前一定要赋值
方法的形参;调用此方法时赋值
abstract
表示抽象性
修饰类时
不能被实例化
可以没有抽象方法
他的子类必须实现父类中全部的抽象方法,否则不能被实例化
修饰方法时
只有声明,没有方法体
public abstract void aaa();
只能存在与抽象类中
继承此方法所在类的子类必须实现此方法
不能修饰属性、构造器、代码块
不能修饰私有方法、静态方法、final的方法和类
interface
定义接口
public interface A {
}
return
// 结束方法体
return;
return关键字后面不可以声明执行语句
instanceof
运算符
判断对象是否是类的实例,是返回true否则返回false
为了在避免向下转型时出现ClassCastException额异常,先进行instanceof的判断