东莞做网站的模块网站怎么做
news/
2025/9/28 12:43:08/
文章来源:
东莞做网站的,模块网站怎么做,百度蜘蛛抓取新网站,杭州的互联网企业1 非静态代码块非静态代码块特点①可以为实例变量(非静态的属性)初始化②每次创建对象的时候#xff0c;都会执行一次#xff0c;且先于构造器执行③若有多个非静态的代码块#xff0c;那么按照定义的顺序从上到下依次执行④代码块中既可以调用非静态的变量和方法#xff0…1 非静态代码块非静态代码块特点①可以为实例变量(非静态的属性)初始化②每次创建对象的时候都会执行一次且先于构造器执行③若有多个非静态的代码块那么按照定义的顺序从上到下依次执行④代码块中既可以调用非静态的变量和方法也可以可以调用静态的变量和方法测试代码public class BlockTest {public static void main(String[] args) {MyClass my1 new MyClass();//MyClass my2 new MyClass(java);}}class MyClass {private String str;{System.out.println(非静态代码块1);}public MyClass() {System.out.println(无参构造);}public MyClass(String str) {this.str str;System.out.println(有参构造);}{System.out.println(非静态代码块2);}}运行结果非静态代码块1非静态代码块2无参构造2 实例初始化实例初始化过程创建对象时为对象进行初始化的操作①为成员变量显式赋值②执行非静态代码块③执行构造器Java编译器会把这三个部分的代码合成一个叫做 ([形参列表]) 实例初始化方法即编译后的.class字节码信息中是没有构造器这个概念。([形参列表]) 实例初始化方法的代码就是由三个部分组成①成员变量显式赋值的代码②非静态代码块中的代码③构造器中的代码其中①和②按定义顺序依次执行③最后执行。而且有几个构造器就会有几个实例初始化方法。那么当你创建对象的时候调用对应的构造器时其实执行的是对应的实例初始化方法 ([形参列表])代码示例public class InitTest {public static void main(String[] args) {Demo d1 new Demo();//Demo d2 new Demo(java);}}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(为成员变量赋值);return hello;}}3 子类实例初始化(1)先执行父类的实例初始化方法它由三部分组成成员变量的显式赋值非静态代码块构造器(2)再执行子类的实例初始化方法它由三部分组成成员变量的显式赋值非静态代码块构造器super()或super(实参列表) 表面是调用父类的构造器其实是调用父类对应的实例初始化方法super()或super(实例列表) 表面是在子类构造器的首行其实是在子类实例初始化方法的首行代码示例public class InitTest2 {public static void main(String[] args) {Son s new Son();}}class Father {private String strFather assignFather();{System.out.println(父类的非静态代码块);}public Father(){System.out.println(父类的无参构造);}public String assignFather(){System.out.println(父类的assignFather());return father;}}class Son extends Father {private String strSon assignSon();{System.out.println(子类的非静态代码块);}public Son(){//super() 调用父类的实例初始化方法而且它在子类实例初始化方法的首行System.out.println(子类的无参构造);}public String assignSon(){System.out.println(子类的assignSon());return son;}}运行结果父类的assignFather()父类的非静态代码块父类的无参构造子类的assignSon()子类的非静态代码块子类的无参构造子类为成员变量显式赋值方法重写父类显式赋值方法时调用的子类重写的方法代码示例public class InitTest3 {public static void main(String[] args) {Son s new Son();}}class Father {private String strFu assign();{System.out.println(父类的非静态代码块);}public Father(){System.out.println(父类的无参构造);}public String assign(){System.out.println(父类的assign());return father;}}class Son extends Father {private String strSon assign();{System.out.println(子类的非静态代码块);}public Son(){//super() 调用父类的实例初始化方法而且它在子类实例初始化方法的首行System.out.println(子类的无参构造);}public String assign(){System.out.println(子类的assign());return son;}}运行结果子类的assign()父类的非静态代码块父类的无参构造子类的assign()子类的非静态代码块子类的无参构造
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920651.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!