this关键字
1、this是一个关键字,是一个引用,保存内存地址指向自身。
2、this可以使用在实例方法中,也可以使用在构造方法中。
3、this出现在实例方法中其实代表的是当前对象。
4、this.大部分情况下可以省略,但是用来区分局部变量和实例变量的时候不能省略。.
5、this()这种语法只能出现在构造方法第一行,表示当前构造方法调用本类其他的构造方法,目的是代码复用。
6、为什么this不能使用在静态方法中?
public class day{
int i;
public static void This(){
//此时会出现异常
System.out.println(this.i);
}
}
因为this代表当前对象,静态方法中不存在当前对象。
super关键字
1、super能出现在实例方法和构造方法中。.
2、super的语法是: “super.”、 "super ()”
3、super不能使用在静态方法中。
4、super.大部分情况下是可以省略的。
5、super.什么时候不能省略呢?
父类和子类中有同名属性,或者说有同样的方法,
想在子类中访问父类的,super. 不能省略。
6、super()只能出现在构造方法第一行,通过当前的构造方法去调用父类"中的构造方法,目的是:创建子类对象的时候,先初始化父类型特征。
7、super的使用:
super.属性名 ------------[访问父类的属性]
super.方法名(实参) --------------[访问父类的方法]
super (实参) ------------[调用父类的构造方法]
final关键字
1、final 修饰的类无法继承。
public final class A{
}
//B类是不能继承A类的
public class extends B{
}
2、final修饰 的方法无法覆盖。
3、final修饰的变量只能赋一次值。
//赋值为10,此后变量n不可再赋值
final int n=10;
4、final修饰的引用一旦指向某个对象,则不能再重新指向其它对象,但该引用指向的对象内部的数据是可以修改的。
public class student{
public static void main(String [] args){
//final修饰了id,id不能被重新赋值
final student id=new student();
//错误
id=new student();
}
5、final修饰的实例变量必须手动初始化,不能采用系统默认值。
public class A{
//此处用final修饰的变量必须手动初始化
final int i;//错误
final int i=100;//正确
//也可以在构造方法中初始化
public void A(){
//也可以
this.i=100;
}
6、final 修饰的实例变量一般和static联合使用, 称为常量。
常量名一般都要大写,字母与字母之间用下划线隔开(编码规范)
//常量的定义
public static final double PI = 3.1415926;
访问控制权限
1、访问控制权限都有哪些?
4个。
private 私有
public 公开
protected 受保护
默认
2、以上的4个访问控制权限:控制的范围是什么?
private 表示私有的,只能在本类中访问
public 表示公开的,在任何位置都可以访问
protected表示只能在本类、同包、子类中访问。
“默认”表示只能在本类,以及同包下访问。
范围从大到小排序:public > protected > 默认 > private