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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 bjfanxc 于 2014-3-27 14:08 编辑
  1. ackage com.itheima;

  2. public class Test2 {

  3.       
  4.         public static void main(String[] args) {
  5.                 // TODO Auto-generated method stub

  6.         }

  7. }
  8. //员工类
  9. class Worker{
  10.         private String name;
  11.         private Long id;//这里的属性应该定义成什么类型好?
  12.         private Double pay;
  13.         Worker(String name,Long id,Double pay){
  14.                 this.name = name;
  15.                 this.id = id;
  16.                 this.pay = pay;
  17.         }
  18.         
  19.         public String getName() {
  20.                 return name;
  21.         }
  22.         public void setName(String name) {
  23.                 this.name = name;
  24.         }
  25.         public Long getId() {
  26.                 return id;
  27.         }
  28.         public void setId(Long id) {
  29.                 this.id = id;
  30.         }
  31.         public Double getPay() {
  32.                 return pay;
  33.         }
  34.         public void setPay(Double pay) {
  35.                 this.pay = pay;
  36.         }
  37. }

  38. //经理类
  39. class Manager extends Worker{
  40.         
  41.         private Double bonus;
  42.         Manager(String name, Long id, Double pay) {
  43.                 super(name, id, pay);
  44.         }
  45.         
  46.         public Double getBonus() {
  47.                 return bonus;
  48.         }
  49.         public void setBonus(Double bonus) {
  50.                 this.bonus = bonus;
  51.         }
  52. }
复制代码


评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

6 个回复

倒序浏览
定义的类型要根据你的实际需求来取,如你要设置的只是员工的  id ,那么就不必要设置成long类型,那样很耗资源和空间,如果员工没超过3万,都可以考虑用short类型的。

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报

同上,按需求具体问题具体分析设置,总体原则以满足需求,节省资源,提高效率和保证安全为主(其实这也是老师说得Java版本升级的原则)。
回复 使用道具 举报
miedongdong 发表于 2014-3-27 18:41
定义的类型要根据你的实际需求来取,如你要设置的只是员工的  id ,那么就不必要设置成long类型,那样很耗 ...

我的意思是Long 还是long,是 引用类型还是基本类型,看到网上说避免频繁的进行拆箱与装箱操作,定义成引用数据类型,不知道是不是正确。
回复 使用道具 举报
String   最好了   因为在实际应用中 员工编号可以加入了字符  如: a219  什么的  
回复 使用道具 举报
本帖最后由 miedongdong 于 2014-3-28 00:01 编辑
bjfanxc 发表于 2014-3-27 23:24
我的意思是Long 还是long,是 引用类型还是基本类型,看到网上说避免频繁的进行拆箱与装箱操作,定义成引 ...

抱歉哈,原来你问的是这方面的。那我说一下我的理解,希望能帮到你
装箱就是将数据封装成一个对象,拆箱就刚好相反,将数据从对象中取出
装箱:Integer i = 100;//这就是装箱动作
拆箱:int a = i;//拆箱动作

两个的区别就是:装箱得到的是一个对象,可以用作操作数据,也就是调用方法,而拆箱得到的只是数据,只能作为数字使用。(这里只是讨论Integer和int,其他类型也类似)


说了那么多,回答你的主要问题吧,我认为定义的属性类型还是需要根据实际需求定,按照你所想要定义的person类,其中的id就只是对应于一个人,只是作为一个员工的标志,没必要封装成对象,所以还是根据你本来的方向,建议用long类型,而不是Long
回复 使用道具 举报
miedongdong 发表于 2014-3-27 23:46
抱歉哈,原来你问的是这方面的。那我说一下我的理解,希望能帮到你
装箱就是将数据封装成一个对象,拆箱 ...

哦哦,好的,谢谢了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马