封装:
-
Java的封装是一种面向对象编程的特性,它指的是将数据和方法(行为)捆绑在一起,以实现对数据的访问控制和保护。在Java中,封装通过访问修饰符(public、private、protected)来实现。
-
封装的主要作用包括:
-
- 数据隐藏:封装可以隐藏对象的内部状态,使得对象的实现细节对外部不可见,从而提高了安全性和可靠性。
-
- 访问控制:封装可以通过访问修饰符来限制对对象的访问,只允许特定的方法来访问对象的数据,从而提高了数据的安全性和一致性。
-
- 简化编程:封装可以将数据和方法捆绑在一起,使得对象的使用更加简单和直观,提高了代码的可读性和可维护性。
-
通过封装,Java类可以隐藏其内部实现细节,只暴露必要的接口给外部使用,从而提高了代码的安全性和可维护性。
封:
-
-
可以使用受限制的访问权限修饰符对类中的属性以及方法进行修饰
-
使得这些属性和方法在其他范围(作用域),其他类中,不同包中,不能直接调用
-
为什么需要限制呢?
- 定义属性时除了需要考虑使用什么数据类型可以存储这个属性值之外
- 还需要考虑属性本身的数据特征,例如:
- 用户名: 长度在(5-16)个字符之间,不能使用数字开头,不能使用标点符号
- 密码: 长度(8-32)个字符,不能有中文,必须包含大小写字母数字
- 年龄: 0-150 是采用存储出生日期来计算的
- 手机: 11位数字
访问权限修饰符 :
- public:公共的 整个项目下
- 可以修饰 类 、属性、方法
- private: 私有的 只能在本类中使用
- 可以修饰 属性、方法
- protected: 受保护的 可以同包下去使用,不同包中只有子类中可以使用
- 可以修饰属性、方法
- 缺省不写: 包默认 可以在同包中调用
- 可以修饰 类 、属性、方法
项目结构与封装的关系:
- 在Java中,封装与项目结构之间存在密切的关系。封装是面向对象编程的一个重要特性,它通过将数据和方法捆绑在一起,实现了对数据的访问控制和保护。在项目结构中,封装通常体现在类的设计和组织上,对于大型项目尤为重要。
-
- 类的设计:封装要求将数据和方法封装在类的内部,通过访问修饰符(public、private、protected)来限制对数据和方法的访问。因此,在项目结构中,需要合理设计类的结构,将数据和方法进行合理的封装。
-
- 包的组织:在Java项目中,通常会使用包(package)来组织类。封装要求将相关的类组织在一起,形成独立的功能模块。因此,在项目结构中,需要合理组织包的结构,将相关的类放置在同一个包中,以实现封装和模块化。
-
- 访问权限:封装通过访问修饰符来限制对数据和方法的访问。在项目结构中,需要合理设置类成员的访问权限,以实现对数据的访问控制和保护。
- Pro23: 项目名 整个项目的根目录
-
out: src编译之后代码文件 .class
-
src:source code 源代码目录 所有的代码文件都要定义在此目录中才可以编译运行
- com:包 管理分类代码文件
- HelloWorld.java: 类文件名
- public class HelloWorld{ } 类
- public class HelloWorld{ } 类
- HelloWorld.java: 类文件名
- com:包 管理分类代码文件
-
装:
- 通过不受限制的权限修饰的方法,对本类中受限制的属性和方法进行访问(赋值 调用)
- 普通的方法:
-
setter方法: public void set属性名(属性类型 参数名){ this.属性名=参数名; }
- 给属性赋值的方法
-
getter方法: public 属性类型 get属性名(){ return 属性名; }
- 获取属性值的方法
-
is: 对布尔值变量判断的方法
-
使用封装的步骤:
- 在Java中,使用封装通常需要遵循以下步骤:
-
- 定义类:首先需要定义一个类,类是Java中封装的基本单元。在类中定义数据成员和方法。
-
- 使用访问修饰符:根据封装的原则,需要使用访问修饰符来限制对数据成员和方法的访问。通常情况下,数据成员使用private修饰符,方法使用public修饰符。
-
- 提供公共方法:为了让外部代码能够访问类的数据成员,需要提供公共的方法。这些方法通常被称为get和set方法,用于获取和设置数据成员的值。
-
- 实现数据隐藏:通过将数据成员设置为private,实现了数据的隐藏,外部代码无法直接访问数据成员,只能通过公共方法来访问。
-
- 使用this关键字:在类的方法中,可以使用this关键字来引用当前对象,以访问对象的数据成员和方法。
-
public class EncapsulationDemo {
private int data;
public int getData() {
return this.data;
}
public void setData(int data) {
this.data = data;
}
public static void main(String[] args) {
EncapsulationDemo day= new EncapsulationDemo();
day.setData(10);
System.out.println(day.getData());
}
}