JAVA中的封装private

本文详细介绍了Java中的封装概念,强调了私有化成员变量和方法的重要性。封装提高了代码的安全性和重用性。通过使用private修饰符,确保了对象的内部状态只能在类内部访问。调用私有变量通常通过setter和getter方法实现。在main方法中,通过创建类的对象并调用这些方法来操作私有变量。同时,虽然私有方法不能直接通过对象调用,但可以在类内创建公共方法来间接访问。此外,反射技术也可用于访问私有成员,但这超出了基本封装的范畴。

Private是一种修饰符,可以修饰成员变量和成员方法,被私有化的对象只能在本类中访问。

进行封装的作用:提高安全性  提高重用性

一:定义封装的变量 使用prevate 只能写在类里方法外,可以定义封装的方法。

 二:私有的资源变量如何进行调用呢?使用set()更改数值  get()得到数值  进行调用。

三:在main方法中创建类的对象进行调用

四:创建封装的方法。封装的方法也是私有的 但是方法没办法使用set() get()进行得到其中的数据,也不能使用对象调用到封装的私有方法。可以通过在本类中创建普通的方法,在普通的方法中调用私有方法。

也可以通过反射技术得到响应的数据。 

Java 中,封装(Encapsulation)是面向对象编程的四大特性之一,其核心目标是隐藏对象内部的实现细节,仅对外暴露必要的接口。通过封装可以提高代码的安全性、可维护性和可扩展性。根据不同的使用场景和需求,Java 中的封装可分为以下几类: ### 类级别的封装 这是最常见的封装形式,通过定义类来封装数据和行为。类中的属性通常被设置为 `private`,并通过 `public` 的 getter 和 setter 方法提供对属性的访问和修改。 ```java public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { if (age > 0) { this.age = age; } } } ``` 这种封装方式确保了对对象状态的控制,例如可以通过逻辑验证防止非法值的赋入[^1]。 ### 包级别的封装 Java 通过包(Package)组织类和接口,实现更高层次的封装。包可以将功能相关的类组织在一起,并通过访问修饰符(如 `default` 和 `protected`)限制其他包对类员的访问权限。例如: ```java // 文件路径:util/ArrayList.class package util; public class ArrayList { // 实现细节... } ``` 这样的封装方式允许开发者将特定的功能模块限定在一个包中,避免外部直接访问或修改内部结构[^1]。 ### 子包与并发封装 在复杂的项目中,包可以进一步划分为子包以增强封装性。例如,在引用中提到的 `concurrent` 子包用于处理多线程任务,其中包含了 `ConcurrentHashMap` 和 `Executors` 等类。 ```java // 文件路径:util/concurrent/ConcurrentHashMap.class package util.concurrent; public class ConcurrentHashMap { // 并发操作的具体实现... } ``` 通过子包的划分,可以更好地管理类之间的依赖关系并提升代码的可读性和安全性[^1]。 ### 浏览器组件封装 在一些特定的应用场景中,Java 提供了对浏览器组件的封装能力,例如 JDIC(Java Desktop Integration Components)项目。它允许 Java 应用程序与本地桌面环境集,包括嵌入浏览器组件等功能。 ```java // 示例:启动本地浏览器 import org.jdesktop.jdic.desktop.Desktop; import org.jdesktop.jdic.desktop.InvocationException; public class BrowserLauncher { public static void openWebPage(String url) { try { Desktop.getDesktop().browse(new URI(url)); } catch (Exception e) { e.printStackTrace(); } } } ``` 此类封装主要适用于需要深度整合操作系统功能的桌面应用程序开发[^2]。 ### 接口与抽象类的封装 接口和抽象类是另一种高级封装形式,它们通过定义通用的行为规范,隐藏具体实现细节。例如: ```java public interface Animal { void makeSound(); } public class Dog implements Animal { public void makeSound() { System.out.println("Bark"); } } ``` 接口和抽象类的封装使代码更加灵活,便于后期扩展和维护。 ### 模块化封装(JDK 9+) 从 JDK 9 开始,Java 引入了模块化系统(JPMS - Java Platform Module System),通过模块(Module)进一步增强了封装能力。模块允许开发者显式声明哪些包对外可见,从而实现更严格的访问控制。 ```java // module-info.java module com.example.mymodule { exports com.example.mymodule.util; } ``` 这种方式提供了更强的封装性和安全性,特别适合大型项目或平台级应用的开发。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值