当前位置:网站首页>Packages and packages, access modifiers
Packages and packages, access modifiers
2022-08-02 23:34:00 【fourteen seventeen】
什么是封装
面向对象三大特征之一 -----------封装
封装的概念
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
把尽可能多的东西藏起来,对外提供便捷的接口
如何实现封装
1 修改属性的可见性(访问权限修饰符) 设置为private 防止错误的修改(Only in this class can be changed)
// 定义属性
private String name;
private int health;
private int love;
2 创建公有的getter 和setter 方法 Belong to the class to read and write
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
3 在get / setter 方法中加入属性控制语句 To judge the legitimacy of the attribute
public int getHealth() {
return health;
}
public void setHealth(int health) {
// 调用此方法 来给 health对象赋值 Before the assignment for cominghealth进行判断
if (health < 0 || health > 100) {
System.out.println("Health value you input is wrong,默认60");
this.health = 60;
return;// The end of the code further operation
}
this.health = health;
}
public int getLove() {
return love;
}
public void setLove(int love) {
if (love < 0 || love > 100) {
System.out.println("你的输入有误 默认80");
return;
}
this.love = love;
}
封装的好处
便于使用者正确使用系统,防止错误修改属性
Help to loose coupling between system,提高系统独立性
提高软件的可重用性
降低了构建大型系统的风险
包(package)
Windows The tree file system
文档分门别类,Easy to find and manage
Use a directory file conflicts with the same problem
包(package)的作用
允许类组成较小的单元(类似文件夹),Easy to find and use the corresponding file
To prevent naming conflicts to distinguish classes of the same name
有助于实施访问权限控制
如何创建包
package cn.bdqn.demo02;
public class Penguin {}
作为java源代码的第一条语句
用package声明包,以分号结尾
包的命名规范
包名由小写字母组成,Not to dot the beginning or the end
package mypackage;
包名之前最好加上唯一的前缀,Often use organization Inversion of the network domain name
package net.javagroud.mypackage;
包名后续部分依不同机构内部的规范不同而不同
package net.javagroud.powerproject(部门名.项目名);
JDKProvide basic package
java.lang 虚拟机自动导入
java.util 提供一些实用类
java.io 输入、输出
如何导包
为了使用不在同一包中的类,需要在java程序中使用importKeywords to import the package
import 包名.类名;
import java.util.*; //导入java.util包中所有类
import cn.jtest.classandobject.School; //导入指定包中指定类
使用包的注意事项
A class reference at the same time from two different packages of the same class
Must pass the full name of the class to distinguish
每个包都是独立的,Top-level package does not contain child package class
package和import的顺序是固定的
package必须位于第一行(Ignore the comment lines)
只允许有一个package语句
其次是import
接着是类的声明
访问权限控制
类成员的访问修饰
作用域 修饰符 | 同一个类中 | 同一个包中 | 子类中 | 任何地方 |
private | 可以 | 不可以 | 不可以 | 不可以 |
默认修饰符 | 可以 | 可以 | 不可以 | 不可以 |
protected | 可以 | 可以 | 可以 | 不可以 |
public | 可以 | 可以 | 可以 | 可以 |
边栏推荐
- 美国爱荷华州立大学| Improving Distantly Supervised Relation Extraction by Natural Language Inference(通过自然语言推理改进远程监督关系提取)
- Parse the commonly used methods in the List interface that are overridden by subclasses
- setup syntax sugar defineProps defineEmits defineExpose
- 框架设计:PC 端单页多页框架如何设计与落地
- SQL 入门之第一讲——MySQL 8.0.29安装教程(windows 64位)
- unittest自动化测试框架总结
- Tencent YunMeng every jie: I experienced by cloud native authors efficiency best practices case
- 信息学奥赛一本通(1258:【例9.2】数字金字塔)
- Qt提升自定义控件,找不到头文件
- 顺序查找和折半查找,看这篇就够了
猜你喜欢
随机推荐
go——内存分配机制
Golang source code analysis: juju/ratelimit
Lvm逻辑卷
广东省数字经济发展指引 1.0之建成数据安全保障体系
开关、电机、断路器、电热偶、电表接线图大全
C# Barrier类
TodoList案例
js Fetch返回数据res.json()报错问题
美国爱荷华州立大学| Improving Distantly Supervised Relation Extraction by Natural Language Inference(通过自然语言推理改进远程监督关系提取)
Which thread pool does Async use?
「 每日一练,快乐水题 」1374. 生成每种字符都是奇数个的字符串
Axure9的元件用法
云平台简介
即时通讯开发移动端网络短连接的优化手段
ABAP grammar small review
新增指令 v-memo
MSTP与STP
OP analysis and design
Leetcode刷题——字符串相加相关题目(415. 字符串相加、面试题 02.05. 链表求和、2. 两数相加)
OpenCV开发中的内存管理问题