封装

在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。

封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

要访问该类的代码和数据,必须通过严格的接口控制。

封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

封装的优点

  • 1. 良好的封装能够减少耦合。

  • 2. 类内部的结构可以自由修改。

  • 3. 可以对成员变量进行更精确的控制。

  • 4. 隐藏信息,实现细节。

private关键字:是一个权限修饰符

可以修饰成员(成员变量和成员方法)

被private修饰的成员只能在本类中才能访问

针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作

提供“setXxx(参数)” 方法,用于给成员变量赋值,方法用public修饰

提供"getXxx()"方法,用于获取成员变量的值,方法用public修饰

复制代码
 1 package test3;
 2 
 3 /**
 4  * ClassName: GirlFriend
 5  * Package: test3
 6  * Description:
 7  *
 8  * @Author: 20213923ysf
 9  * @Create: 2023/7/11 - 12:57
10  */
11 public class GirlFriend1 {
12     private String name;
13     private int age;
14     private String gender;
15 
16     public void setName(String n) {
17         name = n;
18     }
19 
20     public String getName() {
21         return name;
22     }
23 
24     public void setAge(int a) {
25         if (a >= 12 && a <= 28) {
26             age = a;
27         } else {
28             System.out.println("年龄输入有误");
29         }
30     }
31 
32     public int getAge() {
33         return age;
34     }
35 
36     public void setGender(String g) {
37         gender = g;
38     }
39 
40     public String getGender() {
41         return gender;
42     }
43 
44     public void eat() {
45         System.out.println("女朋友在吃饭");
46     }
47 
48     public void sleep() {
49         System.out.println("女朋友在睡觉");
50     }
51 }
复制代码
复制代码
 1 package test3;
 2 
 3 import test2.GirlFriend;
 4 
 5 /**
 6  * ClassName: GirlFriendTest
 7  * Package: test3
 8  * Description:
 9  *
10  * @Author: 20213923ysf
11  * @Create: 2023/7/11 - 13:04
12  */
13 public class GirlFriend1Test {
14     public static void main(String[] args) {
15         GirlFriend1 gf1 = new GirlFriend1();
16         gf1.setName("青雀");
17         gf1.setAge(16);
18         gf1.setGender("女");
19         System.out.println(gf1.getName());
20         System.out.println(gf1.getAge());
21         System.out.println(gf1.getGender());
22     }
23 }
复制代码

 

posted @   漏网鲨鱼  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 5. Nginx 负载均衡配置案例(附有详细截图说明++)
点击右上角即可分享
微信分享提示