提示:本文为学习java基础篇的笔记 详解视频见于
B站
【零基础 快速学Java】韩顺平 零基础30天学会Java
前言
封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员
提示:以下是本篇文章正文内容,下面案例可供参考((案例来自B站
【零基础 快速学Java】韩顺平 零基础30天学会Java))
一、封装是什么?
封装就是把抽象出的数据【属性】和对数据的操作【方法】封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作【方法】,才能对数据进行操作。
二、封装的实现步骤
1.将属性私有化(不能直接修改属性)
代码如下(示例):
class Person {
public String name; //名字公开
private int age;//age私有化
private double salary; //salary私有化
}
2.提供一个set方法(用于对属性判断并赋值)
代码如下(示例):
可以用快捷键快速生成set方法(快捷键用法见于IDEA的使用—常用快捷键)
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setSalary(double salary) {
this.salary = salary;
}
3.提供一个get方法(用于获取属性的值)
可以用快捷键快速生成get方法(快捷键用法见于IDEA的使用—常用快捷键)
public String getName() {
return name;
}
public int getAge() {
return age;
}
public double getSalary() {
return salary;
}
三、快速入门案例
实现一种类似的控制。不能随便查看人的年龄、工资等隐私,并对设置的年龄进行合理的验证。年龄合理设置,否则给默认年龄,必须在1-120,年龄。工资不能直接查看。name的长度在2-6字符之间。
代码如下(示例):
public class Encapsulation01 {
public static void main(String[] args) {
Person person = new Person();
person.setName("jack");
person.setAge(300);
person.setSalary(30000);
System.out.println(person.info());
System.out.println(person.getSalary());
//如果我们自己使用构造器指定属性 在构造器中进行相关属性的验证
Person smith = new Person("smith", 20, 30000);
System.out.println("=====simth的信息=====");
System.out.println(smith.info());
}
}
class Person {
public String name; //名字公开
private int age;//age私有化
private double salary; //salary私有化
//根据要求完善代码
//构造无参构造器
public Person() {
}
//有三个属性的构造器
public Person(String name, int age, double salary) {
// this.name = name;
// this.age=age;
// this.salary=salary;
//我们可以将set方法写在构造器中,这样仍然可以验证
setName(name);
setSalary(salary);
setAge(age);
}
public String getName() {
return name;
}
public void setName(String name) {
//加入对数据的校验
if (name.length() >= 2 && name.length() <= 6) {
this.name = name;
} else {
System.out.println("名字长度不对,需要(2-6)个字符,默认名字。");
}
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age >= 1 && age <= 120) {
this.age = age;
} else {
System.out.println("年龄需要在1-120之间");
this.age = 18;
}
}
public double getSalary() {
//可以这里增加对当前对象的权限判断
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public String info() {
return "信息为 name=" + name + " age=" + age + " 薪水=" + salary;
}
}
运行结果:
当参数数据符合验证标准时
当参数数据不符合验证标准时 (给出相应的提示信息)
具体详解视频见于:韩顺平Java_封装快速入门
总结
以上就是今天要讲的内容,本文介绍了封装的内容以及实现步骤,分为三部曲,分别是将属性私有化,提供set方法,提供get方法。以及对数据的验证,保证安全合理性。