您的位置:首页 > 编程语言 > Java开发

java——this关键字、super关键字与final关键字的总结

2019-03-19 15:26 120 查看

this关键字

this可以调用本类属性、本类方法、当前对象。
1.this调用本类属性
使用this.属性名称表示直接从类中寻找同名属性。在类中使用本类属性一定要加上this。

class Person{
private String name;
private int age;
public Person(String name,int age){
this.name = name ;//调用本类属性
this.age = age ;
}
}

2.this调用本类方法
a.this调用构造方法:在构造方法首行使用this(参数)表示调用本类的构造方法。

  • this调用本类的构造方法必须写在构造方法首行

  • this调用构造方法不能成”环“

    class Person{
    private String name;
    private int age;
    public Person(){
    System.out.println("*******")
    }
    public Person(String name){
    this();//调用本类无参构造
    this.name=name;
    }
    public Person(String name, int age){
    this(name);//调用本类有参构造
    this.age=age;
    }
    }

b.this调用本类的普通方法:this.方法名称(参数)
若在本类中调用普通方法,一般将this加上,尤其是在有继承的情况下,使用this可以明确表示调用的是本类方法。

class Person{
private int age;
private String name;
public Person(int age,String name){
this.age=age;
this.name=name;
this.print();//调用本类普通方法
}
public void print(){
System.out.println("***");
}
}

3.this调用当前对象
当前调用的属性或方法是通过哪个对象调用的,this就指代它。

super关键字

1.super调用父类属性
super.属性名称(明确表示直接从父类中查找属性)

2.表示父类方法
a.表示父类构造方法:super(方法参数);

  • 调用父类无参构造时,子类构造方法首行super()可以省略
  • 当父类不存在无参构造时,子类构造方法中必须使用super(方法参数)明确表示当前调用的是哪个父类构造,此时super不能省略,必须处于子类构造方法首行,此时子类不存在this构造器调用。

b.表示父类被覆写的方法
super.方法名(参数)

this关键字与super关键字的区别:

final关键字

final关键字-终结器

1.修饰属性:使用final定义的变量就成了常量,常量必须在声明时赋值,并且赋值后无法修改。
Java中定义常量一般final与static共同修饰。
final修饰数据类型无论是基本类型还是引用类型,值不能改变,对于引用类型而言,不可改变的是指向不能变(保存的堆内存地址不能改变)。

2.修饰方法
被final修饰的方法不能被覆写。

3.修饰类
被final修饰的类没有子类。

被final修饰的变量,数据类型不会变化。

数据类型转换:
当使用+、-、*、/、%等数学运算时,遵循以下原则:

只要两个操作数中有一个是double类型,另外一个会自动转为double类型,并且结果也是double.

只要两个数中有一个是float类型…,另外。。。。。。自动转为float,。。结果float

只要…long,另外一个…long,结果…long

否则操作数为byte、short、int、char时,两个操作数均会转为int类型,并且结果也为int。

但是,被final修饰的变量,数据类型不会发生上述变化!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: