黑马程序员技术交流社区

标题: 构造函数求解 [打印本页]

作者: Senmonfy    时间: 2016-3-13 21:51
标题: 构造函数求解
class Student
{
private String name;
private int age;
public Student(){
}
public Student(String name,int age){
  this.name = name;
  this.age = age;
}
public void setName(String name){
  this.name = name;
}
public String getName(){
  return this.name;
}
public void setAge(int age){
  this.age = age;
}
public int getAge(){
  return this.age;
}
public void show(){
  System.out.println(this.name + "----" + this.age);
}
}
class Demo
{
public static void main(String[] args)
{
  Student stu1 = new Student();
  stu1.set....
  Student stu2 = new Student("sss",18);
  stu2.show();
}
}
程序中无参构造函数有什么用,能删掉不写吗?
求大神说一下构造函数的作用

作者: 守徒徒    时间: 2016-3-13 22:19
构造函数是用来创建和初始化对象(属性)的。要不要无参构造函数那就要看你需要啦,如果你没有无参构造函数的话,就不能用“Student stu1 = new Student();”来创建对象,new Student(这里必须带相应的参数);
作者: 陈文广    时间: 2016-3-13 22:32
构造函数是用来创建和初始化对象(属性)的。要不要无参构造函数那就要看你需要啦,如果你没有无参构造函数的话,就不能用“Student stu1 = new Student();”来创建对象,new Student(这里必须带相应的参数);
++1; 确实.
作者: l545380014    时间: 2016-3-13 22:33
个人理解构造器是用来创建对象的一个临时容器,只要创建对象就必须通过构造器创建并初始化成员变量,无参构造因为没有参数就可以只创建对象而不需要给定初始化值
比如Student s = new Student();
如果手动给出且只写有参构造,那就只能通过有参构造来创建对象
比如Student s = new Student(name , age);
此时再使用Student s = new Student();创建对象的话系统会因为找不到匹配的构造方法而编译报错
个人拙见,希望能帮到楼主




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2