Java面向对象-关键字static

Java面向对象-关键字static,第1张

Java面向对象-关键字static

static表示静态的,所有对象共用的(所有对象都看到一份,而且只要其中任何一个对象对其进行修改,其他所有对象都会看到这个变化),所有的静态内容都是跟随类存在,在对象还没有时就已经存在了。

static属性:static属性被所有对象共享;这个属性先于对象存在

static方法:static方法先于对象存在

静态成员变量(用static声明的成员变量):

①:它为该类的公用变量,隶属于类;被该类的所有实例(对象)共享,在类被载入时被显示初始化。

②:对于该类的所有实例(对象)来说,static成员变量只有一份。被该类的所有实例(对象)共享。

③:可以使用"对象.类属性"来调用。不过,一般都是用"类名.类属性"调用

代码示例:

public class Bojian{
    public static void main(String args[]){
        Hero hero1=new Hero("张三");
        Hero hero2=new Hero("李四");
        System.out.println(Hero.count);
    }
}

class Hero{
    String name;
    static int count=0;

    public Hero(){
        System.out.println("英雄出生");
        count++;
    };

    public Hero(String name) {
        this.name = name;
        System.out.println(name+"英雄出生");
        count++;
    }
}

内存分析:

 

静态方法(static声明的方法):

①:不需要对象,就可以调用(类名.方法名())

②:在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。也不可以出现this关键字(this永远指向当前对象)。

代码示例:

public class Bojian{
    public static void main(String arg[]){
        Hero.hello();//没有对象
    }
}

class Hero {
    String name;

    public static void hello() {
        //不能在静态方法中引用非静态的成员变量
        int number = 1;
        System.out.println(number +"向你问好!");
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5137237.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存