Java封装
1 什么是Java封装
Java中的封装是将代码和数据包装到单个单元中的过程。
使用Java的封装,我们可以通过将类的所有数据成员设为私有来在Java中创建一个完全封装的类。然后我们可以使用setter和getter方法来设置和获取其中的数据。
Java Bean类就是完全封装的类的例子。
2 Java封装的优势
- 通过封装仅提供setter或getter方法,可以将类设置为只读或只写。
- 封装为你提供了对数据的控制。假设你要设置的id值需要大于100,您可以在setter方法中编写逻辑。当然你也可以编写不将小于0的数值存储在setter方法中的逻辑。
- 封装是一种在Java中实现数据隐藏的好方法,因为其他类将无法通过私有数据成员访问数据。
- 封装类易于测试。
- 标准的IDE开发工具一般都提供了生成getter和setter手段。因此,使用Java创建封装类非常方便快捷。
3 Java封装的示例1
让我们看一下简单的封装示例,封装的setter和getter方法只有一个字段。
Student:
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
//使用Java封装字段的示例.
//私有化成员,及提供getter和setter方法
public class Student{
//私有化数据成员
private String name;
//name的getter方法
public String getName(){
return name;
}
//name的setter方法
public void setName(String name){
this.name=name;
}
}
Test:
/**
* 一点教程网:http://www.yiidian.com
*/
//测试类
package com.yiidian;
class Test{
public static void main(String[] args){
//创建Student对象
Student s=new Student();
//给name字段赋值
s.setName("yiidian");
//调用getter方法获取name字段值
System.out.println(s.getName());
}
}
编译: javac -d . Test.java
运行: java com.yiidian.Test
输出结果为:
yiidian
4 Java封装的示例2
让我们看一下封装的另一个示例,该示例包含四个带有setter和getter方法的字段。
Account:
package com.yiidian;
/**
*一点教程网: http://www.yiidian.com
*/
class Account {
//私有化成员
private long acc_no;
private String name,email;
private float amount;
//提供公开的getter和setter方法
public long getAcc_no() {
return acc_no;
}
public void setAcc_no(long acc_no) {
this.acc_no = acc_no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public float getAmount() {
return amount;
}
public void setAmount(float amount) {
this.amount = amount;
}
}
Test:
/**
* 一点教程网:http://www.yiidian.com
*/
//测试类
package com.yiidian;
class Test{
public static void main(String[] args) {
//创建Account对象
Account acc=new Account();
//通过setter给字段赋值
acc.setAcc_no(7560504000L);
acc.setName("张三");
acc.setEmail("zhangsan@yiidian.com");
acc.setAmount(500000f);
//通过getter方法获取字段值
System.out.println(acc.getAcc_no()+" "+acc.getName()+" "+acc.getEmail()+" "+acc.getAmount());
}
}
输出结果为:
7560504000 张三 zhangsan@yiidian.com 500000.0
热门文章
优秀文章