成员的访问控制java
JAVA中使用如下关键字public、protected、private能用来控制对类成员的访问:
1. 类的访问控制符有两种:public, default(默认的,什么都不用写)
default就是包内访问控制符。
当然对于内部类还可以有static修饰,而用static修饰的内部类叫作嵌套类。
2. 属性和方法的访问控制符有四种:private, default, protected, public
可以用如下的表描述:(Yes表示可访问,空表示不可访问)
3. 其它:java的访问控制级别分类:类访问控制级别,对象访问控制级别。
Ⅱ 请问:java类成员访问修饰符的限制范围
public
访问范围最大,也就是任何其他类都可以调用这个类的方法或属性。
private
访问范围最小,也就是只能在这个类的内部使用,外部调用不了
protected
访问范围算是中间,只有本类和子类才能访问。
Ⅲ Java中的四种访问控制域是什么
private,public,protected,默认不写(firendly)
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的这一部分。
通过今天学习访问权限的问题了解到,接口或者抽象等等策略所谓的“实现隐藏”其根本原因并不是说为了隐藏实现的代码和思路,而是降低使用者的使用难度,以及从维护角度来说可见范围的控制给程序维护带来了极大的安全性。
Ⅳ Java的访问控制权限有哪几种试以类格式形式列出Java的访问控制。
访问权限的等级最大到最小依次是:public,protected,包访问权限(无关键字)和private。
成员的访问权限取得对某成员(属性和方法)的实现方法有下面四种情况
1, 权限设置为public; 2, 默认包访问权限,在同一包中的其他类,可以访问; 3, 权限设置为public或者protected,通过继承的子类可以访问; 4, 设置为private,提供访问器和变异器方法(get/set);
下面介绍这四种权限(相对成员而言)
1, 包访问权限,在同一包中的类可以访问; 2, Public:接口访问权限,任何类都可以访问; 3, Private:你无法访问,除了包含该成员的类,其他类都可以访问。 4, Protected:继承访问权限,包括包访问权限。在同一包中,还有就是子类可以访问。
类的访问权限类的访问
只有两种:包访问权限或public(用法同上) 如果不希望其他类拥有该类的访问权限,可以把这个来说有的构造器制定为private(比如单列模式)。
Ⅳ java编程的填空题,类成员的访问控制符有public,(),(),和默认四种。
类成员的访问控制符有public,(protected),(private),和默认四种
Ⅵ java编程编写Patient类,测试类成员的public、private、default 访问控制权限。
public
公共,加上这个修饰的类或属性,可以在同一个包或者别的包里面访问
private
私有的,加上这个修饰的类或属性,只能在同类里访问,同包和别的包不能访问
protected
保护,加上这个修饰的类或属性,只能在类和同包访问,别的包不能访问
Ⅶ JAVA中类及类成员的访问控制符包括
public:
可以在任何地方进行访问,不受任何约束;
protected:
可被子类访问,不管是同一个包还是不同包
同一个包中非子类需要通过对象访问
private:
只能够被本类中的其它成员访问,而不能从类的外部进行访问
缺省:称为friendly,可被同一包的所有的类访问
final:
final修饰的类表示这个类不可被继承,被称为最终类
Static:
不能用来修饰类,可以用来修饰变量,用static修饰的变量称为静态变量,可以直接通过
类名.变量名
来调用
Ⅷ Java中类有哪些访问控制修饰符,并指出它们的访问控制作用范围
类的访问控制符只有public与默认两种;类成员的访问控制符包括public,private,protected,与默认,java中没有friendly。public代表允许所有类及成员访问,private代表仅允许本类成员访问,protected代表仅允许本类及其子类成员访问,默认代表允许本包中类及其成员访问
Ⅸ java中private的访问控制
private是私有属性,如果对象可以调用对方的成员变量或方法只能说明这个成员变量或方法是静态的,是他们公用的。保护控制在类的级别上,而不是对象的级别上
Ⅹ 。java中成员变量的访问控制符可以组合在一起使用是什么意思
java中访问控制符的作用是说明被声明的内容(类、属性、方法和构造方法)的访问权限,就像发布的文件一样,在文件中标注机密,就是说明该文件可以被那些人阅读。
访问控制在面向对象技术中处于很重要的地位,合理的使用访问控制符,可以通过降低类和类之间的耦合性(关联性)来降低整个项目的复杂度,也便于整个项目的开发和维护。具体的实现就是通过访问控制符将类中会被其它类调用的内容开放出来,而把不希望别人调用的内容隐藏起来,这样一个类开放的信息变得比较有限,从而降低了整个项目开放的信息,另外因为不被别人调用的功能被隐藏起来,在修改类内部隐藏的内容时,只要最终的功能没有改变,即使改变功能的实现方式,项目中其它的类不需要更改,这样可以提高了代码的可维护性,便于项目代码的修改。
在Java语言中访问控制权限有4种,使用三个关键字进行表达,依次如下:
l public——公共的
l protected——受保护的
l 无访问控制符——默认的
l private——私有的
在实际使用时,类声明的访问控制符只有2个:public和无访问控制符,属性声明、构造方法声明和方法声明的访问控制符可以是以上4种中的任何一个。
这4个访问控制符的权限作用如下表所示:
在4种访问控制中,public一般称作公共权限,其限制最小,也可以说没有限制,使用public修饰的内容可以在其它所有位置访问,只要能访问到对应的类,就可以访问到类内部public修饰的内容,一般在项目中开放的方法和构造方法使用public修饰,开放给项目使用的类也使用public修饰。protected一般称作继承权限,使用protected修饰的内容可以被同一个包中的类访问也可以在不同包内部的子类中访问,一般用于修饰只开放给子类的属性、方法和构造方法。无访问控制符一般称作包权限,无访问控制符修饰的内容可以被同一个包中的类访问,一般用于修饰项目中一个包内部的功能类,这些类的功能只是辅助其它的类实现,而为包外部的类提供功能。private一般称作私有权限,其限制最大,类似于文件中的绝密,使用private修饰的内容只能在当前类中访问,而不能被类外部的任何内容访问,一般修饰不开放给外部使用的内容,修改private的内容一般对外部的实现没有影响。