我是靠谱客的博主 超帅服饰,最近开发中收集的这篇文章主要介绍封装的优点(学习 Java 编程语言 027),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

class Employee {
private String name;
private double salary;
private LocalDate hireDay;
public Employee(String name, double salary, int year, int month, int day) {
this.name = name;
this.salary = salary;
hireDay = LocalDate.of(year, month, day);
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public LocalDate getHireDay()
{
return hireDay;
}
public void raiseSalary(double byPercent) {
double raise = salary * byPercent / 100;
salary += raise;
}
...
}

字段访问器: 字段访问器:只返回实例字段的访问器方法,例如 getName()、getSalary() 和 getHireDay() 方法。

字段更改器: 只设置实例字段的更改器方法。

name 是一个只读字段。一旦在构造器中设置,就没有任何办法可以对它进行修改,这样我们可以确保 name 字段不受外界的破坏。

salary 不是只读字段,但是只能用 raiseSalary 方法修改。特别是一旦这个值出现了错误,只需要调试这个方法就可以了。如果 salary 字段是公共的,破坏这个字段的捣乱者可能会出现在任何地方,那就很难调试了。

需要获得或设置实例字段的值,应该提供下面三项内容:

  • 一个私有的数据字段
  • 一个共有的字段访问器方法
  • 一个共有的字段更改器方法

只比提供一个简单的公共字段的好处:

  • 可以改变内部实现,除了该类的方法之外,不会影响其他代码。
  • 更改器方法可以执行错误检查,而只对字段赋值的代码可能没有这个麻烦。

警告 注意不要编写返回引用可变对象的访问器方法。getHireDay 方法违反了这个设定。

class Employee {
private Date hireDay;
...
public Date getHireDay()
{
return hireDay; // 坏的设计
}
...
}

LocalDate 类没有更改器方法,与之不同,Date 类有一个更改器方法 setTime。

如果需要返回一个可变对象的引用,应该首先对它进行克隆(clone)。对象 clone 是指存放在另一个位置上的对象副本。

class Employee {
private Date hireDay;
...
public Date getHireDay()
{
return (Date)hireDay.clone(); // 好的设计
}
...
}

最后

以上就是超帅服饰为你收集整理的封装的优点(学习 Java 编程语言 027)的全部内容,希望文章能够帮你解决封装的优点(学习 Java 编程语言 027)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部