封装
8.3 封装概述
- 封装可以让我们知道如何正确设计对象的属性和方法。
- 对象代表什么,就得封装对应的数据,并提供数据对应的行为。
- (★)隐藏内部的实现细节,对外提供一个可访问的接口
8.4封装步骤
- 设置属性为private
- 设置get和set方法
- 在get和set方法中添加逻辑
//例如
//封装
//需求:定义一个类描述人
//属性:姓名,年龄
//行为:吃饭,睡觉
public class Preson {
String name;
int age;
public void eat(){
System.out.println("正在吃饭");
}
public void sleep(){
System.out.println("睡觉ing...");
}
}
8.4 private关键字
-
是一个权限修饰符
-
可以修饰成员(成员变量和成员方法)
-
被
private
修饰的成员只能在本类中才能访问
8.5 封装案例
package code1;
public class GrilFriend {
// 属性
private String name;
private int age;
private String gender;
// 针对每一个私有化成员变量,都要提供get和set方法
// set方法:给成员变量赋值
// get方法:对外提供成员变量的值
// 作用:给成员变量name进行赋值,因为只是赋值接受数据所以只传形参 无返回值,没有返回值的数据类型写void即可
public void setName(String n) {
name = n;
}
// 作用:对外提供name的属性,对外提供数据 不接受数据 所以不传参数
public String getName() {
return name;
}
// setAge:给成员变量age进行赋值
public void setAge(int a) {
if (a >= 18 && a <= 26) {
age = a;
} else {
System.out.println("非法参数");
}
}
// getAge:对外提供成员变量age的值
public int getAge(){
return age;
}
// setGender:给成员变量gender进行赋值
public void setGender(String g) {
gender = g;
}
// getGender:对外提供成员变量gender的值
public String getGender() {
return gender;
}
public void eat() {
System.out.println("吃饭ing....");
}
public void sleep() {
System.out.println("睡觉...");
}
}
=======================================================
public class GrilFriendTest {
public static void main(String[] args) {
// 创建对象
GrilFriend gf = new GrilFriend();
// 赋值
gf.setAge(18);
gf.setName("大聪明");
gf.setGender("女");
// String name = gf1.getName();
System.out.println(gf.getAge());
System.out.println(gf.getName());
System.out.println(gf.getGender());
gf.eat();
gf.sleep();
}
}