(2)JavaSE---封装、访问权限、包

1. 封装

封装概念:

将类中重要的数据和方法使用private修饰,使其只能在类内进行访问,
而类的调用者则无法对类中私有数据进行访问。

封装的本质是为了对调用者透明化,隐藏对象的属性和实现细节,仅对外提供公共访问方式。

栗子:
1、你藏了私房钱,存到沙发下,没让你媳妇儿知道。

 (此时你具备了消费能力)

2、你媳妇儿想吃火锅,你用提前在沙发下拿的500块付款。

你媳妇儿知道你有消费能力 -》  (对外接口)
你媳妇儿没法直接用你的钱  —》 (私有 )
你媳妇儿不知道你钱放在哪,也无法把钱拿走,但能让你结账  -》(透明化)

1.2 封装作用

保护或者防止数据被破坏。

别人不能够通过 变量名.属性名 的方式来修改某个私有的成员属性

操作简单

封装后,多个调用者在使用的时候,只需调用对外接口即可

透明化

实现过程对调用者是不可见的,调用者无需知道其内部实现

1.3 访问权限控制

private/public 关键字表示 “访问权限控制”

被 public 修饰的成员变量和方法,可以在类外调用。
被 private 修饰的成员变量和方法,只能在类内部进行使用。

通常使用 private封装属性,在必要的时候使用public 对外提供方法

包(package)中详述

1.4 getter 和 setter方法

如果需要对外提供 private属性的修改和获取,
就需要使用 getter 和 setter方法了。

即常说的 set/get方法。
具体是否提供视情况而定。
IDEA快捷键: alt + insert (或 alt + F12)

2. 包

	包(package)是组织类的一种方式。 
    包主要保证类在全局中的唯一性。
    类似于C++ 中的namespace 命名空间

包分为 系统包和类 , 以及 自定义包和类

2.1 系统包

Java中提供了很多现成的类(下去了解)

如常用的时间戳  java.util 包中的 Date类,
我们在使用 import导入包的时候建议显示指定要导入的类名。

impoort 类似于 C++ 中的 using namespace , 而不是 #include ,
因为java中不需要 引入其他文件。

2.2 自定义包

规则:

1、在文件上方加上一个 package 语句指定该代码属于哪个包。
2、包名尽量唯一,采用域名颠倒 (如: com.baidu.demo)
3、包名和路径匹配。
     例如com.baidu.demo 则会生成对应com/baidu/demo 存储代码
4、一个类没有package,则放在默认包中

2.3 包的访问控制

public:

公共的,被其修饰的类、属性以及方法
不仅可以跨类访问,而且允许跨包(package)访问。

private:

私有的,被其修饰的类、属性以及方法
只能在类内访问,其子类不能访问,更不能允许跨包访问。

protect:

介于public 和 private 之间的一种访问修饰符,“保护形”。
被其修饰的类、属性以及方法
只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。

default:

即不加任何访问修饰符,通常称为“默认访问模式“。
该模式下,只允许在同一个包中进行访问。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值