zoukankan      html  css  js  c++  java
  • 动手动脑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}

    运行截图如下:

     

  • 相关阅读:
    C#开源资源大汇总
    GridControl 验证集合
    C#得到CPU的序列号、硬盘序列号、网卡序列号
    DeveXpress之XtraGrid一些知识
    DevExpress 经典常用功能代码收集
    XtraGrid使用方法
    一般引起Cookie丢失的原因
    婚姻軟件化、人生程序化。
    在服务器控件中需要加入单选或复选时的处理。
    访问修饰符的个人理解-private与protected
  • 原文地址:https://www.cnblogs.com/zy2481912102/p/14159797.html
Copyright © 2011-2022 走看看