java语言static

作者: CCCA | 来源:发表于2016-04-12 22:25 被阅读22次

    Java中的静态方法static

    1、static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享(因此可以用來统计一个类有多少个实例化对象),所以有些属性希望被所有对象共享,则必须将其声明为static属性,被static声明的属性成为全局属性。
    2、只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。
    3、类中定义的静态代码块会优先于构造块先执行,而且不管有多少个对象,静态代码块只执行一次
    class PersonE{
    private String name;
    private int age;
    private static String country = "A城";
    public PersonE(String name,int age){
    this.name = name;
    this.age = age;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    public static String getCountry() {
    return country;
    }
    public static void setCountry(String country) {
    PersonE.country = country;
    }
    public void info(){
    System.out.println("姓名:"+this.getName()+","+"年龄:"+this.getAge()+","+"城市:"+country);
    }
    }
    public class StaticUse {
    public static void main(String[] args){
    PersonE per1 = new PersonE("张三",20);
    PersonE per2 = new PersonE("李四",22);
    System.out.println("---------修改之前--------");
    per1.info();
    per2.info();
    System.out.println("---------修改之後---------");
    PersonE.setCountry("B城");
    per1.info();
    per2.info();
    }
    }


    屏幕快照 2016-04-12 下午10.20.25.png

    例2:
    public class StaticUse{
    private static int s;
    public StaticUse(){
    System.out.println("Creat new Class");
    }
    static{
    System.out.println("static block initialized");
    }
    public static int getS() {
    return s;
    }
    public static void setS(int s) {
    StaticUse.s = s;
    }
    public static void main(String[] args){
    StaticUse classA = new StaticUse();
    StaticUse classB = new StaticUse();
    System.out.println("classA.s ="+classA.getS()+";classB.s ="+classB.getS());
    classA.setS(10);
    System.out.println("classA.s ="+classA.getS()+";classB.s ="+classB.getS());
    classB.setS(classB.getS()+10);
    System.out.println("classA.s ="+classA.getS()+";classB.s ="+classB.getS());
    }
    }


    屏幕快照 2016-04-12 下午10.22.17.png
    例子3、
    class PersonE{
    private static int count = 0;
    public PersonE(){
    count++;
    System.out.println("产生了"+count+"个对象");
    }
    }
    public class StaticUse{
    public static void main(String[] args){
    new PersonE();
    new PersonE();
    }
    }
    屏幕快照 2016-04-12 下午10.24.22.png

    相关文章

      网友评论

        本文标题:java语言static

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