1、动手动脑

由于类中定义了需要参数的构造方法,导致系统不再提供默认的构造方法。

2、java字段初始化

运行结果

100

300

java字段在初始化时先按照对应的构造方法执行。若构造方法中没有对变量进行初始化,对于变量定义时初始化和初始化块,排在后面的会覆盖在前面的。

3、动手动脑

静态初始化块的执行顺序

源码

public class Root1
{
   public static void main(String[] args)
   {
      new Leaf();
  
   }
}
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的构造器");
   }
}
 运行结果
Root的静态初始化块
Mid的静态初始化块
Leaf的静态初始化块
Root的普通初始化块
Root的无参数的构造器
Mid的普通初始化块
Mid的无参数的构造器
Mid的带参数构造器,其参数值:Java初始化顺序演示
Leaf的普通初始化块
执行Leaf的构造器

规律

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

4、

直接在静态方法中初始化含有实例对象的类会报错

public class statics {
   int x=1;
   static int y=2;
   public static void method()
   {
      int a=new statics();
      System.out.println();
   }
}

采用如下方法进行调用

public class statics {
   int x=1;
   static int y=2;
   public static void main(String[] args)
   {
      System.out.println(new statics().x);
      System.out.println();
   }
}

java课后作业3的更多相关文章

  1. java课后作业

    课后作业之字串加密: 设计思想: 1.输入要加密的英文子串str 2.定义num=str的字符串长度 3.将字符串转化为单个字符 4.每个字符+3,向后移3个 5.定义str1,将新得到的每个字符加到 ...

  2. java课后作业总结

    今天的课后作业是做一个查找一段文章中单词出现的概率,统计并 输出出现概率最高的几个单词.拿到题目,老师还是往常一样提醒着我们先分析题目,构建大概的编程思路.程序需要遇到文本文件的输入输出操作,这一直一 ...

  3. java课后作业-5

    作业一:请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?“ 程序源代码; public class Lei { /** * @param args */ public static vo ...

  4. java课后作业-4

    一.编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. public class suiji { private static final int N = 200; private ...

  5. java课后作业7

    9.页实验 下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m; d=(Dog)m; d=c; c=(Cat)m; 答: d=m;和d=c;引起编译错误: 原因: ...

  6. java课后作业6

    一.运行TestInherits.java 结论:通过super调用基类构造方法,必须是子类构造方法中的第一个语句. 二.为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不 ...

  7. java课后作业5

    [问题]随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 设计思路: 1.申请一个长度为10的数组 2.计算机随机生成10个数,并赋给数组 3. ...

  8. JAVA课后作业01

    一.关于枚举的问题 public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t ...

  9. 10.18号java课后作业代码

    import java.util.*; public class T { public static int a=0; public T() { a++; System.out.println(&qu ...

  10. java 课后作业

    杨辉三角 组合数 public class YH { public static void main(String agrs[]) { int a[5][5],i,j; for(i = 0;i < ...

随机推荐

  1. 关于javascript中的内置函数

    (1) parseInt()函数 语法:parseInt(string,[n])   该函数主要将首位为数字的字符串转化为数字,若该字符串不是以数字开头,则返回NaN; n是用于指出字符串中的数据是几 ...

  2. JavaScript的语法、数据类型、基本算数和逻辑运算操作

    str.toString() 可以把字符串.数值.布尔值.对象转为字符串 String(str) 任何数值强制转换为字符串类型 <!DOCTYPE html> <html lang= ...

  3. 【daily】Java枚举 - fastjson对enum的处理

    目的 1.枚举值转换成完全的json: 2.对象中的枚举成员完全转换成json: 3.枚举类的全部值转换成json: 枚举定义 public enum SongsEnum { SAFE_AND_SOU ...

  4. [TJOI2008] 小偷

    TJOI2008小偷 题目背景 一位著名的小偷进入了一个充满宝石的储藏室,这个储藏室是由一连串房间构成的,房间的标号从0开始,想进入第i个房间就必须从第i-1个房间进入,如图: 题目描述 上图为三个房 ...

  5. 硬核干货 | C++后台开发学习路线

    2020秋招提前批 C/C++相关开发 拿到腾讯.华为等offer 学习路线及时间安排 推荐时间为4个月,包括四部分:语言,计算机基础知识,项目基础知识,项目实践. 语言 推荐学习1个月 学习方针:视 ...

  6. Python If&字典 初学者笔记

    and 当俩个条件都满足时为True否为False or 任意一个条件满足时为True否为Flase not in  通常用于If语句,用来判断一个元素是否不在某个列表中 banned_user = ...

  7. java静态初始化块的执行顺序

    先来观察下面的代码 package trr; class Root { static{ System.out.println("Root的静态初始化块"); } { System. ...

  8. 剑指offer-面试题31-栈的压入弹出序列-栈

    #include<iostream> #include<string.h> #include<algorithm> #include<cmath> #i ...

  9. maven依赖包无法更新下载

    在IDEA工程中导入已存在的module时,按默认设置,直到完成导入,结果所有的外部依赖包都无法更新下载,即使是更新了setting.xml配置文件信息,依旧是不能更新下载依赖包,现将具体的操作过程和 ...

  10. javascript 权威指南1

    JavaScript是面向web的编程语言 web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的.全球性的.动态交互的.跨平台的分布式图形信息系统.是建立在 ...