1、封装的概念:
将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来对隐藏的信息进行操作和访问。
2、好处:
(1)只能通过规定的方法访问数据
(2)隐藏类的实例细节,方便修改和实现。
3、封装的实现步骤
(1)修改属性的可见性设为(private)
(2)创建getter/setter方法(用于属性的读写)(通过这两种方法对数据进行获取和设定,对象通过调用这两种发方法实现对数据的读写)
  

在使用eclipse写java程序中 同时按shift+Alt+s 选择Generate Getters and setters
可以自动的写出set\get的方法

 

经过封装的属性,不能直接访问,要通过公共属性get/set方法访问,代码如下:

/**
 * 某公司要开发内部的 “办公管理信息系统”,请使用面向对象的思想设计部门和员工信息
 * @author Administrator
 *
 */
public class Department {
 
    public int depsno;//部门编号
    public String depname;//部门名称
    
    //封装
    public int getDepsno() {
        return depsno;
    }
    public void setDepsno(int depsno) {
        this.depsno = depsno;
    }
    public String getDepname() {
        return depname;
    }
    public void setDepname(String depname) {
        this.depname = depname;
    }
}
public class Employees {
    public String empname;
    public char empsex;
    public int empage;
    public String empdepname;//所在部门
    public String empduty;//职务
 
    public String getEmpname() {
        return empname;
    }
 
    public void setEmpname(String empname) {
        this.empname = empname;
    }
 
    public char getEmpsex() {
        return empsex;
    }
 
    public void setEmpsex(char empsex) {
        this.empsex = empsex;
    }
 
    public int getEmpage() {
        return empage;
    }
 
    public void setEmpage(int empage) {
        this.empage = empage;
    }
 
    public String getEmpdepname() {
        return empdepname;
    }
 
    public void setEmpdepname(String empdepname) {
        this.empdepname = empdepname;
    }
 
    public String getEmpduty() {
        return empduty;
    }
 
    public void setEmpduty(String empduty) {
        this.empduty = empduty;
    }
 
    public static void main(String[] args) {
        Department dep = new Department();
        Employees emp = new Employees();
        
        //通过set属性传递数据
        dep.setDepname("销售部");
        emp.setEmpname("张敏");
        emp.setEmpage(26);
        emp.setEmpduty("销售经理");
        
        //通过get属性得到数据
        System.out.println("我是"+emp.getEmpname()+",今年"+emp.getEmpage()+"岁");
        System.out.println("我的职位是"+dep.getDepname()+"的"+emp.getEmpduty());
    }
    
}