面向对象进阶
一、封装private
在开发中,为了避免出现逻辑错误,我们建议对所有属性进行封装,并为其提供setter及getter方法进行设置和取得操作。
意义:
保护或者防止代码(数据)被我们无意中破坏。 保护成员属性,不让类以外的程序直接访问和修改。
原则:
隐藏对象的属性和实现细节,仅对外公开访问方法,并且控制访问级别。
例如:
不封装:
Person1 p = new Person1();
p.name = "张三";
//逻辑错误 年龄外界不能随便定义为负数
p.age = -10000;
p.say();
封装后:
public class Demo2 {
public static void main(String[] args) {
Person2 p = new Person2();
p.name = "张三";
p.setAge(-10000);
p.say();
System.out.println(p.getAge());
}
}
class Person2 {
String name;
private int age;
//set方法设置合理输入区间
void setAge(int age2) {
if(age2 < 0 || age2 > 150) {
System.out.println("年龄不合理,自动设置为1");
age = 1;
} else {
age = age2;
}
}
//如果需要将属性中的值取出来进行运算,就可以调用getAge()方法
int getAge() {
return age;
}
void say() {
System.out.println("自我介绍:" + name + ",年龄" + age);
}
}
二、this关键字
在Java基础中,this关键字是一个最重要的概念。使用this关键字可以完成以下的操作:
- 表示当前对象(当前正在调用这个方法的对象)
- 调用类中的属性
- 调用类中的方法或构造方法
例如:
public class Demo3 {
public static void main(String[] args) {
Person3 p1 =