关键字:this的使用
1.this可以修饰:属性,方法,构造器
2.this修饰属性和方法:
this理解为当前对象或当前正在创建的对象
2.1 在类的方法中,我们可以使用"this.属性"或"this.方法"的方式,调用当前对象属性或方法,但是通常情况下,我们都可以省略"this."特殊情况下,如果方法的形参和类的属性同名时,我们必须显示的使用"this.变量"的方式,表明此变量是属性,而非参数
2.2 在类的构造器中,我们可以使用"this.属性"或"this.方法"的方式,调用当前对象属性或方法,但是通常情况下,我们都可以省略"this."特殊情况下,如果构造器的形参和类的属性同名时,我们必须显示的使用"this.变量"的方式,表明此变量是属性,而非参数
3.this调用构造器
①我们在类的构造器中,可以显示的使用"this(形参列表)"方式,调用本类指定的其他构造器
②构造器中不能通过"this(形参列表)"方式调自己
③如果一个类中有n个构造器,则最多有n-1构造器使用了"this(形参列表)"
④规定:"this(形参列表)"必须声明在当前构造器的首行
⑤构造器内部,最多只能声明一个"this(形参列表)",用来调用其他的构造器
package关键字的使用
1.为了更好的实现项目中类的管理,提供包的概念
2.使用package声明类或接口所属的包,声明在源文件的首行
3.包,属于标识符,遵循标识符的命名规则规范,“见名知意”
4.每"."一次就代表一层文件目录
补充:同一个包下,不同命名同名的接口,类
不同的包下,可以命名同名的接口,类
super关键字
1.super理解为:父类的
2.super可以用来调用:属性,方法,构造器
super的使用:调用属性和方法
1.我们可以在子类的方法或构造器中,通过用"super.属性"或"super.方法"的方式,显示的调用父类中声明的属性或方法,但是,通常情况下我们习惯省略"super"
2.特殊情况:当子类和父类定义了同名的属性时,我们要想在子类中调用父类中声明的属性,则必须显示的使用"super.属性"答方法,表明调用的是父类中声明的属性
3.3特殊情况下,当子类重写了父类中的方法以后,我们想在子类的方法的方法中调用子类中被重写的方法时,则必须显示的使用"super.方法"方式,表明调用时父类中被重写的方法
super调用构造器
1.我们可以在子类中显示的使用"super(形参列表)"的方式,调用父类中声明的指定的构造器
2."super(形参列表)"的使用。必须声明在子类的构造器的首行
3.在构造器的首行,针对于"this.(形参列表)“或"super(形参列表)”,只能二选一,不能同时出现
4.我们在类的构造器中,针对"this(形参列表)"或"super(形参列表)"则默认调用的是父类中空参构造器
5.在类的多个构造器中,至少有一个类的构造器中使用"super(形参列表)"调用父类的构造器
static 关键字
1.static:静态的
2.static可以用来修饰属性,方法,代码块,内部类
3.使用static可以修饰属性,静态变量(或类变量)
3.1属性:按是否使用static修饰又分为静态属性 vs 非静态属性
实例变量:我们创建了类的多个对象,每个对象都拥有一套类的非静态属性,当修改其中一个对象中的非静态属性时,不会导致其他对象中同样的属性的修改
静态变量:我们创建了类的多个对象,多个对象共享同一个静态变量。当通过某一个对象修改静态变量时,会导致对象调用此静态变量时修改过的。
3.2staic修饰属性的其他说明
①静态变量随着类的加载而加载,可以通过"类.静态变量"的方法进行调用
②静态变量的加载要早于对象的创建
③由于类只会加载一次,则静态变量在内存中也会存在一份,存在方法区的静态域中
④
类变量 | 实例变量 | |
---|---|---|
类 | yes | no |
对象 | yes | yes |
4.使用static修饰方法,静态方法
①随着类的加载而加载,通过"类.静态方法"的方式调用
②
静态方法 | 非静态方法 | |
---|---|---|
类 | yes | no |
对象 | yes | yes |
③静态方法中,只能调用的静态方法或属性
非静态方法中,即可以调用非静态方法或属性,也可以调用静态方法或属性
5.static注意点:
5.1 在静态的方法内,不能使用this关键字,super关键字
5.2 关于静态属性和静态方法的使用,大家都从声明周期的角度去理解
关键字: final
1.final可以用来修饰的结构,类,方法,变量
2.final用来修饰一个类: 此类不能被其他所继承
比如:String类,system类,
3.final 用来修饰方法,表明此方法不可以被重写
比如:Object类中getClass()
4.final 用来修饰变量,此时的"变量"就称为一个常量
4.1final修饰属性,可以考虑赋值的位置有:显示初始化,代码块中初始化,构造器中初始化
4.2final修饰局部变量:
尤其是使用final修饰形参时,表明该形参是一个变量,当我们调用次方法时,给常量形参赋值一个实参,一旦赋值以后,就只能在方法·体内使用此形参,但不能重新赋值