java静态属性和静态方法,静态属性和动态属性的区别
为什么不创建对象就可以调用static?
在创建对象之前,所有的静态属性或方法都放在元数据区域,静态属性或方法可以通过类名调用。
例如:
公共类别Cat{
公共静态字符串名称;//Static,所有未创建的对象都存在。
公共字符串颜色;//动态,对于不创建猫的对象,此属性不存在
}公共类Main{
公共静态void main(String[] args){
Cat c=new Cat();
C.color= black
C.name=喵喵喵;
Cat C1=new Cat();
C1.color= blue
system . out . println(C1 . name);//更正这是因为name是静态属性
}
}在线教学视频分享:java教学视频
静态属性的特点:这个类下的所有对象都共享这个属性,不创建对象这个属性仍然存在,所以只需要按类修改这个属性(Cat.name="meow ")。
动态属性只存在于被创建的对象中,这个属性只在对象被创建时存在。
静态属性和动态属性的区别:
堆栈能找到对象,那么它能调用元数据区的内容吗?3354可以
那么可以通过类调用堆的内容吗?3354不能,因为这个过程存在一个确定性和不确定性的问题。
通过类调用元数据区的内容,因为对象是动态的,静态的东西被调用,静态的东西一旦被调用就能保证存在,静态的东西先于对象存在。从静态调用堆来说是动态的,所以不确定这个动态的东西是否一定存在。
所以动态可以调用静态,静态不能调用动态。
公共类别Cat{
公共静态字符串名称;//Static,所有未创建的对象都存在。
公共字符串颜色;//动态,对于不创建猫的对象,此属性不存在
公共目录(){
}
public void foo(){
Color= black//正确
Name=喵喵喵;//正确,您肯定可以调用静态
}
公共静态void测试(){
Color= black//错误,静态方法不能调用动态属性。
Name=小喵;//正确
foo();//动态的不一定存在
Cat c=new Cat();
c . foo();//此时可以再次调用。
}
}更多相关文章和教程,请访问:java入门。以上是java中静态属性和动态属性区别的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。