这四种权限从最大权限到最小权限分别是:
public > protected > 包访问权限> private
类的成员变量和方法访问权限
所谓访问权限,指的就是本类中的成员变量、成员方法对其他类的可见性
1、包访问权限: 没有任何修饰符的权限就是包访问权限,意味着当前包的所有类都可以访问这个成员,如表中所示,对于本包之外的类,这个成员就变成了private,访问不了
2、public: 被public修饰的成员对任意一个类都是可用的,任何一个类都可以访问到,通过操作该类的对象随意访问public成员
3、protected: 在相同的class内部,同一个包内和其他包的子类中能被访问。要理解protected权限,就需要了解继承,因为这个权限处理的就是继承相关的概念,继承而来的子类可以访问public、protected,
4、private: 除了包含这个成员的类之外,所有类都无法访问这个成员,相当于自我封闭,防止其他类改变或删除这个方法
private、public 修饰符定义的属性、方法进行调用
package com.atguigu.ssm.pojo;
public class Employee {
public int sex=20;
private Integer id;
private String userName;//实体类属性和数据库字段名称不一致
private String passWord;//实体类属性和数据库字段名称不一致
private Integer age;
private String gender;
private String email;
public Employee(Integer id, String userName, String passWord, Integer age, String gender, String email) {
this.id = id;
this.userName = userName;
this.passWord = passWord;
this.age = age;
this.gender = gender;
this.email = email;
}
public Employee() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Employee{" +
"id=" + id +
", userName='" + userName + '\'' +
", passWord='" + passWord + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
", email='" + email + '\'' +
'}';
}
}
测试代码:
public static void main(String[] args) {
Employee emp = new Employee();
emp.test();
System.out.println(emp.sex);//直接调用public修饰的变量
emp.setId(18);//private修饰的变量进行赋值
System.out.println(emp.getId());//调用private修饰的变量
}
总结
1、public修饰符定义的属性和方法通过对象实例化进行调用,
2、private修饰的属性通过set、get方法进行调用