封装
什么是封装?
将类的某些信息隐藏在内的内部,不允许外部的程序直接访问,而是通过该类提供的方法来实现对信息的操作和访问。
如何实现封装?
- 修改属性的可见性,将属性的修饰符设为private,因此能够访问这些数据和方法的唯一途径就是通过类本身,只有类本身才有资格调用它所拥有的方法和属性,这样便提高了数据的安全性。
- 创建getter和setter方法,用于控制属性的读和写。
- 在getter和setter方法中加入属性的控制语句,对属性的合理性进行控制。
封装前
package text1;
public class User {
int id;
String name;
int age;
//定义一个有参的构造方法
public User(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
System.out.println("有参的构造方法执行了!!!");
}
//定义一个无参的构造方法
public User() {
System.out.println("无参的构造方法执行了!!!");
}
}
package text1;
public class Initail {
public static void main(String[] args) {
User user1 = new User();
User user = new User(1,"lili",15);
user.age =18;
}
}
封装后
package text1;
public class User {
//将属性设为private
private int id;
private String name;
private int age;
//创建getter和setter方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//定义一个有参的构造方法
public User(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
System.out.println("有参的构造方法执行了!!!");
}
//定义一个无参的构造方法
public User() {
System.out.println("无参的构造方法执行了!!!");
}
}
package text1;
public class Initail {
public static void main(String[] args) {
User user1 = new User();
User user = new User(1,"lili",15);
//user.age =18;
//调用set方法
user.setAge(18);
System.out.println("年龄:"+user.getAge());
}
}