A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 只想要一盏灯 于 2013-10-15 18:17 编辑

在资料上看到一个习题,分析的时候有这么一段话:以后拿到一个编写类的程序,按照以下的步骤编写代码:
        1、根据要求写出类的名称;
        2、根据要求定义出类中所应该包含的属性;
        3、所有的属性必须封装;
        4、封装之后的属性必须通过setter 和getter设置和取得;
        5、根据其他的要求编写出相应的方法;
        6、所有的输出不能在类中直接完成,而是交给被调用处输出;
        7、根据实际的情况添加构造方法,但是不管类中有多少个构造,一定要保留一个无参构造方法。

1-6点可以理解,第7条为什么啊?求高手指教,谢谢!


评分

参与人数 1技术分 +1 收起 理由
李江 + 1

查看全部评分

7 个回复

倒序浏览
这是java bean的规范.一般都要有一个无参构造器,好处就是你以后只需要new Employee(),然后通过setXXX()方法给这个对象赋属性值,而无需要通过new Employee(......一大坨属性),因为有时候new对象的时候你还不知道具体属性是什么!
回复 使用道具 举报
因为在一个类中如果想新建对象 都会有一个默认隐藏的无参数的构造方法。如果一旦添加其他有参数的构造方法了 那么那个无参的构造方法就会消失,就不能新建无参的对象了;
public class  Person{
     private String name;
     priavte int age;
     person(){}
     person(String name,int age ){
    this.name=name;
    this.age=age;
}
public static void main(String[] args){
  Person aa=new person();
  Person bb=new person("张三",20);
}
}
如果在这个类中 不添有参数的构造方法 那么只能新建无参数的对象 但是一旦添加有参构造方法了 默认无参数的构造方法就会消失 如果想建无参数对象 所以要保留一个无参数的构造方法。

评分

参与人数 1技术分 +1 收起 理由
李江 + 1

查看全部评分

回复 使用道具 举报
方便直接new对象,举例来说,比如你要冲服务器获取Perosn()类一些对象的信息(比如表格),通过解析服务端返回的信息,然后设置对象的具体信息,比如设置Person的年龄和姓名,你得先new Person()对象,才可以调用对象的set方法设置属性,还有解析xml文档时也是类似的状况。总之,有些时候你需要能通过无参的构造方法new对象。还有你这7步是一般做法,也要根据实际需求调整的。

评分

参与人数 1技术分 +1 收起 理由
To + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
枫儿 发表于 2013-10-15 15:50
这是java bean的规范.一般都要有一个无参构造器,好处就是你以后只需要new Employee(),然后通过setXXX()方法 ...

哎哟,不错哦
回复 使用道具 举报 1 0

呵呵~杨姐多指教~~
回复 使用道具 举报
类在你建立时会自动添加一个隐藏的无参的构造方法,这样可以是你以后new这个类的对象时即使不知道他的参数也可以先得到它的对象进行应用;但是如果你建立了这个类的构造方法,那么这个无参的构造方法就不再有了,要想以后new这个类对象时不加入这个类的参数,就只能自己再给这个类加入一个无参的构造方法的啊。还有隐晦的一点儿,就是反射时会涉及到一点儿的啊
回复 使用道具 举报
雷丹 中级黑马 2013-10-15 19:32:48
8#
重载构造函数要不要无参构造都可以,要用那个构造函数就new对象的时候,根据构造函数参数输入参数
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马