【Effective Java】条14:共有类中使用访问方法而不是公有域

在平时开发中,也会你会定义某些类,没什么作用,仅仅是集中一些实例域的。如:

class Point {
    public float x;
    public float y;
}

由于类设计成这样,可以直接通过对象访问,简洁了很多。但是这不符合面向对象的思想,万一x的计算方式有更改,该怎么办?

所以最好我们为实例域提供访问方法,如:

class Point {
    private float x;
    private float y;

    public float getX() {return x;}

    public float getY() {return y;}

    public void setX(float x) {this.x = x;}
    public void setY(float y) {this.y = y;}
}

如果x(y)计算修改,我们可以通过getX方法修改,不至于像公有域那样被动。

针对package private或内嵌的类,虽然不会影响到面向用户的API,但是个人还是推荐访问方法。毕竟现在生成访问方法都可以自动生成,不会太麻烦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 对于Effective Java第三版中文版,我们可以看到它被彻底更新,具有更紧凑的结构,更新的内容,并且更加全面地涵盖了Java 8、9、10和11中的新特性。《Effective Java》是一本经典的Java编程指南,作者是Joshua Bloch。以下是《Effective Java 第三版》的中文名称: 《Effective Java:第三版》 希望能对您有所帮助! ### 回答2: 《Effective Java》第三版是一本经典的Java编程指南,是Java开发者必备的一本书籍。它是一本以实践为导向的书籍,包括了许多重要的Java编程技巧和最佳实践,帮助读者在编写代码时避免一些常见的陷阱和错误,提高代码的可读性、可维护性、可重用性等方面的水平。 本书分为14章,每章涵盖一个Java的关键主题。对于每个主题,作者都会提出一些实践建议,同时给出具体的例子和解释。这些例子都是实际的Java代码,帮助读者更好地理解他们所阅读的内容。 在第三版中,作者对之前版本的内容进行了全面更新,并新增了一些新的章节。其中,最值得一提的莫过于第11章,介绍了Java平台所提供的函数式编程的特性,以及如何在Java使用这些特性来编写更加简洁、高效的代码。此外,书中还涵盖了许多其他的主题,如优先使用接口而不是抽象类、避免过度使用对象引用、使用枚举和注解等等,都是非常实用的知识点。 此外,本书的语言通俗易懂,非常适合各种层次的Java开发者阅读。无论是初学者还是有多年经验的开发者,都可以从这本书中学到很多有用的知识和经验。因此,我强烈推荐这本书给所有正在学习或使用Java语言的开发者。 ### 回答3: 《Effective Java》第三版中文是一本非常重要的Java编程书籍,被誉为是Java程序员必备的经典之作。本书由Joshua Bloch所著,全书分为16个章节,主要介绍了Java中常见的问题和解决方案,以及一些语法习惯和最佳实践理念。 本书的第一、二版已经出版很久了,但开发者们仍然需要它们,因为Java语言不断发展和改进,一些新知识和最佳实践也在不断涌现,这本书也就顺应时代的发展而出了第三版。 在本书中,作者详细讲解了Java中的许多语法和类库中的漏洞,指出了不良实践及其产生的问题,并提供了更好的解决方案。例如,当需要在一个类中实现Singleton模式时,传统的做法是用一个私有的静态变量来保存该类的唯一实例。但实际上,仅仅使用静态变量是不够安全的,因为它可能会被反序列化攻击破解。在这种情况下,作者提供了一个更加安全的解决方案,即利用枚举类型来实现单例模式。 此外,本书还讲解了Java的一些核心知识点,如泛型、枚举、注解等等。这些知识点对于Java程序员来说都是非常关键的,而本书通过讲解实例和案例,使得读者能够深入理解每个知识点的实际应用场景。 总之,《Effective Java》第三版中文是一本不可多得的Java编程书籍,对于Java开发者来说是不可或缺的参考资料。阅读本书可以帮助程序员充分理解Java语言的精髓和现代编程技术,写出更高质量、更可靠的代码,让程序更加健壮和易于维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值