Java访问权限修饰符
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访问权限修饰符的区别
Java有四种访问权限,其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符: private: Java语言中对访问权限限制的最窄的修饰符,一般称 ...
- Java访问权限修饰符详解
Java中的访问权限修饰符(Java关键字) 今天很皮的发现,自己现在竟然不会玩儿Java基础了,就翻看了一下自己的笔记,写一篇文章复习一下! 测试环境:Java运行环境,myEclipse. 测试前 ...
- java访问权限修饰符从大到小_程序员的术与道:道——Java修饰符之非访问控制修饰符...
Java提供了很多修饰符,主要分为访问控制修饰符和非访问控制修饰符.通常放在语句的最前端,用来定义类.方法.变量. 下面介绍一下Java提供的非访问控制修饰符. static 修饰符:修饰类方法和类变 ...
- 吃透Java基础一:Java访问权限修饰符
同类 同包 同包子类 不同包子类 不同包 public √ √ √ √ √ protected √ √ √ √ 包访问权限 √ √ √ private √ 下面看例子: base包下定义Father类 ...
- Java——类成员的访问权限修饰符(private、protected、public、default)
本文转载自:https://blog.csdn.net/qq_41420688/article/details/83348546 1. 作用 封装将数据和操作连接起来.封装的一个重要属性:访问控制. ...
- 学习大数据的第13天——Java面向对象(接口、分析参数返回值的类型不同时如何解决、包以及访问权限修饰符(public、protected、默认、private))
学习大数据的第13天--Java面向对象(接口.分析参数返回值的类型不同时如何解决.包以及访问权限修饰符(public.protected.默认.private)) 接口 接口的基本定义: 1.1.语 ...
- 学习Java的第五天 | 定义方法 | 引用数据类型——类 | 访问权限-修饰符 | 全局变量与局部变量 | toString | 构造方法 | 方法重载
前面提到的,冒泡排序,二分查找,我们有时候写代码可能不止要查到一种数组的数据,这时候我们就很需要想循环那样的结构,来帮我们解决代码冗余的情况. 我们前面使用的main方法,是一个java程序的入口,我 ...
- Java的访问控制修饰符_访问权限修饰符_访问权限修饰词
public > protected > (default) > private 1.public 修饰的,在任何地方都可以访问 2.protected 修饰的,在类内部.同一个包. ...
- java子承父业(继承,访问权限修饰符,super,重写,final)
1.继承 : 子承父业 目的 : 提高代码的复用性 作用: 子类一旦继承父类,有权使用父类中的成员,可以在子类中定义子类独有的内容 定义: 子类 extends ...
最新文章
- WebStorm 运行Rect Native 项目
- VMware15克隆虚拟机Centos
- Jmeter使用jp@gc-stepping thread group做性能测试
- c语言节点导入数据编程,编程小白。用C语言计算SR E2E ARQ模式下节点的数据分析...
- 九、表达式求值(1)
- 作者:彭保(1979-),男,博士,深圳信息职业技术学院副教授,《大数据》深圳市大数据发展动态调研组成员。...
- ClassNotFoundException Com Sun Jersey Spi Container Servle
- 《Android开发从零开始》——26.数据存储(5)
- Juniper SSG 550M HA配置文档
- 关于Jbulder2006的问题
- 最适合写python程序的软件
- (从源码解答)Failed to instantiate [org.elasticsearch.client.transport.TransportClient]
- 深入理解Nginx负载均衡和反向代理_学习笔记
- 金沙滩开发板单片机学习笔记(2)
- 优酷动漫押注“新国风”,能否追回被B站、腾讯赶超的那些年?
- 面试官问:淘宝七天自动确认收货,让你设计,可以怎么实现?
- Supervised Contrastive Learning
- 【申博攻略】四.博士申请的个人自述怎么写
- mac qq 用户信息文件夹
- 【数学】对向量的求导和Jacobian矩阵的几何意义与Hessian矩阵