import Employee ;
import java.util.Hashtable;
public class Test{
    public static void main(String []args){
          Hashtable<Integer,Employee> ht = new Hashtable<Integer,Employee>();
          ht.put(100,new Employee(111,"杨幂",111111));
          ht.put(101,new Employee(222,"家驹",111));
          Employee e = ht.get(100);
          e.showInfo();
    }
}
class Employee{
     private final int id;
     private String name;
     private double salary;
     
     public Employee(int id,String name,double salary){
           this.id=id;
           this.name=name;
           this.salary=salary;
     }
     public int getId(){
        return id;
      }
     public String getName(){
         return name;
     }
     public void setName(String name){
         this.name=name;
     }
     public double getSalary(){
        return salary;
     }
     public void setSalary(double salary){
        this.salary=salary;
     }
     public void showIofo(){
        System.out.println(id+"\t"+name+"\t"+salary);
     }
}刚才在书上看了这段代码,突然对几个地方不是很明白,自己的基础部分学的不扎实啊1:在这个程序中把一些成员变量设置成private类型,有什么好处啊,在这个程序中能体现出这些好处吗?在这里能把它换成其他的类型吗?这样做有影响吗?
2:为什么有一些set.. 和get...这样的方法,在这里好像用不到吧?她在程序中起什么作用?

解决方案 »

  1.   

    private 的好处是?封装性好。不让外界直接看见属性,你可以不设置get set方法,别人就不能查看和设置你的属性。get set方法 现在的作用就是 查看修改属性值。用不到写着呗,不想写就删了这个作用大了,等你后面用到了注入,这个是必须注意的。
      

  2.   

    private好处就是,你没必要公开的东西,对外公开了,会产生不安全因素。
    get set方法
    直接设定的时候感觉不出大优势,如果你在设定或者读取的时候,牵扯到验证或者别的操作的时候,就非常有用了。
      

  3.   

    private的作用是私有的,除了class自己外,任何人都不能直接使用
      

  4.   

    private 除了本类中,可以调用它外,其他的都不能调用的。在你这个程序中,作用不明显,毕竟类不多。set get方法,不知道你这个是不是自动生成的,平时我们写的话,都是自动生成的。用不到的话,就没必要了。
    主要就是用来 修改 得到属性的值的函数。
      

  5.   


    不是新建一个类的时候就自动完成,
    是在类里面点击右键,选Source后面的Generate Getters and Setters..
    再选择你要生成的get和set方法。
      

  6.   

    有快捷键  shift + alt + r 就能生成set get 方法
      

  7.   

    private 的好处是?封装性好。不让外界直接看见属性,你可以不设置get set方法,别人就不能查看和设置你的属性。
      

  8.   

    反正老师教的时候也是告诉我全局变量要private然后再写setter和getter
    保护数据被合法合理的使用吧...