Answer:

动手动脑:

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

Answer:

因为类Foo的构造函数是有一个参数的,所以我们在new一个Foo类的对象时必须赋予一个符合条件的实参。

2——

请运行TestStaticInitializeBlock.java示例,观察输出结果,总结出“静态初始化块的执行顺序”。

TestStaticInitializeBlock.java:

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();}
}

输出结果:

总结静态初始化块的执行顺序:

1.静态初始化块只执行一次。

2.创建子类型的对象时,也会导致父类型的静态初始化块的执行。

2.并且从父类到子类依次执行完静态初始化块。然后从父类到子类依次执行完普通初始化块。最后再从父类到子类依次执行构造函数。(执行顺序:静态初始化块——>普通初始化块——>构造函数)

要求发表的:

1——自行总结java字段初始化的规律:

Answer:

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

针对java中的构造函数的初始化:
对象创建的时候先赋初始化值然后在调用构造函数初始化。

类字段的初始化顺序——

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

2.执行类的构造函数:

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

转载于:https://www.cnblogs.com/6354-aa/p/5995228.html

04_类与对象_课程动手动脑问题以及课后实验性问题及解答集锦相关推荐

  1. 03-方法ppt动手动脑问题及课后实验性问题总结

    一.如何不使用static来进行调用函数? 1.自己定义的不需要都是static,但是要在主函数中调用就需要static了,因为main是静态 的,在类加载时就加载了.如果想用又不加可以吧自己写的方法 ...

  2. C++ 类与对象_类的其他成员(常成员,静态成员,友元)

    系列文章目录 重新复习c++,所以把书中的重点内容整理成博客,尽量简洁,易懂. C++ 类与对象_类和对象的定义与访问 (定义类和对象,访问对象成员,this指针) C++ 类与对象_构造函数和析构函 ...

  3. C#类与对象_创建玩家类

    C#:类与对象_创建玩家类,实现字段,方法,引用和简单游戏逻辑 //创建CF当中的玩家类Player,该类含有字段:名字,性别, 血量,武器. //武器背包当中匕首,步枪,机枪,狙击枪. 玩家类具有以 ...

  4. 类和对象_月隐学python第15课

    目录 1 ⾯向对象的思想 2. 类和对象 2.1 类和对象的概念 2.2 类的定义​ 2.3 成员⽅法 2.4 对象的创建 2.5 成员属性 3 构造和析构 3.1 构造⽅法 3.2 析构⽅法 3.3 ...

  5. C++_类和对象_对象特性_成员变量占用对象内存_成员函数_静态成员函数_静态变量_都不占用对象内存_他们是分开存储的---C++语言工作笔记048

    然后我们来看c++中的,类的对象的大小,类中的成员变量和函数的存储问题. 首先我写个空类 然后在类外写个test01这个函数,然后 在main方法中调用这个test01这个函数

  6. C++_类和对象_封装_成员属性私有化---C++语言工作笔记038

    1.然后我们再来看类和对象,成员属性设置为私有化 将所有的成员属性设置为私有以后,可以对外提供get,set方法,这样可以实现自己控制属性的 读写权限. 2.对于写权限我们可以检测数据的有效性. 先写 ...

  7. C++_类和对象_封装_属性和行为做为整体_封装案例---C++语言工作笔记036

    然后我们再来看看类和对象.这个面向对象的含义就不多说了,java的时候已经把这个弄的..烂了.. 然后再看封装.看一下就行了,其实就是把属性和函数,写到一起,来描述一个实体. 看上面这个例子.

  8. java实验 类和对象_java 实验(三) 类和对象

    一.实验目的和要求 1. 掌握类的构造函数的重载 2. 深入理解类和对象 3. 学习NetBeans中UML项目的创建类并生成相应代码的方法 二.实验内容和原理 设计一个复数类,能够完成复数之间的基本 ...

  9. Java基础笔记_6_类和对象_成员变量

    一 类和对象 类是抽象的概念,是对象的模板 对象是具体的事物,是类的具体实例 创建类的语法 public class 类名{  // 类内容 } 创建对象的语法 new 关键字就是实例化对象的意思.& ...

最新文章

  1. Sql Server 2012 分页方法分析(offset and fetch)
  2. VMware中无法识别usb
  3. spring boot web jar说明
  4. 服务器03系统怎么设置网站,Windows 2003系统路由服务的配置方法
  5. oracle 查询不同编号的时间最小记录_投稿 | ORACLE amp; PostgreSql 利用伪列删除完全重复的两行...
  6. PHP连接sql seaver数据库
  7. 机器学习之熵【从定义到代码】
  8. matlab拉格朗日曲线_数学中高耸的金字塔——拉格朗日
  9. 静态成员变量.xml
  10. Eclipse离线安装Svn插件
  11. autojs刷网课之一、刷视频篇
  12. java class文件反编译
  13. Servlet学习笔记
  14. conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge遇到的报错
  15. 蓝桥杯练习题 Fibonacci数列
  16. python-docx库实战修改word文档格式
  17. 华为隐藏鸿蒙,鸿蒙系统有隐私空间吗_华为鸿蒙系统有隐私空间吗
  18. 计算机课怎么考试时间,考研专业课考试时间介绍
  19. git FreshMan指南,五分钟上手(图解)
  20. ASEMI-MB6S贴片整流桥参数MB6S

热门文章

  1. Android之TextView属性详解
  2. Dynamics CRM 2015 站点地图公告配置实体显示名称的变更
  3. 大数据:互联网大规模数据挖掘与分布式处理
  4. Win10无法使用小娜搜索本地应用问题的解决方案
  5. unicode字符、python乱码问题
  6. 圆桌论坛对话:互联网产业革命
  7. OCP Java 自测
  8. 成功数据恢复一例LINUX EXT3 下误删除ORACLE数据库
  9. 惜缘-致家乡的一位女孩[原创]
  10. 加载一张图片到ImageView到底占据多少内存