旗下导航:搜·么
当前位置:网站首页 > JAVA教程 > 正文

java中静态属性与动态属性的区分【JAVA教程】,java,静态属性,动态属性,区别

作者:搜教程发布时间:2019-11-30分类:JAVA教程浏览:66评论:0


导读:为何static不必建立对象就能够被挪用?在未建立对象之前,一切静态属性或要领都放在元数据区里,静态的可经由历程类名挪用。比方:publicclassCat{...

为何static不必建立对象就能够被挪用?

在未建立对象之前,一切静态属性或要领都放在元数据区里,静态的可经由历程类名挪用。

比方:

public class Cat{
    public static String name;//静态的,不建立对象都存在
    public String color; //动态的,不建立猫的对象不存在这个属性
}
public class Main{
    public static void main(String[] args){
        Cat c =new Cat();
        c.color = "黑色";
        c.name = "喵喵";
        Cat c1 = new Cat();
        c1.color = "蓝";
        System.out.println(c1.name); //准确 这是由于name是静态属性
    }
}

在线教授教养视频分享:java教授教养视频

静态属性的特性: 一切在该类下的对象同享这一个属性,不建立对象这个属性依旧存在,所以在修正这个属性时经由历程类修正就好了(Cat.name = “小喵”)

动态的属性只存在于建立的对象里,只要建立了对象这个属性才存在。

静态属性和动态属性的区分:

经由历程栈能够找到对象,那末它可否挪用元数据区里的内容?——能够

那末可否经由历程类挪用堆里的内容?——不可,由于这个历程存在一个肯定性和不肯定性的问题。

经由历程类挪用元数据区的内容,由于对象是动态的,挪用静态的东西,挪用时可保证静态的东西一 定存在,静态的东西先于对象的存在而存在;从静态的挪用堆里动态的,这时候就不肯定动态的这个东西是不是肯定存在。

所以动态的能够挪用静态的,静态的不能挪用动态的。

public class Cat{
    public static String name;//静态的,不建立对象都存在
    public String color; //动态的,不建立猫的对象不存在这个属性
    public Cat(){
        
    }
    public void foo(){
        color = "黑";//准确
        name = "喵喵";//准确,肯定能够挪用静态的
        
    }
    public static void test(){
        color = "黑"; //毛病,静态要领没法挪用动态的属性
        name = "小喵";//准确
        foo();//动态的不肯定存在
        Cat c = new Cat();
        c.foo(); //这时候再能挪用
    }
}

更多相干文章教程请接见:java入门进修

以上就是java中静态属性与动态属性的区分的细致内容,更多请关注ki4网别的相干文章!

标签:java静态属性动态属性区别


欢迎 发表评论: