随笔

1.以下代码无法通过编译:

public class Test1 {

        public static void main(String[] args) {

                 Foo obj=new Foo();
             }
}
           
             class Foo{
                  int value;
                  public Foo(int initValue) { 
                     value=initValue;
                 }
             }
原因: 改类给出了一个自定义的构造方法,导致原有的默认构造方法无法使用,导致编译无法通过。

public class Test1 {

public static void main(String[] args) {
int a=6;
Foo obj=new Foo(a);
}
}

class Foo{
int value;
public Foo(int initValue) { //给出的构造方法
value=initValue;
}
}

如上代码就可以通过,因为它正确调用了class 类给定了自定义构造函数。

2.初始化块

Java的初始化块分为静态初始化块和非静态初始化块

静态初始化块

static{

    //初始化内容

}
非静态初始化块
{

    //初始化内容

}

静态初始化块仅能初始化类变量,即static修饰的数据成员。非静态初始化块在对象每次生成时都会被执行一次,可以初始化类的实例变量。两种初始化块不可以传参数。

非静态初始化块在构造函数执行时且构造函数主体代码没执行前执行

静态初始化块、非静态初始化块、构造函数 执行的顺序为:静态初始化块->非静态初始化块->构造函数

posted @   漏网鲨鱼  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示