一、面向对象编程
面向对象编程有三大特征:封装、继承和多态。
二、封装
封装(encapsulation) 就是把抽象出的数据[属性]和对数据的操作[方法]封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作[方法],才能对数据进行操作。
三、封装的好处
- 隐藏实现细节:方法(连接数据库) <–调用(传入参数…)
- 可以对数据进行验证,保证安全合理
四、封装的实现
- 将属性进行私有化private【不能直接修改属性】
private只有同类可以访问,同包、子类、不同包都不可以访问。 - 提供一个公共(public)的 set 方法,用于对属性判断并赋值
public void setXxx(类型参数名){
//加入数据验证的业务逻辑
属性=参数名;
}
- 提供一个公共(public)的 get方法,用于获取属性的值
public 数据类型 getXxx(){
//权限判断 Xxx某个属性
return xx;
}
五、封装的案例
实现一个小程序(Encapsulation01.java),不能随便查看人的年龄,工资等隐私,并对设置的年龄进行合理的验证。年龄合理就设置,否则给默认年龄,必须在1-120,年龄,工资不能直接查看,name的长度在2-6字符之间。
注意事项
(1)如果要使用快捷键CTRL+R(自己设置)运行,需要先配置主类。
第一次使用鼠标点击的形式运行程序,后面就可以用
(2)手写set get太慢,用快捷键【alt + insert】
(3)数组的 length 调用不用括号,String的需要
//如果要使用快捷键CTRL+R(自己设置)运行,需要先配置主类。
//第一次使用鼠标点击的形式运行程序,后面就可以用
public class Encapsulation01 {
public static void main(String[] args) {
Person person = new Person();
person.setName("jack");
person.setAge(18);
person.setSalary(5000.5);
System.out.println(person.info());
}
}
//不能随便查看人的年龄,工资等隐私,
// 并对设置的年龄进行合理的验证,年龄合理就设置
// 否则给默认年龄,必须在1-120,
// 年龄,工资不能直接查看,name的长度在2-6字符之间
class Person {
public String name;
private int age;
private double salary;
//手写set get太慢,用快捷键
// alt+insert
public String getName() {
return name;
}
public void setName(String name) {
if(name.length() >= 2 && name.length() <= 6) {
//数组的length调用不用括号,String的需要
this.name = name;
} else {
System.out.println("名字的长度不对,需要(2-6),默认:noname。");
this.name = "noname";
}
}
public int getAge() {
return age;
}
public void setAge(int age) {
if(age >= 1 && age <= 120) {
this.age = age;
} else {
System.out.println("年龄需要在合理范围内,给了默认年龄18。");
this.age = 18;//给一个默认值
}
}
public double getSalary() {
//可以这里增加对当前对象的权限判断(密码)
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public String info() {
return "信息为 name="+this.name+" age="+this.age+" salary="+this.salary;
}
}
六、封装&构造器
注意事项
(1)快捷键【alt + insert】选择有参/无参构造器
(2)余额-balance
public Person(String name, int age, double salary) {
setName(name);
setAge(age);
setSalary(salary);
}

本笔记是对韩顺平老师的Java课程做出的梳理。方便本人和观看者进行复习。
课程请见: https://www.bilibili.com/video/BV1fh411y7R8/?spm_id_from=333.999.0.0&vd_source=ceab44fb5c1365a19cb488ab650bab03
本文概述了面向对象编程中的封装概念,包括封装的定义、好处、实现方式(如私有属性和公共set/get方法)以及在Java中的应用实例,还涉及了构造器的使用。

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



