文章目录
- 1.为什么使用封装
- 1.1.生活案例
- 1.2.程序中的封装
- 2.如何使用封装
- 3.IDEA快速生成Get和Set
- 4.封装的案例
- 5.4.访问修饰符(面试题)
1.为什么使用封装
1.1.生活案例
生活中的封装比如ATM收款机,会使用一个机器来保证钱的正常流动,给你一个特定的方法来存钱取钱,不会说让你随意的取钱存钱。
**
1.2.程序中的封装
- 封装是一种设计思想,为了在给对象赋值的时候,保证数据的安全性和准确性!把共有的属性给隐藏起来,暴露访问的部分!
- 封装的好处:隐藏类的实现细节;让使用者只能通过程序员规定的方法来访问数据,可以方便的加入存取控制语句,
限制不合理操作
2.如何使用封装
-
步骤1
: 把类中的属性设置为private
(私有的,只有当前类可以使用)
private表示私有的,private修饰的属性只能在当前类中访问
- 步骤2:针对每个属性,生成一个共有的
setXXX( )
方法, 给每个属性赋值!和 一个公共的getXXX()
方法,供外界获取值! - 如果形参和属性重名,那么为了不造成歧义,可以使用this关键字来指定
- 调用方式
- 后期属性的标准写法
-私有的属性 private
-给私有的属性生成一对 getXXX( )方法和setXXX( )方法
3.IDEA快速生成Get和Set
4.封装的案例
- 学生类
/*
* 学生类
*/
public class Student {
// 属性
private String name;
private char sex;
private int age;
// 给name赋值
public void setName(String name) {
this.name = name;
}
// 获取name属性
public String getName() {
return this.name;
}
// 给性别赋值
public void setSex(char sex) {
if (sex == '男' || sex == '女') {
this.sex = sex;
} else {
System.out.println("性别输入有误!");
this.sex = '男';
}
}
// 给sex获取
public char getSex() {
return this.sex;
}
// 给年龄赋值
public void setAge(int age) {
if (age <= 0 || age >= 130) {
this.age = 18;// 默认值
System.out.println("年龄输入不合法!");
} else {
this.age = age;
}
}
public int getAge() {
return this.age;
}
// 方法
public void sayHi() {
System.out.println("我是:" + name);
System.out.println("年龄:" + age);
System.out.println("性别:" + sex);
}
}
- 测试学生类
/*
* 测试类
*/
public class TestStudent {
public static void main(String[] args) {
Student s1=new Student(); //对象
//通过set方法设置值
s1.setName("德华");
s1.setSex('呵');
s1.setAge(-50);
System.out.println("姓名是:"+s1.getName());
System.out.println("性别是:"+s1.getSex());
System.out.println("年龄是:"+s1.getAge());
}
}
5.4.访问修饰符(面试题)
- 访问修饰符的作用是说明被声明的内容(类,方法,属性)的访问权限。
- 在Java中,访问控制权限有4种,
public
,private
,protected
及无修饰符
。