Java中的部分关键字的用法

Java中的部分关键字的用法

1.this关键字

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

public class Person {
    String name;
    Person(String name){
        this.name=name;
    }
}

(2)调用成员方法

public class Person {
    String name;
    public void soutName()
    {
        System.out.println(name);
    }
    public void showMes(){
        this.soutName();
    }
}

(3)调用构造方法

注意:

​ ①只能在构造方法中使用this调用其它构造方法,不能在其它成员方法中调用.

​ ②必须放在第一行,且只能出现一次

​ ③不能在两个构造方法中使用this互相调用

public class Person {
    String name;
    Person(){
        System.out.println("调用无参构造");
    }
    Person(String name){
        this();
        System.out.println("调用有参构造");
    }

    public static void main(String[] args) {
        Person person = new Person("张三");
    }
}

2.static关键字

static关键字用于修饰类的成员,如成员变量,成员方法及代码块等,被static修饰的成员具有一定的特殊性.

(1)静态变量

:在内存中只有一份,且被每一个实例对象所共享.

静态变量可以用类名直接来进行访问

class work{
    public static String worklist="1111";
}
public class Person {
    public static void main(String[] args) {
        System.out.println(work.worklist);
    }
}

注意:static关键字只能用于修饰成员变量,不能用于修饰局部变量.

(2)静态方法

静态方法可以使用两种方式来访问

class work{
    public static String worklist="1111";
    public static void show(){
        System.out.println(worklist);
    }
}
public class Person {
    public static void main(String[] args) {
//        1.类名.方法
        work.show();
//        2.实例对象名.方法
        work newwork = new work();
        newwork.show();
    }
}

注意:在一个静态方法中,只能访问用static修饰的成员;原因:未被static修饰的成员需要先创建实例才能访问,而静态方法在被调用时可以不创建任何对象.

在这里插入图片描述

(3)静态代码块

static{
	...
}

当类被加载时,静态代码块被执行,由于类只加载一次,因此静态代码块也只执行一次.通常使用静态代码块来对类的成员变量进行初始化.

class work{
    static {
        System.out.println("执行了静态代码块");
    }
}
public class Person {
    public static void main(String[] args) {
        work work1 = new work();
        work work2 = new work();
    }

在这里插入图片描述

3.super关键字

super关键字用于访问父类的成员,例如访问父类的成员变量,成员方法,构造方法.

(1)使用super关键字来调用父类的成员变量和成员方法.

class Animals{
    String name="动物";
    public void shout(){
        System.out.println("动物叫");
    }
}
class cat extends Animals{
    String name="cat";
    public void shout()
    {
        super.shout();
        System.out.println(super.name);
    }
}
public class review03 {
    public static void main(String[] args) {
        cat cat = new cat();
        cat.shout();
    }
}

(2)使用super关键字调用父类构造方法

class Animals{
    String name="动物";
   Animals(String name){
       System.out.println("i am"+name);
   }
}
class cat extends Animals{
    String name="cat";
    cat(String name) {
        super(name);
    }
}
public class review03 {
    public static void main(String[] args) {
        cat cat1 = new cat("喵喵喵");
    }
}

注意:
①super调用父类构造方法的代码必须出现在子类构造方法的第一行,且只能出现一次.

②子类在实例化时默认会调用父类的无参构造方法;因此:在定义一个类时,当定义了一个有参构造后,尽量在类中再定义一个无参构造,这样可以避免该类在继承时出错.

4.final关键字

Java中被final关键字修饰的变量称为常量,只能被赋值一次.

注意:
①当成员变量被final修饰时,在声明变量的同时必须进行初始化赋值,否则程序会报错.

②子类在实例化时默认会调用父类的无参构造方法;因此:在定义一个类时,当定义了一个有参构造后,尽量在类中再定义一个无参构造,这样可以避免该类在继承时出错.

4.final关键字

Java中被final关键字修饰的变量称为常量,只能被赋值一次.

注意:当成员变量被final修饰时,在声明变量的同时必须进行初始化赋值,否则程序会报错.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值