java关键字 —— new、this、static

java关键字,也叫保留字(50个),是java有特殊意义的标识符,不能用作参数名、变量名、方法名、类名、包名等。

现在我们讲讲其中三个关键字的使用吧~~~

一、new关键字

1. 用途:新建类的对象

2. 工作机制:

  • 为对象成员分配内存空间,并指定默认值
  • 对成员变量进行显式初始化
  • 执行构造方法
  • 计算并返回引用值

二、this关键字

1. 本质:指创建的对象的地址

2. 分类:

  • 普通方法:this指向调用该方法的对象
  • 构造方法:this指向正要初始化的对象

3. 用途:

  • 指向对象
  • 调用重载的构造方法

【注】:this不能用于static方法中

/*
 * @Author: bpf
 * @Description: 测试this关键字
 * @FilePath: /Learn in the Internet/Code/java/Test/TestThis.java
 */

public class TestThis {
    int index;
    int id;
    String name;
    String s = "Test <this> key word!";

    TestThis() {
        System.out.println(s);
    }
    TestThis(int index, int id) {
        // TestThis();      // 调用构造方法不成功
        this();             // 调用无参的构造方法
        // index = index;   // 此句无意义
        this.index = index;
        this.id = id;
    }
    TestThis(int index, int id, String name) {
        this(index, id);    // 使用this调用构造方法时必须是第一句
        this.name = name;
    }

    public void showInfo() {
        System.out.printf(  // 此句不加this效果一样
            "%d - %d: %s/n", this.index, this.id, this.name);
    }

    public static void main(String args[]) {
        TestThis test1 = new TestThis(0, 10086, "中国移动");
        test1.showInfo();
        TestThis test2 = new TestThis(1, 10010, "中国联通");
        test2.showInfo();
    }
}

java关键字 —— new、this、static

三、static关键字

1. 用途:

  • 在类中修饰变量,成为成员变量,即类变量
  • 在类中修饰方法,成为静态方法,即类方法

2. 特点:

  • 对同类的所有对象来说,成员变量只有一份,由类的所以对象共享。
  • static不能修饰实例方法中的局部变量
  • static修饰的方法不能调用非static成员
/*
 * @Author: bpf
 * @Description: 测试static关键字
 * @FilePath: /Learn in the Internet/Code/java/Test/TestStatic.java
 */

public class TestStatic {
    int index;
    String name;
    static String school = "Underwater School"; // 类变量

    public TestStatic(int index, String name) {
        this.index = index;
        this.name = name;
    }

    public void welcome(int index, String name) {
        printSchool();
        System.out.printf("Welcome NO.%d %s to Underwater School!/n", index, name);
    }

    public static void printSchool() {          // 类方法
        // welcome(this.index, this.name);  
            // 不能在静态方法中调用非静态方法、非静态变量
            // 不能在静态方法中使用this关键字
        System.out.println(school);
    }

    public static void main(String args[]) {
        TestStatic stu = new TestStatic(1, "Jerry");
        stu.printSchool();
        stu.school = "Sky School";
        stu.printSchool();
    }
}

java关键字 —— new、this、static

原文 

https://www.maiyewang.com/archives/88911

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » java关键字 —— new、this、static

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址