黑马程序员技术交流社区

标题: 定义一个实体类的时候,内部属性该定义成基本类型的还... [打印本页]

作者: bjfanxc    时间: 2014-3-27 14:05
标题: 定义一个实体类的时候,内部属性该定义成基本类型的还...
本帖最后由 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. }
复制代码



作者: miedongdong    时间: 2014-3-27 18:41
定义的类型要根据你的实际需求来取,如你要设置的只是员工的  id ,那么就不必要设置成long类型,那样很耗资源和空间,如果员工没超过3万,都可以考虑用short类型的。
作者: 罗安迪    时间: 2014-3-27 19:59

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

我的意思是Long 还是long,是 引用类型还是基本类型,看到网上说避免频繁的进行拆箱与装箱操作,定义成引用数据类型,不知道是不是正确。
作者: 向阳泪无痕    时间: 2014-3-27 23:30
String   最好了   因为在实际应用中 员工编号可以加入了字符  如: a219  什么的  
作者: miedongdong    时间: 2014-3-27 23:46
本帖最后由 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
作者: bjfanxc    时间: 2014-3-27 23:58
miedongdong 发表于 2014-3-27 23:46
抱歉哈,原来你问的是这方面的。那我说一下我的理解,希望能帮到你
装箱就是将数据封装成一个对象,拆箱 ...

哦哦,好的,谢谢了!




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