Rumah > Java > Javabermula > java中静态属性与动态属性的区别

java中静态属性与动态属性的区别

王林
Lepaskan: 2019-11-29 14:32:20
ke hadapan
4983 orang telah melayarinya

java中静态属性与动态属性的区别

为什么static不用创建对象就可以被调用?

在未创建对象之前,所有静态属性或方法都放在元数据区里,静态的可通过类名调用。

例如:

public class Cat{
    public static String name;//静态的,不创建对象都存在
    public String color; //动态的,不创建猫的对象不存在这个属性
}
Salin selepas log masuk
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是静态属性
    }
}
Salin selepas log masuk

在线教学视频分享: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(); //这时再能调用
    }
}
Salin selepas log masuk

更多相关文章教程请访问:java入门学习

Atas ialah kandungan terperinci java中静态属性与动态属性的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Isu terkini
Bolehkah java digunakan sebagai bahagian belakang web?
daripada 1970-01-01 08:00:00
0
0
0
Tidak dapat memasang java
daripada 1970-01-01 08:00:00
0
0
0
Pasang JAVA
daripada 1970-01-01 08:00:00
0
0
0
Bagaimanakah php melaksanakan penyulitan sha1 java?
daripada 1970-01-01 08:00:00
0
0
0
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan