封装是面向对象编程的一个基本原则,它意味着将对象的状态(数据)和行为(方法)打包在一起,并隐藏对象的内部实现细节。封装可以通过访问修饰符(如 private、public、protected)来控制类成员的可见性。
对象代表什么,就得封装相应的数据,并提供数据对应的行为。人开门,人调用门 开门或者关门的方法。
封装还可以告诉我们,如何正确设计对象的属性和方法
就近原则:
当成员变量与局部变量同名时,如果在方法内部使用该变量名,Java会首先查找当前作用域(即方法内部)的局部变量。
如果当前作用域内没有找到同名变量,Java会继续向外层作用域(如类体内部)查找,直到找到为止。
这就是为什么“就近原则”被称为“就近”——Java会选择离当前使用位置最近的变量。
this关键字:
为了区分成员变量和局部变量,Java提供了this关键字。通过this.变量名的方式,可以明确引用成员变量。
例如,如果有一个成员变量age和一个同名局部变量age,在方法内部使用this.age就可以引用成员变量age。
例子:
package day2;
public class GirlFriend {
//private防止被别的类直接调用,为了成员变量的安全性
private String name;
private int age;
//get获取
public String getName() {
return name;
}
//set赋值
public void setName(String name) {
//this.name表示左侧name是当前GirlFriend的变量,即是上面定义的name
//右侧name根据就近原则,哪个近是哪个,所以是setName的形参
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
//判断年龄
if (age >= 18 && age <= 50) {
this.age = age;
} else {
System.out.println("年龄过大");
}
}
public void sleep() {
System.out.println(name + "在睡觉");
}
public void play() {
System.out.println(name + "在玩游戏");
}
}
package day2;
public class GirlFriendTest {
public static void main(String[] args) {
//创建 GirlFriend 类 的对象
GirlFriend gf = new GirlFriend();
gf.setName("小月");
String gfName = gf.getName();
System.out.println(gfName);
gf.setAge(19);
int gfAge = gf.getAge();
System.out.println(gfAge);
gf.sleep();
gf.play();
}
}
PS:IDEA可以用 ALT+insert直接生成 get()set()
1944

被折叠的 条评论
为什么被折叠?



