静态成员变量在第一次被调用的时候就会被创建保存在内存中,而且整个程序中只会被创建一次
一但一个类中定义了静态成员变量 那么该变量就不属于这个类了而是属于这个类的所有对象
public class A {
public static String name;
}
public class test {
public static void main(String[] args) {
A.name="abc";
System.out.println(A.name); //abc
A a=new A();
a.name="aaaa";
System.out.println(a.name); //aaaa
A.name="qwe";
A a1=new A();
System.out.println(a1.name); //qwe
}
}
可以看出来 是不是 都是在修改同一个内存地址中的值和对象无关 ,也就证明了此静态属性 ,属于所有该类对象的,这里提示下使用静态一般都是 类名.
而不要new 对象
静态方法规则:
静态方法是属于类的,只存在一份,会被该类的所有对象共享。不可以被重写。
1.
你想一下 我们调用静态 是 怎么调用的就明白了 (类名 点) 那么既然这么调用了
1.
那么子类怎么 将重写的方法 给父类呢?
1.
静态方法能被重载 调用方法 一样: 类名点
1.
静态能被继承
演示调用静态方法:
public class A {
public static void show(){
System.out.println("a");
}
}
public class test {
public static void main(String[] args) {
A.show();
}
}
静态代码块 在第一个对象new 的时候执行一次之后 就不会执行了
静态代码块中 只能存在静态 也就是只能给静态属性赋值
public class A {
public static String name;
static {
name="hu";
System.out.println("我是静态代码块");
}
public A(){
System.out.println("我是构造");
}
public static void main(String[] args) {
A a=new A();
}
}
结果:
我是静态代码块
我是构造
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_45203607/article/details/120235673
内容来源于网络,如有侵权,请联系作者删除!