`
369128396
  • 浏览: 84224 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Java访问控制private之我见

    博客分类:
  • java
 
阅读更多
最近待业在家,遂有空重新读了thinking in Java这本书,发现工作了几年,对访问控制有了更深的理解,这里专谈private关键字,想了一个例子,以记录自己的理解。
访问控制的原因有二:
1.避免客户端程序员触及他们不应该触及的部分
2.允许库设计者改变类内部工作方式而不担心影响到客户端程序员
下面分别对这两点进行解释,请看下面的代码。


public class Person
{
 private int age;

 public void setAge(int age) throws Exception
{
  if(!validateAge(age))
   throw new IllegalArgumentException("Illegal age!");
  this.age=age;
}
private boolean validateAge(int age)
{
  if(age<0||age>200)
    return false;
  return true;
}
}


在上面这个类,有连个地方解释,一是age属性,二是validateAge方法。
先说age属性,如它是public,则会导致客户端程序员随意修改age的值,如果是多线程访问这个对象,还无法线程同步这个对象,这样是非常危险的,这个时候再想修改访问权限就是一个灾难。
再说validateAge方法,首先这个方法是对象内部的细节,不应该暴露给客户端程序员。
其次如果它是public,并且不在setAge方法里调用,而是让客户端程序员选择调用,这样不管注释文档写的多好,都把决定权留给客户端程序员。当想做一些改变比如去掉这个验证或者改变这个验证的接口,就会同样影响遍布整个系统。

所以设计一个类一定要想好它的对外接口是非常重要的。
分享到:
评论

相关推荐

    Java访问权限控制源代码

    在提供的"Java访问权限控制源代码"中,可能包含示例类,这些类展示了如何使用不同的访问修饰符来控制类、变量和方法的可见性。`readme.md`文件可能包含了代码的介绍和使用指南。 通过学习和理解Java的访问权限控制...

    java之jvm学习笔记十而(访问控制器的栈校验机制)

    总之,Java的JVM通过访问控制器的栈校验机制确保了代码的类型安全和访问控制,这是Java平台可靠性的重要基石。理解这一机制对于深入掌握JVM的工作原理和优化Java代码具有重要意义。通过学习和实践,开发者能够编写出...

    Java访问修饰符

    Java 访问修饰符是 Java 编程语言中的一种重要机制,它控制着类、方法和变量的访问权限。访问修饰符可以分为四种:public、protected、private 和缺省(无访问修饰符)。 public 访问修饰符 public 访问修饰符是最...

    实例8访问控制(java实例系列)

    总结,"实例8访问控制"是一个关于Java访问控制的关键实践案例,通过实际编程加深了对访问控制的理解,帮助开发者掌握如何有效地控制代码的可见性和访问权限,以实现良好的封装性和模块化设计。通过这个实例,我们...

    Java中的访问控制

    Java提供了四种访问控制修饰符,它们分别是:public、private、protected和默认(无修饰符)。 1. **public**:公共访问控制修饰符,表示任何地方的任何类都可以访问被其修饰的成员。如果一个类声明为public,那么...

    Java语言与面向对象程序设计第09讲(访问控制符和类的设计)

    Java语言与面向对象程序设计是编程学习的重要组成部分,尤其对于初学者来说,理解访问控制符和类的设计至关重要。访问控制符决定了类、属性和方法的可见性和可访问性,是实现封装和信息隐藏的关键。 首先,我们要...

    Java访问权限控制源代码.zip

    这个"Java访问权限控制源代码.zip"压缩包可能包含了示例代码,用于演示Java中的不同访问修饰符如何工作以及如何实施访问控制。现在,我们将深入探讨Java中的访问权限控制机制。 首先,Java提供了四种访问级别: 1....

    Java 中的访问权限控制

    在Java编程语言中,访问权限控制是至关重要的概念,它决定了类、接口、字段和方法的可见性。这种控制机制确保了代码的封装性和安全性,防止未经授权的访问和操作。以下是对这一主题的详细探讨: 1. 访问修饰符: ...

    java 访问权限验证

    在Java编程语言中,访问权限控制是至关重要的一个部分,它确保了代码的封装性和安全性。本文将深入探讨Java中的访问权限验证,包括其概念、种类以及如何在实践中应用。 **一、访问权限概述** Java提供了四种不同的...

    Java访问权限控制源代码.rar

    本资源"Java访问权限控制源代码.rar"可能包含了一系列示例,用于展示如何在Java中应用不同的访问修饰符,以及它们如何影响类、方法和变量的可见性。现在,我们将深入探讨Java的访问权限控制。 1. 访问修饰符概述: ...

    JAVA访问修饰符大归纳

    JAVA 访问修饰符是 JAVA 语言中的一种基本概念,它控制着类、方法、变量的访问权限,帮助开发者更好地组织和管理代码。根据 JAVA 访问修饰符的特性和使用范围,我们可以将其分为三类:修饰符类的访问修饰符、属性的...

    Java的访问控制符

    java的访问控制符分为两类:类的访问控制符,属性和方法的访问控制符。  1. 类的访问控制符有两种:public, default(默认的,什么都不用写)  default是包内访问控制符。  当然对于内部类还可以有static修饰,...

    java中public、protected、默认、private关键字

    Java 访问修饰符(public、protected、默认、private) Java 中的访问修饰符是 Java 语言中一种基本概念,用于控制类、方法、变量、构造方法等成员的访问权限。 Java 中有四种访问修饰符:public、protected、默认...

    Java开发小案例之权限控制

    通过运行和分析这个案例,你可以更好地理解Java访问控制的实际应用。 通过深入学习和实践这个Java开发小案例,你将掌握如何在实际项目中运用访问权限控制,提升代码的安全性和可维护性。对于初学者来说,这是一个...

    java访问权限修饰符public.doc

    java 访问权限修饰符详解 在 Java 语言中,访问权限修饰符是指用来限定类、成员变量和方法的可访问范围的关键字。访问权限修饰符分为四种:public、protected、friendly 和 private。每种修饰符都有其特定的访问...

    浅析Java中的访问权限控制Java开发Java经验技巧共

    例如,Python和C++等其他语言也有类似的访问控制机制,但具体规则和实现有所不同,这也反映了不同语言的设计哲学。 总结来说,Java中的访问权限控制是实现面向对象编程的重要组成部分,它在保护数据、支持封装、...

    基于Java的访问权限控制源代码.zip

    - private字段和方法只在定义它们的类内部可用,防止外部直接访问,强制使用getters和setters进行访问控制。 - protected字段和方法适用于子类,允许子类继承并访问。 4. 包访问: 同一包内的类可以互相访问未...

    基于Java的源码-访问权限控制源代码.zip

    这个"基于Java的源码-访问权限控制源代码.zip"文件很可能包含了一些示例,用于演示Java中的访问修饰符如何工作以及如何实现有效的访问控制。让我们深入探讨一下Java中的访问权限控制。 1. 访问修饰符: - **public...

    基于java的访问权限控制源代码.zip

    这个压缩包“基于java的访问权限控制源代码.zip”很可能包含了一系列示例,用于演示如何在Java中实现不同级别的访问控制,以便管理类、方法和变量的可见性和可访问性。 在Java中,访问修饰符主要有四种:`public`、...

Global site tag (gtag.js) - Google Analytics