zoukankan      html  css  js  c++  java
  • 动手动脑3

    1.下代码为何无法通过编译?哪儿出错了?

    如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。所以可以将“Foo obj1 = new Foo();”改为“Foo obj1 = new Foo(4);”。

    2.请依据代码的输出结果,自行总结Java字段初始化的规律。

    	public static void main(String[] args) {
    		
    		InitializeBlockClass obj=new InitializeBlockClass();
    		System.out.println(obj.field);
    		
    		obj=new InitializeBlockClass(300);
    		System.out.println(obj.field);
    	}
    
    }
    

      结果截图:

     在“public int field = 100;”在“{field=200;}”之前时,是“{field=200;}”说了算;在之后时,是“public int field = 100;”说了算。也就是谁比较靠后就是谁初始化起作用。执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。执行类的构造函数。类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”。

     3.观察输出结果,总结出“静态初始化块的执行顺序”。

    结果:

    静态初始化块的执行顺序:父类的静态初始化块      子类的静态初始化块   父类的初始化块  父类的构造函数   子类的初始化块   子类的构造函数

     4.静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?

    public class Text3
    {
     int x = 3;//类的实例变量,初始化值为3
     static int  y = 4;//类的静态变量,初始化值为4
     public static void method()//静态方法
      {   
       System.out.println("实例变量x = " + new Text3().x);//在静态方法中访问类的实例变量需首先进行类的实例化
       System.out.println("静态变量y = " + y);//在静态方法中可直接访问类的静态变量
      }
    
     public static void main(String[] args) 
        {
         Text3.method();
         Text3 ex = new Text3();
            System.out.println("x = " + ex.x);
            System.out.println("y = " + ex.y);
        }
    }

    5.

    使用上页幻灯片中定义的类,以下代码输出结果是什么?

    运行结果分为两部分:

    ①“public int field = 100;”在“{field=200;}”之前

    ②“public int field = 100;”在“{field=200;}”之后

    java字段初始化的规律:所有类的变量都默认初始化为null,比如String a; Integer b;数字类的原始数据类型默认初始化为0,比如int a; short b; char c;boolean默认初始化为false;

    6.对象变量也可以使用“==”判断两变量值是否相等吗?

    public class T {
    public static void main (String[] args){
    Foo obj1=new Foo();
    Foo obj2=new Foo();
    System.out.println(obj1==obj2);
    }
    }
    class Foo{
    int value=100;
    }
    

      

    当“==”施加于原始数据类型变量时,是比较变量所保存的数据是否相等 当“==”施加于引用类型变量时,是比较这两个变量是否引用同一对象。 引用代表地址,所以“==”实际上相当于比较两个引用类型变量中保存的对象地址是否相同

  • 相关阅读:
    DGA域名可以是色情网站域名
    使用cloudflare加速你的网站隐藏你的网站IP
    167. Two Sum II
    leetcode 563. Binary Tree Tilt
    python 多线程
    leetcode 404. Sum of Left Leaves
    leetcode 100. Same Tree
    leetcode 383. Ransom Note
    leetcode 122. Best Time to Buy and Sell Stock II
    天津Uber优步司机奖励政策(12月28日到12月29日)
  • 原文地址:https://www.cnblogs.com/NCLONG/p/9825379.html
Copyright © 2011-2022 走看看