java中特殊的关键字

一、this和super关键字

this用于指代当前对象;super用于指代父类对象

  • this()表示调用另外一个构造器,super()表示调用父类中的某个构造器,()中的参数决定调用的是哪个构造器
    • 当定义构造器时,如果构造器方法中第一句不是this()或者super()时,默认第一句就是super()表示调用父 类的构造器 ,所以super和this不能同时出现在一个构造器中,如果父类只有有参构造器,那么子类构造器必须写上super(参数)
  • this.成员属性用于表示当前对象的某个成员,一般用于局部变量和属性名称一致的场景下。super.成员属性用 于表示父类中
public class A {    
private String name;    
public void setName(String name) {
//局部变量名name和属性name重名,可以使用this.name表 示这个是属性,按照就近原则,当前方法中的name是局部变量        
this.name = name;    
	} 
}
  • 定义的某个属性,一般用于子类中覆盖定义了某个父类属性的场景下

    • 当子类和父类中的属性重名时,按照就近原则,当前类中的成员变量就是子类中声明的,而不是父类中声明的
    • 使用super.name引用父类中声明的name属性,还需要考虑范围限定词的问题
  • this.成员方法()用于表示当前对象的某个成员方法;super.成员方法()用于表示当前类的父类中定义的某个成 员方法,一般用于覆盖定义时【就近原则

  • 在static方法中不允许使用this/super之类关键字

二、关键字final

意思是终的、不可变的
修饰属性

  • final修饰变量时,变量被必须初始化,并且不能被修改。初始化可以定义nal变量时直接初始化或者在构造函数中 初始化

修饰局部变量

  • final变量一旦赋值则不允许进行修改操作

修饰方法

  • final修饰方法则该方法不能被子类重写

修饰类

  • final修饰一个类,则该类不能被继承
  • 通过private构造器也达到了类似的不允许继承的效果,但是要求类中的所有构造器都是私有

final 属性上可以声明的同时直接赋值或者在构造器中赋值

public class A{    
	private final int kk;    
	public A(int counter){        
	kk=counter;    
	} 
}

final临时变量,可以声明的同时赋值或者在第一次使用之前进行赋值

  • final类型的变量一旦赋值则不允许修改,但是如果是复杂类型是不允许修改地址,但是可以修改 属性

三、static关键字

用于修饰成员,包括成员属性【类属性或者静态属性】、成员方法【类方法或者静态方法】

  • 随着类加载,随着类消失
  • 优先于对象,用类名直接访问

静态属性,即可以直接以类名的方式进行调用,也可以创建对象后当作普通属性进行调用

static属性是当前类的所有对象所共有的共同属性(只有一个,而普通属性各个对象都有自己的,相互隔离),任何一 个当前类对象修改这个属性,所有其他类对象的这个属性都会受影响

执行过程:
类加载之后会先执行所有的静态,然后在创建对象的时候先初始化成员变量,再调用构造方法,如果有父类则先执行父类的操作

定义常量
命名规则:名称全大写,下划线分词

  • 声明语法:public static final double MIN_NUMBER = 0.1;
  • 声明的同时直接进行初始化 public static final double MIN_NUMBER = 0.1;
  • 先声明后在static静态块中赋值

静态方法

  • 因为可以直接使用”类名.方法名”的形式直接调用静态方法,静态方法执行时很有可能并没有构建对象,所以 在静态方法中不允许使用this/super之类用于指定对象的关键字
  • 当然在静态方法中允许创建对象,并调用对象方法
  • 静态方法只能直接访问静态成员,不能直接访问非静态成员
  • 类在执行时需要通过一个叫作类加载器的组件将程序加载到内存中,类在运行时一般不会发生变化,所以类 不会频繁加载,在整个运行过程中只加载一次,而且常驻内存
  • 静态块在类加载完毕后自动执行,而且只执行一次

非静态块
非静态块在类内且在所有的方法之外,非静态块并不会在类加载后自动执行,而是在构建当前对象时自动执行。 new一次则会执行一次,执行时机在构造器之前执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值