00006.1非静态代码块

编程入门 行业动态 更新时间:2024-10-27 21:16:06
1、类的成员:
(1)属性:成员变量
(2)方法:成员方法
(3)构造器
(4)代码块
①非静态代码块
②静态代码块:后面讲,和static一起说
2、非静态代码块(1)声明的格式:【修饰符】 class 类名{
{
非静态代码块;
}
}
(2)非静态代码块中的代码什么时候执行?
①在“每次”创建对象的时候执行
②比构造器早

3)实例初始化过程:创建对象时,为对象进行初始化的操作①为成员变量显式赋值②执行非静态代码块③执行构造器Java编译器其实,会把这三个部分的代码,合成一个叫做(【形参列表】)实例初始化方法即编译后的.class字节码信息中,是没有构造器这个概念。(【形参列表】)实例初始化方法的代码就是由三个部分组成:①成员变量显式赋值的代码②非静态代码块中的代码③构造器中的代码其中的①和②按顺序执行,而③一定是它们当中的最后执行。而且,有几个构造器,就会有几个实例初始化方法。那么当你创建对象的时候,调用对应的构造器时,其实执行的是对应的实例初始化方法(【…】)
贴代码:
public class TestBlock {public static void main(String[] args) {
/*		MyClass my1 = new MyClass();//调用无参构造MyClass my2 = new MyClass("atguigu");//调用有参构造
*/	Demo d1 = new Demo();//调用无参构造,本质上是调用<init>()实例初始化方法Demo d2 = new Demo("atguigu");//调用有参构造,本质上是调用<init>(形参列表)实例初始化方法}
}
class MyClass{private String str = "hello";//显式赋值public MyClass(){System.out.println("无参构造");}public MyClass(String str){this.str = str;System.out.println("有参构造");}{System.out.println("非静态代码块");}
}class Demo{{System.out.println("非静态代码块1");}private String str = assign();//调用方法,来为str进行显式赋值public Demo(){System.out.println("无参构造");}public Demo(String str){this.str = str;System.out.println("有参构造");}{System.out.println("非静态代码块2");}public String assign(){System.out.println("assign方法");return "hello";}
}


package .atguigu.test01.block;public class TestInit {public static void main(String[] args) {/*Father f = new Father();//父类的无参构造*//** Son s = new Son();* 父类的无参构造子类的无参构造*///Son s2 = new Son("atguigu");/** 父类的无参构造子类的有参构造*/Son s3 = new Son("atguigu", 10);/** 父类的无参构造子类的有参构造1子类的有参构造2*/}
}
class Father{public Father(){System.out.println("父类的无参构造");}
}
class Son extends Father{private String str;private int num;public Son(){//隐含了super();  子类的构造器中一定会调用父类的构造器,默认调用父类的无参构造System.out.println("子类的无参构造");}public Son(String str){//隐含了super()this.str = str;System.out.println("子类的有参构造1");}public Son(String str,int num){this(str);this.num = num;System.out.println("子类的有参构造2");}
}

更多推荐

静态,代码

本文发布于:2023-05-30 09:20:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/365357.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:静态   代码

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!