- 浏览: 85136 次
- 性别:
- 来自: 北京
-
1、Class类的访问权限:
public:可以供所有的类访问。
默认:默认可以称为friendly但是,java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++。默认的访问权限是包级访问权限。
即如果写了一个类没有写访问权限修饰符,那么就是默认的访问权限,同一个包下的类都可以访问到,即使可以实例化该类
(当然如果这个类不具有实例化的能力除外,比如该类没有提供public的构造函数)。
说明:
1、每个编译单元(类文件)都仅能有一个public class
2、public class的名称(包含大小写)必须和其类文件同名。
3、一个类文件(*.java)中可以不存在public class。
这种形式的存在的场景:如果我们在某个包内撰写一个class,仅仅是为了配合同包内的其他类工作,而且
我们不想再为了撰写说明文档给客户(不一定是现实意义的客户,可能是调用这个类的类)看而伤脑筋,而且有可能过一段时间之后
有可能会彻底改变原有的做法,并完全舍弃旧版本,以全新的版本代替。
4、class不可以是private和protected。
5、如果不希望那个任何产生某个class的对象,可以将该类得所有构造函数设置成private。但是即使这样也可以生成该类的对象,就是class的static的成员(属性和方法)可以办到。
2、类成员变量的访问权限:
public:紧接public的属性任何类都可以访问到。可以直接使用ClassName.propertyName。但是从类的封装性上来考虑将一个类的属性定义成public一般很少使用,
在定义静态常量的时候通畅会这样定义。如:public static final int PAGE_SIZE=10;
private:只有类本身内部的方法可以访问类的private属性,当然内部类也可以访问其外部类的private成员的。(属性和方法)
默认(friendly):包级可见,同一个包内的类可以访问到这个属性,可以直接使用className.propertyName来访问,但是从类的封装性特性来说很少这样使用类的属性的。
protected:关键字所处理的是所谓“继承”的观念。对于同一包的其他类,protected=默认,对于不同包的类,如果存在继承关系,而baseClass存在protected属性,则可以被其自继承,而不同包的其他类
则不能访问类的protected属性。
3、类的成员方法的访问权限:
其从语法角度来讲,这些访问权限控制符作用于类的方法和作用于类的属性上的效果是一样的。
public:所有类可见。
pirvate:只有同一类内部的方法可见,在有就是内部类也可以访问到。
默认(friendly):包内可见。
protected:继承可见。
4、访问权限存在的理由
1、“让使用者无法碰触到他们不该碰触的东西。”这些东西仅供类的内部机制使用。将某些成员声明成private,对于使用者来说可以说是一种服务,
因为这样使用者可以知道哪些是他关注的哪些是不重要的,不需要关注,如此历来对于使用来说降低了对使用对象认识的难度。
2、(最终要的理由)让程序设计者可以更动class内部运作方式,而无须担心波及到客户端程序。
5、java的“访问权限修饰符”赋予classes开发者极具有价值的控制能力。身为classes开发者,如果你的任何改变可以完全不干扰你的使用者,
你便可以安心改变你的底层实现,因为客户端程序员无法访问class的这一部分。
通过今天学习访问权限的问题了解到,接口或者抽象等等策略所谓的“实现隐藏”其根本原因并不是说为了隐藏实现的代码和思路,而是降低使用者的使用难度,以及从维护角度来说可见范围的控制给程序维护带来了极大的安全性。
public:可以供所有的类访问。
默认:默认可以称为friendly但是,java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++。默认的访问权限是包级访问权限。
即如果写了一个类没有写访问权限修饰符,那么就是默认的访问权限,同一个包下的类都可以访问到,即使可以实例化该类
(当然如果这个类不具有实例化的能力除外,比如该类没有提供public的构造函数)。
说明:
1、每个编译单元(类文件)都仅能有一个public class
2、public class的名称(包含大小写)必须和其类文件同名。
3、一个类文件(*.java)中可以不存在public class。
这种形式的存在的场景:如果我们在某个包内撰写一个class,仅仅是为了配合同包内的其他类工作,而且
我们不想再为了撰写说明文档给客户(不一定是现实意义的客户,可能是调用这个类的类)看而伤脑筋,而且有可能过一段时间之后
有可能会彻底改变原有的做法,并完全舍弃旧版本,以全新的版本代替。
4、class不可以是private和protected。
5、如果不希望那个任何产生某个class的对象,可以将该类得所有构造函数设置成private。但是即使这样也可以生成该类的对象,就是class的static的成员(属性和方法)可以办到。
2、类成员变量的访问权限:
public:紧接public的属性任何类都可以访问到。可以直接使用ClassName.propertyName。但是从类的封装性上来考虑将一个类的属性定义成public一般很少使用,
在定义静态常量的时候通畅会这样定义。如:public static final int PAGE_SIZE=10;
private:只有类本身内部的方法可以访问类的private属性,当然内部类也可以访问其外部类的private成员的。(属性和方法)
默认(friendly):包级可见,同一个包内的类可以访问到这个属性,可以直接使用className.propertyName来访问,但是从类的封装性特性来说很少这样使用类的属性的。
protected:关键字所处理的是所谓“继承”的观念。对于同一包的其他类,protected=默认,对于不同包的类,如果存在继承关系,而baseClass存在protected属性,则可以被其自继承,而不同包的其他类
则不能访问类的protected属性。
3、类的成员方法的访问权限:
其从语法角度来讲,这些访问权限控制符作用于类的方法和作用于类的属性上的效果是一样的。
public:所有类可见。
pirvate:只有同一类内部的方法可见,在有就是内部类也可以访问到。
默认(friendly):包内可见。
protected:继承可见。
4、访问权限存在的理由
1、“让使用者无法碰触到他们不该碰触的东西。”这些东西仅供类的内部机制使用。将某些成员声明成private,对于使用者来说可以说是一种服务,
因为这样使用者可以知道哪些是他关注的哪些是不重要的,不需要关注,如此历来对于使用来说降低了对使用对象认识的难度。
2、(最终要的理由)让程序设计者可以更动class内部运作方式,而无须担心波及到客户端程序。
5、java的“访问权限修饰符”赋予classes开发者极具有价值的控制能力。身为classes开发者,如果你的任何改变可以完全不干扰你的使用者,
你便可以安心改变你的底层实现,因为客户端程序员无法访问class的这一部分。
通过今天学习访问权限的问题了解到,接口或者抽象等等策略所谓的“实现隐藏”其根本原因并不是说为了隐藏实现的代码和思路,而是降低使用者的使用难度,以及从维护角度来说可见范围的控制给程序维护带来了极大的安全性。
发表评论
-
组合or继承
2013-05-27 11:54 889到底使用组合还是继承是每本讲设计的资料里都要讨论一番的话题 ... -
Java访问控制private之我见
2013-05-24 11:36 837最近待业在家,遂有空重新读了thinking in Java这 ... -
XML 系列教程
2012-05-06 12:50 622http://www.w3school.com.cn/x.as ... -
面向接口编程详解
2012-04-19 21:42 1157面向接口编程详解 2009-04-23 作者:张洋 来源: ... -
浅析java回调机制与观察者模式
2012-04-10 17:23 18891 java回调机制: 首先解 ... -
Java程序设计之-复合优先于继承
2012-04-03 10:33 1507组合 通过创建一个由其他对象组合的对象来获得新功能的重用方法 ... -
java学习之路(转)
2012-03-30 15:01 834(一) 从事软件 ... -
java内部类
2012-03-28 16:26 918一、 定义 放在一个类的内部的类我们就叫内部类。 二、 作用 ... -
为什么匿名内部类只能访问其所在方法中的final变量(转)
2012-03-28 15:45 1109(1).所谓“局部内部类”就是在对象的方法成员内部定义的类。而 ... -
【java】好书推荐
2012-03-26 15:31 1480Java软件架构师所要需的东西 作为Java程序员来说,最痛 ... -
Java绝对好文,转载的!(转载)
2012-03-25 14:45 876想来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈 ... -
理解java动态加载机制
2012-03-20 00:01 10491.java动态性 java是一种 ... -
热部署、热加载
2012-03-19 14:14 3709不重启Tomcat有两种方式:热部署、热加载 热部署:容 ... -
Registry of Singleton 模式(转)
2012-03-06 10:01 810考虑使用 Singleton 模式 时拥有子类别的问题,在Si ... -
单例模式(Singleton Pattern)
2012-03-05 20:40 7126.单例模式(Singleton Pattern) 前面说提到 ... -
java.util.concurrent 多线程框架
2012-02-26 16:15 824http://daoger.iteye.com/blog/14 ... -
线程----BlockingQueue (转),java
2012-02-26 13:50 832/** 本例介绍一个 ... -
关于多个线程同时调用单例模式的对象,该对象中方法的局部变量是否会受多个线程的影响
2012-02-12 12:16 2982对于那些会以多线程运行的单例类,例如Web应用中的Servle ... -
Java线程同步机制synchronized关键字的理解
2011-12-25 14:34 802由于同一进程的多个线 ... -
synchronized与static synchronized 的区别
2011-12-24 22:48 6881.synchronized与static synchroni ...
相关推荐
java 访问权限修饰符详解 在 Java 语言中,访问权限修饰符是指用来限定类、成员变量和方法的可访问范围的关键字。访问权限修饰符分为四种:public、protected、friendly 和 private。每种修饰符都有其特定的访问...
本文将详细探讨Java中的五种权限修饰符:`public`、`protected`、`default`(也称为包访问权限)、`private`以及`static`修饰类的情况,并通过实例来展示这些修饰符的具体应用。 #### 1. Public - **概述**: - `...
Java 访问修饰符是 Java 编程语言中的一种重要机制,它控制着类、方法和变量的访问权限。访问修饰符可以分为四种:public、protected、private 和缺省(无访问修饰符)。 public 访问修饰符 public 访问修饰符是最...
计算机二级摸底测验J继承和接口和java访问权限修饰符总结ava题目
JAVA 访问修饰符是 JAVA 语言中的一种基本概念,它控制着类、方法、变量的访问权限,帮助开发者更好地组织和管理代码。根据 JAVA 访问修饰符的特性和使用范围,我们可以将其分为三类:修饰符类的访问修饰符、属性的...
继承和接口和java访问权限修饰符总结 本文总结了 Java 中的继承、接口和访问权限修饰符的概念和使用。继承是 Java 中的一种机制,允许子类继承父类的属性和方法,並且可以对父类的方法进行重写或重载。动态绑定是指...
### Java访问权限修饰符详解 #### 一、访问权限修饰符概述 Java语言提供了四种不同的访问权限修饰符:`public`、`protected`、`default`(也称为包私有或包默认)以及`private`。这些修饰符用于控制类、方法、变量...
Java 修饰符是 Java 语言中的一种基本语法元素,用于控制访问权限、继承关系、抽象类和静态成员变量等方面。Java 修饰符可以分为两大类:访问修饰符和非访问修饰符。访问修饰符包括 public、protected、default 和 ...
Java修饰符是编程中至关重要的概念,它们用于定义类、接口、变量和方法的访问权限、行为和特性。本文将详细介绍Java中常见的修饰符及其用途。 1. **类的修饰符** - **public**: 公共访问控制符,允许任何地方的...
Java编程语言中的继承、接口和访问权限修饰符是面向对象编程的重要概念,它们共同构建了类与类之间复杂的关联和数据封装。以下是这些概念的详细解释: **多态性**: 多态性允许一个对象引用变量引用不同类型的子类...
`private`是限制访问权限最严格的修饰符,只允许在同一个类内部访问。如果一个成员(如变量或方法)被声明为`private`,那么在类的外部是无法访问它的。`private`常用于实现数据封装,保护类的内部状态不被外部代码...
### Java零基础-访问控制权限修饰符 #### 内容概要 本文旨在全面解析Java中的访问控制权限修饰符,具体涉及`public`、`private`、`protected`及默认访问级别(即不使用任何显式修饰符时的情况)。通过本篇文章的...
public是最宽松的访问权限修饰符,被其修饰的类、方法、变量或构造函数可以被任何其他类访问。无论这个类位于哪个包中,public成员始终对所有其他类可见。类被声明为public时,任何其他类都可以访问这个类;字段、...
在Java编程语言中,修饰符是用来限制或指定代码元素(如类、方法、变量)的访问权限、特性或行为的关键词。以下是对标题和描述中提及的Java修饰符及其相关知识点的详细介绍: 1. 类的访问控制修饰符: - **public*...
Java中的访问权限修饰符是编程语言中控制代码访问的重要机制,主要用于确保程序的封装性和安全性。Java提供了五种访问权限级别,分别是public、friendly(或称为default)、private和protected。下面将详细解释这些...
4. 默认(不写任何修饰符):包访问权限,当前包中的同一类或者不同类可以访问 非访问修饰限定符 非访问修饰限定符用于修饰类、方法、变量的其他特性。Java中的非访问修饰限定符有三种:abstract、final和static。...
例如,类(外部类)只能使用public和默认权限修饰符,而数据成员、方法成员和构造方法可以使用所有四种修饰符。同时,修饰符修饰的是成员的“被访问”的权限,它控制的是哪些其他类可以访问这些成员。 通过实例考察...
每种修饰符都有其特定的访问权限和用途。 类的访问修饰符 Java 中有四种类的访问修饰符: 1. 缺省(friendly):同一包中的类可以访问。 2. Public:任何包、任何类都可以访问。 3. Abstract:抽象类,是不是实例...
"Java四种权限修饰符知识点详解" Java是一种面向对象的编程语言,它提供了四种权限修饰符,分别是public、protected、default和private。这些修饰符用于控制类、数据成员、构造方法和方法成员的访问权限。 1. 默认...