您的位置:首页 > 编程语言 > Java开发

java面向对象-使用this语句解决构造器重载相互调用问题

2018-03-09 16:34 531 查看
20180307 java面向对象-使用this语句解决构造器重载相互调用问题

class User
{
 private String name = NULL;
 private int age;
 
 
 User()//默认构造器,什么都不做
  {
   
  }
 
 User(String name)//创建对象,初始化name
  {
   this.name = name;
  }
 
 User(String name,int age)//创建对象,初始化name和age
  {
   this.name = name;//this表示当前创建的对象
   this.age = age;
  }
 
 public void show()
  {
   System.out.println(name + " "+ age);
  }
}
 
class ThisDemo{
public static void main(String[] args)
{
 User u1 = new User("张三",16);//调用有参数的构造器
 u1.show();//此处输出:   张三  16 
}
};
 
 
 
 
 
 
 
 
上面的三个构造函数有代码重复的问题。
可修改成如下形式:
 
 
 
 
 
class User
{
 private String name = NULL;
 private int age;
 
 
 User()//默认构造器,什么都不做
  {
   
  }
This(name)调用的是User(String name){…}构造器
 
 

 User(String name)//创建对象,初始化name
  {
   this.name = name;
  }
 

 User(String name,int age)//创建对象,初始化name和age
  {
    this(name);     
   //this.name = name;//this表示当前创建的对象
   this.age = age;
  }
 



 public void show()
  {
   System.out.println(name + " "+ age);
  }
}
 
 
另外这种在构造器中调用另外一个构造器时,this(name)必须作为构造器中的第一句话。
且构造器中只能调用一个重载的构造器。
一般在构造器互相调用时,都是少参数构造器调用多参数的构造器。
 
 
 
 
 
 
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java课程
相关文章推荐