04_类与对象_课程动手动脑问题以及课后实验性问题及解答集锦
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_类与对象_课程动手动脑问题以及课后实验性问题及解答集锦相关推荐
- 03-方法ppt动手动脑问题及课后实验性问题总结
一.如何不使用static来进行调用函数? 1.自己定义的不需要都是static,但是要在主函数中调用就需要static了,因为main是静态 的,在类加载时就加载了.如果想用又不加可以吧自己写的方法 ...
- C++ 类与对象_类的其他成员(常成员,静态成员,友元)
系列文章目录 重新复习c++,所以把书中的重点内容整理成博客,尽量简洁,易懂. C++ 类与对象_类和对象的定义与访问 (定义类和对象,访问对象成员,this指针) C++ 类与对象_构造函数和析构函 ...
- C#类与对象_创建玩家类
C#:类与对象_创建玩家类,实现字段,方法,引用和简单游戏逻辑 //创建CF当中的玩家类Player,该类含有字段:名字,性别, 血量,武器. //武器背包当中匕首,步枪,机枪,狙击枪. 玩家类具有以 ...
- 类和对象_月隐学python第15课
目录 1 ⾯向对象的思想 2. 类和对象 2.1 类和对象的概念 2.2 类的定义 2.3 成员⽅法 2.4 对象的创建 2.5 成员属性 3 构造和析构 3.1 构造⽅法 3.2 析构⽅法 3.3 ...
- C++_类和对象_对象特性_成员变量占用对象内存_成员函数_静态成员函数_静态变量_都不占用对象内存_他们是分开存储的---C++语言工作笔记048
然后我们来看c++中的,类的对象的大小,类中的成员变量和函数的存储问题. 首先我写个空类 然后在类外写个test01这个函数,然后 在main方法中调用这个test01这个函数
- C++_类和对象_封装_成员属性私有化---C++语言工作笔记038
1.然后我们再来看类和对象,成员属性设置为私有化 将所有的成员属性设置为私有以后,可以对外提供get,set方法,这样可以实现自己控制属性的 读写权限. 2.对于写权限我们可以检测数据的有效性. 先写 ...
- C++_类和对象_封装_属性和行为做为整体_封装案例---C++语言工作笔记036
然后我们再来看看类和对象.这个面向对象的含义就不多说了,java的时候已经把这个弄的..烂了.. 然后再看封装.看一下就行了,其实就是把属性和函数,写到一起,来描述一个实体. 看上面这个例子.
- java实验 类和对象_java 实验(三) 类和对象
一.实验目的和要求 1. 掌握类的构造函数的重载 2. 深入理解类和对象 3. 学习NetBeans中UML项目的创建类并生成相应代码的方法 二.实验内容和原理 设计一个复数类,能够完成复数之间的基本 ...
- Java基础笔记_6_类和对象_成员变量
一 类和对象 类是抽象的概念,是对象的模板 对象是具体的事物,是类的具体实例 创建类的语法 public class 类名{ // 类内容 } 创建对象的语法 new 关键字就是实例化对象的意思.& ...
最新文章
- Sql Server 2012 分页方法分析(offset and fetch)
- VMware中无法识别usb
- spring boot web jar说明
- 服务器03系统怎么设置网站,Windows 2003系统路由服务的配置方法
- oracle 查询不同编号的时间最小记录_投稿 | ORACLE amp; PostgreSql 利用伪列删除完全重复的两行...
- PHP连接sql seaver数据库
- 机器学习之熵【从定义到代码】
- matlab拉格朗日曲线_数学中高耸的金字塔——拉格朗日
- 静态成员变量.xml
- Eclipse离线安装Svn插件
- autojs刷网课之一、刷视频篇
- java class文件反编译
- Servlet学习笔记
- conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge遇到的报错
- 蓝桥杯练习题 Fibonacci数列
- python-docx库实战修改word文档格式
- 华为隐藏鸿蒙,鸿蒙系统有隐私空间吗_华为鸿蒙系统有隐私空间吗
- 计算机课怎么考试时间,考研专业课考试时间介绍
- git FreshMan指南,五分钟上手(图解)
- ASEMI-MB6S贴片整流桥参数MB6S