携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情
封装
private关键字实现封装
private关键字修饰成员变量
//private修饰的成员访问权限在类中
class People{
private String name; //private修饰成员变量,实现封装
private String sex; //private修饰 sex 和 name成员属性的访问权限只能在类中
}
public class Test{
public static void main(String[] args) {
People people = new People();
people.name; //error 被private不能在类外访问
}
}
可能你会奇怪,
private修饰的成员确实实现了封装,类外都访问不到,那我们要实现类外访问呢?
getter和setter方法
我们是否想过,虽然我们的成员变量被private修饰了,无法在类外访问,我们可以通过其他方法接口,间接实现对private变量的访问。
getter方法
class People{
private String name; //private修饰成员变量,实现封装
private String sex; //private修饰 sex 和 name成员属性的访问权限只能在类中
public String getName() {
return name;
}
public String getSex() {
return sex;
}
}
public class Test{
public static void main(String[] args) {
People people = new People();
//people.name; //error 被private不能在类外访问
//通过getter方法对private属性实现间接访问
System.out.println("name:"+people.getName());
System.out.println("sex:"+people.getSex());
}
}
setter方法
我们可以通过在类中创建setter方法接口将private私有属性修改!达到在类外间接访问私有属性的目的!
class People{
private String name; //private修饰成员变量,实现封装
private String sex; //private修饰 sex 和 name成员属性的访问权限只能在类中
//setter方法,可以在类外传参,在类中将私有属性修改
public void setName(String name) {
this.name = name;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getName() {
return name;
}
public String getSex() {
return sex;
}
}
public class Test{
public static void main(String[] args) {
People people = new People();
//通过setter方法设置私有属性
people.setName("bug郭");
people.setSex("男");
//通过getter方法对private属性实现间接访问
System.out.println("name:"+people.getName());
System.out.println("sex:"+people.getSex());
}
}
getter和setter快捷方式
在IDEA下,编译器提供了setter和getter方法的快捷方式
1.鼠标右键
2.点击
Generate
我们可以选择我们要进行的操作,
setter方法,getter方法或者toString方法 ,都可以一键生成!
我们也可以直接快捷键,Alt + Insert