封装
来源:互联网 发布:上海办公软件培训班 编辑:程序博客网 时间:2024/06/06 08:57
定义:将类的状态信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
步骤:修改属性的可见性来限制对属性的访问;为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的存取;
在赋值方法中,加入对属性的存取控制语句。
一个私有属性都对应赋值(setter)方法和取值(getter)方法。
在对外访问方式中加入逻辑判断等语句对访问的数据进行操作,提高代码的健壮性。
好处:1.隐藏类的实现细节;让使用者只能通过程序员规定的方法来访问数据。(安全)
2.可以方便地加入存取控制语句,限制不合理操作。(方便)
3.提高代码健壮性。
注意:私有仅仅是封装的一种表现形式。
权限修饰符:
private(私有的):成员变量和方法只能在类内部被访问,具有类可见性。
default(默认):成员变量和方法只能被同一个包里的类访问,具有包可见性。
protected(受保护的):可以被同一个包中的类访问,被同一个项目中不同包中的子类访问。
public(公开的):可以被同一个项目中所有类访问,具有项目可见性,这是最大的访问权限。
实例:
class PersonTest
{
public static void main(String[] args)
{
Person p=new Person();
p.setAge(20);
}
}
//创建人类
class Person
{
private int age;//年龄私有化
//设置年龄方法
void setAge(int a){
//加入判断语句,年龄是否合理
if (a>0&&a<120)
{
age=a;
print();
}
else
{
System.out.println("年龄有误");
}
}
//返回年龄方法
int getAge(){
return age;
}
public void print(){
System.out.println("age="+age);
}
}
步骤:修改属性的可见性来限制对属性的访问;为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的存取;
在赋值方法中,加入对属性的存取控制语句。
一个私有属性都对应赋值(setter)方法和取值(getter)方法。
在对外访问方式中加入逻辑判断等语句对访问的数据进行操作,提高代码的健壮性。
好处:1.隐藏类的实现细节;让使用者只能通过程序员规定的方法来访问数据。(安全)
2.可以方便地加入存取控制语句,限制不合理操作。(方便)
3.提高代码健壮性。
注意:私有仅仅是封装的一种表现形式。
权限修饰符:
private(私有的):成员变量和方法只能在类内部被访问,具有类可见性。
default(默认):成员变量和方法只能被同一个包里的类访问,具有包可见性。
protected(受保护的):可以被同一个包中的类访问,被同一个项目中不同包中的子类访问。
public(公开的):可以被同一个项目中所有类访问,具有项目可见性,这是最大的访问权限。
实例:
class PersonTest
{
public static void main(String[] args)
{
Person p=new Person();
p.setAge(20);
}
}
//创建人类
class Person
{
private int age;//年龄私有化
//设置年龄方法
void setAge(int a){
//加入判断语句,年龄是否合理
if (a>0&&a<120)
{
age=a;
print();
}
else
{
System.out.println("年龄有误");
}
}
//返回年龄方法
int getAge(){
return age;
}
public void print(){
System.out.println("age="+age);
}
}
0 0
- 封装
- 封装
- 封装
- 封装
- 封装
- 封装
- 封装
- 封装
- 封装
- 封装
- 封装
- 封装
- 封装
- 封装
- 封装
- 封装
- 封装
- 封装
- Django - 与 Mysql 结合的 基本配置操作 并实现查询功能
- 一键部署jdk ,tomcat,mysql ,jar
- 【Android】 JNI入门 - NDK从入门到精通
- asp.net禁用按钮以防止重复提交
- 波利亚计数(群论)
- 封装
- RecycleView添加头部和底部
- CICS事务网关-CTG原理及操作
- TProfiler工具使用
- 关于MongoDBVUE无法显示collection的解决方案
- python环境下安装dlib库
- AngularJS入门
- The mbstring extension is missing. Please check your PHP configuration.
- 关于iOS中按钮无法点击问题的描述