Java中访问权限总结
2016-09-16 23:01
218 查看
1、Class类的访问权限:
public:可以供所有的类访问。
默认(包访问权限):默认可以称为friendly但是,java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++。默认的访问权限是包级访问权限。
即如果写了一个类没有写访问权限修饰符,那么就是默认的访问权限,同一个包下的类都可以访问到,即可以实例化该类 ,new出实例。
(Java中 每个类在没有声明构造方法的前提下,会自动生成一个不带参数的构造方法)。
说明:
1、每个编译单元(类文件)都仅能有一个public class
2、public class的名称(包含大小写)必须和其类文件同名。
3、一个类文件(*.java)中可以不存在public class。
这种形式的存在的场景:如果我们在某个包内撰写一个class,仅仅是为了配合同包内的其他类工作,而且
我们不想再为了撰写说明文档给客户(不一定是现实意义的客户,可能是调用这个类的类)看而伤脑筋,而且有可能过一段时间之后 有可能会彻底改变原有的做法,并完全舍弃旧版本,以全新的版本代替。
4、class不可以是private和protected。(除了内部类之外)
5、一个class的构造方法设置成 private,好处就是不能随便创建对象,这就是单例模式,即不想让别人用new 方法来创建多个对象,可以在类里面先生成一个对象,然后写一个public static方法把这个对象return出去。例如:public static 类名 getInstance(){return 对象;}
。用static是因为你的构造函数是私有的,不能产生对象,所以只能用类名调用,所有只能是静态函数。
Java code
?
2、类成员变量的访问权限:
public:紧接public的属性任何类都可以访问到。可以直接使用 类名.属性名。但是从类的封装性上来考虑将一个类的属性定义成public一般很少使用, 在定义静态常量的时候通畅会这样定义。如:public
static final int PAGE_SIZE=10;
private:只有类本身内部的方法可以访问类的private属性,当然内部类也可以访问其外部类的private成员的。(属性和方法)
默认(friendly):包级可见,同一个包内的类可以访问到这个属性,可以直接使用 类名.属性名 来访问,但是从类的封装性特性来说很少这样使用类的属性的。
protected:关键字所处理的是所谓“继承”的观念。对于同一包的其他类,protected=默认,其它类可访问protected。对于不同包的类,如果存在继承关系,而baseClass存在protected属性,则可以被其自继承,而不同包的其他类 则不能访问类的protected属性。
3、类的成员方法的访问权限:
其从语法角度来讲,这些访问权限控制符作用于类的方法和作用于类的属性上的效果是一样的。
public:所有类可见。
private:只有同一类内部的方法可见,在有就是内部类也可以访问到。
默认(friendly):包内可见。
protected:继承可见。
4、访问权限存在的理由
(1). “让使用者无法碰触到他们不该碰触的东西。”这些东西仅供类的内部机制使用。将某些成员声明成private,对于使用者来说可以说是一种服务,
因为这样使用者可以知道哪些是他关注的哪些是不重要的,不需要关注,如此历来对于使用来说降低了对使用对象认识的难度。
(2).(最终要的理由)让程序设计者可以更动class内部运作方式,而无须担心波及到客户端程序。
(3). java的“访问权限修饰符”赋予classes开发者极具有价值的控制能力。身为classes开发者,如果你的任何改变可以完全不干扰你的使用者,你便可以安心改变你的底层实现,因为客户端程序员无法访问class的这一部分。
public:可以供所有的类访问。
默认(包访问权限):默认可以称为friendly但是,java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++。默认的访问权限是包级访问权限。
即如果写了一个类没有写访问权限修饰符,那么就是默认的访问权限,同一个包下的类都可以访问到,即可以实例化该类 ,new出实例。
(Java中 每个类在没有声明构造方法的前提下,会自动生成一个不带参数的构造方法)。
说明:
1、每个编译单元(类文件)都仅能有一个public class
2、public class的名称(包含大小写)必须和其类文件同名。
3、一个类文件(*.java)中可以不存在public class。
这种形式的存在的场景:如果我们在某个包内撰写一个class,仅仅是为了配合同包内的其他类工作,而且
我们不想再为了撰写说明文档给客户(不一定是现实意义的客户,可能是调用这个类的类)看而伤脑筋,而且有可能过一段时间之后 有可能会彻底改变原有的做法,并完全舍弃旧版本,以全新的版本代替。
4、class不可以是private和protected。(除了内部类之外)
5、一个class的构造方法设置成 private,好处就是不能随便创建对象,这就是单例模式,即不想让别人用new 方法来创建多个对象,可以在类里面先生成一个对象,然后写一个public static方法把这个对象return出去。例如:public static 类名 getInstance(){return 对象;}
。用static是因为你的构造函数是私有的,不能产生对象,所以只能用类名调用,所有只能是静态函数。
Java code
?
2、类成员变量的访问权限:
public:紧接public的属性任何类都可以访问到。可以直接使用 类名.属性名。但是从类的封装性上来考虑将一个类的属性定义成public一般很少使用, 在定义静态常量的时候通畅会这样定义。如:public
static final int PAGE_SIZE=10;
private:只有类本身内部的方法可以访问类的private属性,当然内部类也可以访问其外部类的private成员的。(属性和方法)
默认(friendly):包级可见,同一个包内的类可以访问到这个属性,可以直接使用 类名.属性名 来访问,但是从类的封装性特性来说很少这样使用类的属性的。
protected:关键字所处理的是所谓“继承”的观念。对于同一包的其他类,protected=默认,其它类可访问protected。对于不同包的类,如果存在继承关系,而baseClass存在protected属性,则可以被其自继承,而不同包的其他类 则不能访问类的protected属性。
3、类的成员方法的访问权限:
其从语法角度来讲,这些访问权限控制符作用于类的方法和作用于类的属性上的效果是一样的。
public:所有类可见。
private:只有同一类内部的方法可见,在有就是内部类也可以访问到。
默认(friendly):包内可见。
protected:继承可见。
4、访问权限存在的理由
(1). “让使用者无法碰触到他们不该碰触的东西。”这些东西仅供类的内部机制使用。将某些成员声明成private,对于使用者来说可以说是一种服务,
因为这样使用者可以知道哪些是他关注的哪些是不重要的,不需要关注,如此历来对于使用来说降低了对使用对象认识的难度。
(2).(最终要的理由)让程序设计者可以更动class内部运作方式,而无须担心波及到客户端程序。
(3). java的“访问权限修饰符”赋予classes开发者极具有价值的控制能力。身为classes开发者,如果你的任何改变可以完全不干扰你的使用者,你便可以安心改变你的底层实现,因为客户端程序员无法访问class的这一部分。
相关文章推荐
- Java复习总结:Java面向对象程序设计—异常的捕获及处理、包及访问控制权限
- Java中访问权限修饰符public protected private, 缺省默认权限的用法总结
- 2.24 Java基础总结 ①访问权限②static③静态方法④实例初始化块⑤静态初始化块
- Java中四种访问权限总结
- 关于Java访问权限的一些思考与总结
- JAVA访问权限修饰符用法总结
- Java中四种访问权限总结
- Java中几种访问权限总结
- java 访问权限使用总结
- Java中四种访问权限总结
- Java中访问权限修饰符public protected 缺省默认 private的用法总结(转)
- 自己总结了一份java访问权限表
- Java中访问权限修饰符public protected 缺省默认 private的用法总结
- Java编程思想——第六章 访问权限控制 学习总结
- Java访问权限修饰符friendly----同一个包内其它类可以访问(钦波总结大全)(转http://huiqinbo.javaeye.com/blog/577956)
- Java中几种访问权限总结
- java编程思想访问控制权限总结
- java中接口的定义与实现 Java中几种访问权限总结
- Java总结(二)——初始化与访问权限
- Java权限访问修饰符 亲测总结