Student stu=new Student(); stu.age=-10;
上面的代码中 age 属性被随意访问,容易产生不合理的赋值java
封装:将类的某些信息隐藏在内部,不容许外部程序直接访问,而是经过该类提供的方法来实现对隐藏信息的操做和访问。安全
封装是面向对象三大特征之一this
封装后隐藏了类的实现细节,方便咱们加入控制语句保证数据安全性,方便修改实现。code
Java 中实现封装能够用如下3步实现:对象
1.修改属性的可见性,设为 private (类外部没法访问)ip
2.建立共有的 getter/setter 方法用于属性读写get
3.在 getter/setter 方法中加入属性控制语句class
public class Student { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { if(age>0&&age<=100) {//年龄大于0小于100 this.age = age; }else { this.age=18;//默认值 } } public static void main(String[] args) { Student stu1=new Student(); //给属性赋值 stu1.setAge(10); stu1.setName("张三"); //使用属性的值 System.out.println(stu1.getName()+" 的年龄为:"+stu1.getAge()); Student stu2=new Student(); stu2.setAge(110); stu2.setName("李四"); System.out.println(stu2.getName()+" 的年龄为:"+stu2.getAge()); } }
在使用 private 关键字修饰属性以后,就不能再直接访问属性了,而是须要经过 getter 和 setter 方法进行取值和赋值。cli
在 Eclipse 中能够使用 Shift+Alt+S+R 自动生成 getter/setter搜索
在 Idea 中使用 Alt+Insert 后选择 Getter and Setter
搜索关注公众号「享智同行」,第一时间获取技术干货