• 动手动脑3


    1:【以下代码为何无法通过编译?哪儿出错了?】

    代码如下:

    原因:需要在Foo()里面加个参数。

    2:【观察输出结果,总结出“静态初始化块的执行顺序”】

    代码如下:

    复制代码
     1 public class TestStaticInitializeBlock {
     2     public static void main(String[] args) {
     3         new Leaf();
     4     }
     5 }
     6 
     7 
     8 class Root
     9 {
    10     static
    11     {
    12         System.out.println("Root的静态初始化块");
    13     }
    14     {
    15         System.out.println("Root的普通初始化块");
    16     }
    17     public Root()
    18     {
    19         System.out.println("Root的无参数的构造器");
    20     }
    21 }
    22 class Mid extends Root
    23 {
    24     static
    25     {
    26         System.out.println("Mid的静态初始化块");
    27     }
    28     {
    29         System.out.println("Mid的普通初始化块");
    30     }
    31     public Mid()
    32     {
    33         System.out.println("Mid的无参数的构造器");
    34     }
    35     public Mid(String msg)
    36     {
    37         //通过this调用同一类中重载的构造器
    38         this();
    39         System.out.println("Mid的带参数构造器,其参数值:" + msg);
    40     }
    41 }
    42 class Leaf extends Mid
    43 {
    44     static
    45     {
    46         System.out.println("Leaf的静态初始化块");
    47     }
    48     {
    49         System.out.println("Leaf的普通初始化块");
    50     }    
    51     public Leaf()
    52     {
    53         //通过super调用父类中有一个字符串参数的构造器
    54         super("Java初始化顺序演示");
    55         System.out.println("执行Leaf的构造器");
    56     }
    57 
    58 }
    复制代码

    执行顺序:

    静态初始化块->初始化块->构造函数

    3:【静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)? 请编写代码验证你的想法。】

    代码如下:

    复制代码
     1  public class Quiet {
     2      int x=100;
     3      static int y=200;
     4      public static void method() {
     5          System.out.println("实例变量x="+new Quiet().x);
     6         System.out.println("静态变量y="+y);
     7      }
     8      public static void main(String[] args) {
     9          Quiet.method();
    10          Quiet quiet=new Quiet();
    11          System.out.println("x="+quiet.x);
    12      }
    13}

    运行截图如下:

     

  • 相关阅读:
    IIS“服务没有及时响应启动或控制请求”错误解决
    CSS Overflow属性详解
    访问二维数组的实例ActionScript
    mailto语法
    IIS重新注册asp.net
    flash 动态文本 html
    C++继承中构造函数、析构函数调用顺序及虚析构函数
    根据指定两个日期计算出这些时间内有多少天是周末 php程序函数代码
    计算一段日期内的周末天数(星期六,星期日总和)(
    计算一段日期内的周末天数(星期六,星期日总和
  • 原文地址:https://www.cnblogs.com/zy2481912102/p/14159797.html
Copyright © 2020-2023  润新知