美文网首页
Java中的static修饰成员方法

Java中的static修饰成员方法

作者: 山坡上的斐德洛 | 来源:发表于2018-12-06 21:29 被阅读0次
/*
* 问题:
*   当创建多个Person类时,如果人的国家都是中国,那么这个会占用大量
*   内存,country变量存在大量重复,所以这里要使用static修饰
*
* static关键字的使用:
*   1【重点】.  如果使用static修饰的成员变量,这些成员称之为【静态成员变量】,
*       这个【静态成员变量】实际存放的内存空间在【内存数据区】。【静态成员变量】
*       和当前【类对象的内存】没有任何关系,这个【静态成员变量】的内存空间不在【堆区】
*       对象内存中
*
*   2.  用static修饰的成员变量,这个【静态成员变量】可以提供给多个类对象使用
*
*   3.  什么时候使用static, 真正意义上存在大量重复,并且存在一定共享基础的数据。这种
*       情况下,可以使用static修饰
*
* 发现:
*   发现通过类对象来调用【静态成员变量】,报警告
*   用static修饰【静态成员变量】应该用【静态】的方式访问
*
* 【重点】
*   用static修饰的成员变量,这个成员变量会【早于】类对象的创建而创建,而且【晚于】类对象
*   的销毁而销毁。
*   所以用static修饰的【静态成员变量】是和类对象“无关的”
*
*   严格来说
*       类对象和【静态成员变量】无关,那么调用类对象来调用【静态成员变量】是“非法的”
*       java期望的是,使用更加严谨的调用方式。
*
* 【推荐调用/使用成员变量的方式】
*   类名.成员变量;
* */

class Person{
    // 成员变量, 内存一般是放到堆区的
    private String name;
    // 这里是用static修饰的成员变量,内存就放到了数据区
    static String country = "中国";

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

    // getter和setter方法
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

public class learn_static {
    public static void main(String[] args) {
        Person p1 = new Person("叶问");

        Person p2 = new Person("陈华顺");

        Person p3 = new Person("陈真");

        Person p4 = new Person("李云龙");

        System.out.println("p1.country: " + p1.country);
        System.out.println("p1.country: " + p2.country);

        // 这个调用方式报警告了
//        p3.country = "People Republic of China";
        // 推荐使用这个方式调用
        Person.country = "People Republic of China";

        System.out.println("p1.country: " + p3.country);
        System.out.println("p1.country: " + p4.country);


    }
}

相关文章

  • Java中static的用法

    在Java中,static可以修饰成员变量、成员方法、代码块和内部类。 1. static修饰成员变量 stati...

  • java语言static

    Java中的静态方法static 1、static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可...

  • static关键字

    static关键字意为静态的,在Java中static常见的有四种用法 修饰成员变量和成员方法: 被 static...

  • Java Static关键字

    在java中,static是一个修饰符,用于修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程...

  • 2019-03-06 Java Interface

    Java static static 特点 static是一个修饰符,用于修饰成员。 static修饰的成员被所有...

  • 2019-03-07 Java static

    Java static static 特点 static是一个修饰符,用于修饰成员。 static修饰的成员被所有...

  • JavaSE总结(3)内部类和异常

    一、static: static:静态修饰符 可以修饰成员 成员变量 成员方法 特点: static修饰的成员是属...

  • Day8关键字static,单例设计模式(P66~P72)

    关键字static 在Java类中,可用static修饰属性、方法、代码块、内部类;被修饰后的成员将-随着类的加载...

  • java面试问题总结与分享,很乱

    java中static关键字的作用 在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员...

  • 代码查错

    Something1.java 5。 static关键字 static修饰成员变量 用static修饰的成员变量不...

网友评论

      本文标题:Java中的static修饰成员方法

      本文链接:https://www.haomeiwen.com/subject/awsacqtx.html