封装
Hello!CSDN的小伙伴们。
这里是老汉的Java成长之路专栏,感兴趣的话就关注老汉并订阅本系列的专栏一起学习吧。
前言
本期老汉为大家介绍Java封装的相关知识,封装是面向对象的一种概念,对数据进行保护,能大大提高程序安全性,下面就跟随老汉一起进入本期的学习吧。
一、封装特点
1.只通过规定的方法访问数据
getter、setter方法
2.隐藏类的实例细节,方便修改和实现
示例图如下:
二、封装用途示例
前面我们有提到封装是为了保护数据,提高程序安全性,下面我来写个示例
题目案例:
创建getter、setter方法设置时间规则,对时间数据进行操作
要求:
时 (hour):最大数值不超过24,到达24则为0
分(minute):最大数值不超过60,到达60则为0
秒(second):最大数值不超过60,到达60则为0
//使用private进行封装操作
private int hour;//时
private int minute;//分
private int second;//秒
//getter和setter方法
public int getSecond() {
return second;
}
public void setSecond(int second) {
if(second<60) {
this.second=second;//小于60则直接赋值
}else {
this.setMinute(this.minute+(second/60));//大于60先对分进行赋值,所有赋值操作均使用setter方法
this.second = second%60;//余数则为当前数值
}
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
if(minute<60) {
this.minute=minute;//小于60则直接赋值
}else {
this.setHour(this.hour+(minute/60));//大于60先对时进行赋值,所有赋值操作均使用setter方法
this.minute = minute%60;//余数则为当前数值
}
}
public int getHour() {
return hour;
}
public void setHour(int hour) {
this.hour = hour%24;//余数则为当前数值
}
三、包
1.定义包
语法:
package 包名;
例如:package com.code_homeycomb.package_demo;
注意:
a. 必须放在Java源文件中的第一行
b. 一个Java源文件中只能有一个package语句
c. 包名全部英文小写
d. 命名方式:
indi :
个体项目(individual),指个人发起,但非自己独自完成的项目,可公开或私有项目,copyright主要属于发起者。
包名为:indi.发起者名.项目名.模块名……
onem :
单人项目(one-man),推荐用indi,指个人发起,但非自己独自完成的项目,可公开或私有项目,copyright主要属于发起者。
包名为:“onem.发起者名.项目名.模块名……”
pers :
个人项目(personal),指个人发起,独自完成,可分享的项目,copyright主要属于个人。
包名为:pers.个人名.项目名.模块名.……
priv :
私有项目(private),指个人发起,独自完成,非公开的私人使用的项目,copyright属于个人。
包名为:priv.个人名.项目名.模块名.……
team:
团队项目,指由团队发起,并由该团队开发的项目,copyright属于该团队所有。
包名为:team.团队名.项目名.模块名.……
com :
公司项目,copyright由项目发起的公司所有。
包名为:com.公司名.项目名.模块名.……
2.导入包
语法:
import 包名.类名
例如:
导入包中全部类:
import java.util.*;
导入包中指定类:
import java.util.List;
3.常用系统包
java.lang 包含java语言基础的类
java.util 包含Java语言中各种工具类
java.io 包含输入、输出相关功能的类
四、静态(static)
1.static组合
a. static+属性——静态属性
b. static+方法——静态方法
c. static+类——不存在
d. static+方法内局部变量——不存在
注意:静态成员随类加载产生,直至类销毁才回收
2.静态方法
a. 可以直接调用同类中的静态成员
b. 不可以直接调用同类中的非静态成员
c. 可以通过实例化对象后,对象调用的方式完成非静态成员调用
本期小结
到这里我们就结束了本期关于封装的学习,本期知识点较为分散,需要自行配合代码习题练习掌握,Java成长之路的专栏将会停更一段时间,接下来老汉将会针对于计算机二级c语言考试进行知识点总结,供各位学习参考,感谢各位观看!