首页 > 其他分享 >星期一

星期一

时间:2023-09-25 22:45:11浏览次数:19  
标签:初始化 InitializeBlockClass 星期一 构造方法 static public 赋值

动手动脑

当自定义了构造方法后,系统不会调用默认构造方法

解决方法:构造方法重载,再定义一个默认构造方法

类中数据的初始化,如果默认构造方法中没有赋值,初始化优先级:有参构造方法>类中赋值初始化?初始化块

如果默认构造方法中有赋值,优先级:默认构造方法=有参构造方法>类中赋值初始化?初始化块

其中类中赋值初始化与初始化块要看先后位置,谁在后面执行,谁优先级大

可以看出静态初始化块只执行一次,所以第二个值还是300

另外创建子类型的对象时,也会导致父类型的静态初始化块的执行

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 public class Main {     public static void main(String[] args) {         InitializeBlockClass obj1=new InitializeBlockClass(300);         obj1.Show(obj1);     }   } class InitializeBlockClass{     int n=0;             static {         field=200;     }     public static int field=100;     public InitializeBlockClass(int value)     {         this.field=value;     }     public InitializeBlockClass(){       }     public static void Show(InitializeBlockClass a)     {         System.out.println(a.n);     } }

  可以用类对象作为参数传递给静态方法访问

使用静态方法输出了类的实例成员 n

标签:初始化,InitializeBlockClass,星期一,构造方法,static,public,赋值
From: https://www.cnblogs.com/chukjbgg333/p/17729045.html

相关文章