黑马程序员技术交流社区
标题:
构造函数可以递归调用么
[打印本页]
作者:
ifuzhen
时间:
2014-4-24 16:32
标题:
构造函数可以递归调用么
本帖最后由 ifuzhen 于 2014-4-24 23:04 编辑
构造函数可以递归调用么?能不能举例说明下?
作者:
skill20
时间:
2014-4-24 18:20
1 class JavanTiger {
2 int age; // 年龄
3 int hight; // 身体高度
4
5 public JavanTiger() {
6 print();
7 this.age=2; //这里初始化 age 的值 ,但递归返回的时候,这个值会被覆写
8 }
9
10 public JavanTiger(int age) {
11 this(); // 调用自己的第一个构造函数,下面的两个语句数不执行的
12 this.age = age;
13 print();
14 }
15
16 public JavanTiger(int age, int hight) {
17 this(age); // 调用自己第二个构造函数 ,下面的两个语句数不执行的
18 this.hight = hight;
19 print();
20 }
21
22 public void print() { //打印函数
23 System.out.println("I'am a " + age + "岁 " + hight + "尺高 tiger!");
24 }
25 public static void main(String[] args) {
26 new JavanTiger(3,3);
27 }
28 }
29 //output
30 //I'am a 0岁 0尺高 tiger!
31 //I'am a 3岁 0尺高 tiger!
32 //I'am a 3岁 3尺高 tiger!
复制代码
作者:
随风而去
时间:
2014-4-24 19:51
可以使用递归调用,但是不推荐用递归对象自己 太容易照成内存爆掉
一个简单例子 递归构造方法和递归方法没什么本质上的区别
class Child {
public Child(int i){
System.out.println("Child 构造方法");
if(i>3) return;
new Child(++i);
}}
作者:
ifuzhen
时间:
2014-4-24 23:04
thank you ...
作者:
四川男人
时间:
2014-4-24 23:09
class Person {
private String name;
private int age;
Person(){ } //无参构造
Person(String name){
this(); //调用无参构造
this.name = name;
}
Person(int age){
this(name); //调用一个参数的构造
this.age = age;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2