class中对实例字段进行初始化调用构造方法的问题
2005-09-11 00:21
801 查看
1class SomeType {
2class SomeType {
2Int32 x;
3String s;
4Double d;
5Byte b;
6// This constructor must be called by all the other constructors.
7// This constructor contains the code to initialize the fields.
8public SomeType() {
9x = 5;
10s = "Hi There!";
11d = 3.14159;
12}
13// This constructor calls the default constructor first.
14public SomeType(Int32 x) : this() {
15this.x = x;
16}
17// This constructor calls the default constructor first.
18public SomeType(String s) : this() {
19this.s = s;
20}
21}
我的想法是:
这个class的定义中依然有三个sometype构造方法,只是一开始的时候,没有对x,s,d进行赋值初始化.而且后面两个sometype构造方法有对无参sometype构造方法的继承.
但是这样,在三个重载的构造方法中,在每个方法的开始处,编译器不是也要包括初始化x,s,d的一份代码吗?不是照样形成代码的臃肿了吗??
请问,按照后面一种class的定义,是不是也会同时包括一份对x,s,d的初始化代码呢??
2class SomeType {
2Int32 x;
3String s;
4Double d;
5Byte b;
6// This constructor must be called by all the other constructors.
7// This constructor contains the code to initialize the fields.
8public SomeType() {
9x = 5;
10s = "Hi There!";
11d = 3.14159;
12}
13// This constructor calls the default constructor first.
14public SomeType(Int32 x) : this() {
15this.x = x;
16}
17// This constructor calls the default constructor first.
18public SomeType(String s) : this() {
19this.s = s;
20}
21}
我的想法是:
这个class的定义中依然有三个sometype构造方法,只是一开始的时候,没有对x,s,d进行赋值初始化.而且后面两个sometype构造方法有对无参sometype构造方法的继承.
但是这样,在三个重载的构造方法中,在每个方法的开始处,编译器不是也要包括初始化x,s,d的一份代码吗?不是照样形成代码的臃肿了吗??
请问,按照后面一种class的定义,是不是也会同时包括一份对x,s,d的初始化代码呢??
相关文章推荐
- 基于java.util.logging实现轻量级日志记录库(增加根据当前类class初始化,修复线程池模型(javaEE)下的堆栈轨迹顺序与当前调用方法不一致问题)
- 基于java.util.logging实现轻量级日志记录库(增加根据当前类class初始化,修复线程池模型(javaEE)下的堆栈轨迹顺序与当前调用方法不一致问题)
- Java反射机制(获取Class对象的三种方式+获取Class中的构造函数进行对象的初始化+获取反射类的字段+获取反射类的一般方法)
- C++关于子类调用父类的构造方法的问题
- 构造方法的调用顺序和成员变量的初始化时机以及动态绑定
- Java里子类调用父类构造方法问题
- 构造函数调用构造函数进行数据成员初始化问题(极易出错)
- java通过反射Class实例调用对象方法
- 定义一个交通工具(Vehicle)的类,在测试类Vehicle中的main()中实例化一个交通工具对象,通过方法给它初始化speed,size的值,并打印出来。另外,调用加速,减速的方法对速度进行改变
- 定义一个交通工具(Vehicle)的类,在测试类Vehicle中的main()中实例化一个交通工具对象,通过方法给它初始化speed,size的值,并打印出来。另外,调用加速,减速的方法对速度进行改变
- 构造方法、类的初始化块以及类字段的初始化顺序
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- 在初始化过程中调用的多态方法产生的问题
- Python中实例对象如何进行属性和方法调用原因分析
- C#反射新建类实例和调用类方法及属性帮助类 以及获取或设置对象属性中字段值帮助类
- 实例详解Java中如何对方法进行调用
- 继承中关于调用构造方法的问题
- Java静态初始化,实例初始化以及构造方法
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法