• 动手动脑1



    package test; public class Test{ public static void main(String[]agrs) { Foo obj1=new Foo(); } } class Foo{ int value; public Foo(int initValue) { value=initValue; } }

     因为Test类构造了class Foo{}方法导致系统不再提供默认无参数的构造方法,然而此类并没有符合class foo的构造方法应该有参数的Foo obj1=new Foo(x);x是一个整数。

    2.

    package test;
     class InitializeBlockClass{
    	 {
    	 field=200;
     }
     public int field=100;
     public InitializeBlockClass(int value) {
    	 this.field=value;
     }
     public InitializeBlockClass() {
    
     }
     public static void main(String[]agrs) {
    	 InitializeBlockClass obj=new  InitializeBlockClass();
    	 System.out.println(obj.field);//?
    	
             obj=new  InitializeBlockClass(300);
             System.out.println(obj.field);//?
     }}
    

      输出的结果为100 300

    执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。 执行类的构造函数。

    类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”。

    3.

    package test;
    class Root{ static{ System.out.println("Root的静态初始化块"); } { System.out.println("Root的普通初始化块"); } public Root() { System.out.println("Root的无参数的构造器"); } } class Mid extends Root { static{ System.out.println("Mid的静态初始化块"); } { System.out.println("Mid的普通初始化块"); } public Mid() { System.out.println("Mid的无参数的构造器"); } public Mid(String msg) { //通过this调用同一类中重载的构造器 this(); System.out.println("Mid的带参数构造器,其参数值:" + msg); } } class Leaf extends Mid { static{ System.out.println("Leaf的静态初始化块"); } { System.out.println("Leaf的普通初始化块"); } public Leaf() { //通过super调用父类中有一个字符串参数的构造器 super("Java初始化顺序演示"); System.out.println("执行Leaf的构造器"); } } public class TestStaticInitializeBlock { public static void main(String[] args) { new Leaf(); } }

      输出结果:

    静态初始化块只执行一次。 创建子类型的对象时,也会导致父类型的静态初始化块的执行。执行leaf()子类型也将Root的父类型也执行了

    4.

    package test;
    
    public class Test{
    	public int i=1;
    	public static void main(String[]agrs) {
    		Test s=new Test();
    		
    		System.out.println("x="+s.i);
    		
    	}
    	
    }
    

      

    静态方法中访问类的实例成员时需要再静态方法中创建该类的对象,一次能访问类的实例成员。

  • 相关阅读:
    bzoj1023: [SHOI2008]cactus仙人掌图
    bzoj2816: [ZJOI2012]网络
    bzoj2329: [HNOI2011]括号修复(fhq treap)
    bzoj1500: [NOI2005]维修数列(fhq treap)
    bzoj千题计划220:bzoj3938: Robot
    bzoj千题计划219:bzoj1568: [JSOI2008]Blue Mary开公司
    bzoj千题计划218:bzoj2333: [SCOI2011]棘手的操作
    bzoj千题计划217:bzoj2333: [SCOI2011]棘手的操作
    单调队列优化多重背包
    bzoj千题计划216:bzoj1499: [NOI2005]瑰丽华尔兹
  • 原文地址:https://www.cnblogs.com/zlj843767688/p/9825424.html
Copyright © 2020-2023  润新知