static、this和final关键字的详细使用(Java)20200927

一、this关键字

1、常见用法

(1)通过this关键字调用成员变量,解决与局部变量名称冲突的问题。

(2)通过this关键字调用成员方法

(3)通过this关键字调用构造方法。构造方法是在实例化对象时被Java虚拟机自动调用的,在程序中不能像调用其他方法一样区调用构造方法,但可以在一个构造方法中使用"this([参数1],[参数2],…)"的形式来调用其他的构造方法

public class Demo03 {
    public static void main(String[] args) {
        Student student = new Student("小明");
        
    }
}
class Student{
    public Student(){
        System.out.println("无参构造方法被调用了");
    }
    public Student(String name){
        this();
        System.out.println("有参构造方法被调用了"+name);
    }
}

结果:
在这里插入图片描述
在使用this调用类的构造方法时应该注意:
1、只能在构造方法中使用this调用其他的构造方法,不能在成员方法中使用。

2、在构造方法中,使用this调用构造方法的语句必须是该方法的第一条执行语句,且只能出现一次

3、不能在一个类的两个构造方法中使用this互相调用

二、static关键字的详细使用

1、静态变量

只有通过new关键字创建该类的实例化对象后,系统才会为每个对象分配内存空间,存储各自的数据。

有时候开发人员希望某些特定的数据在内存中只有一份,而且能够被一个类的所有实例对象所共享。而static起到了这个作用。

package Practice;

class Student{
    static String SchoolName;
}
public class Test01 {
    public static void main(String[] args) {
        Student student1 = new Student();
        Student student2 = new Student();
        Student.SchoolName="清华大学";
        System.out.println(student1.SchoolName);
        System.out.println(student2.SchoolName);
    }
}

注意:
static关键字只能用于修饰成员变量,不能用于修饰局部变量,否则会编译错误

2、静态方法

如果想要使用类中的成员方法,需要先将这个类实例化,而在实际开发时,开发人员有时会希望在不创建的对象的情况下可以调用某个方法,这种情况就可以使用静态方法。

package Practice;
class School{
    public static void say(){
        System.out.println("你好,世界!");
    }
}

public class Test02 {
    public static void main(String[] args) {
        School.say();
    }
}

3、静态代码块

package Practice;
class student{
    static {
        System.out.println("student的静态代码快执行了");
    }
}

public class Test03 {
    static{
        System.out.println("Test003的静态代码块执行了");

    }

    public static void main(String[] args) {
        student student = new student();
        student student1 = new student();
    }
}

结果:
在这里插入图片描述
总结:
1、Java虚拟机首先会加载类Test03,在加载类的同时就会执行该类的静态代码块,紧着会调用main()方法。

2、在main()方法中创建了两个student的对象,但在两次实例化对象的过程中,静态代码块中的内容只输出了一次,这说明静态代码块1在类第一次使用时才会被加载,并且只会加载一次。

三、final关键字

1、简介

1、final关键字可用于修饰类、变量和方法,它有“不可更改”或者“最终”的含义

2、final修饰的类不能被继承

3、final修饰的方法不能被子类重写

4、final修饰的变量(成员变量和局部变量)是常量,只能赋值一次,也就是说final修饰的变量一旦被赋值,其值就不能被改变。

5、当局部变量使用final关键字修饰时,可以在声明变量的同时对变量进行赋值,也可以先声明变量再进行有且仅有一次的赋值。

6、当成员变量被final关键字修饰时,在声明变量的同时必须对其进行初始化赋值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃辣的IT男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值