public private protected default 区别

转载 2015年07月07日 15:01:16

明明很简单的问题,看了很多遍总是记不住,当时记住了,过两天就又忘了,在博客里写下来,让自己能常看看。
注:本文是转载的原文地址

在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes(即同一个包),认为都是自己的朋友friendly。
1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
4、default:java的默认访问权限,当没有使用上面提到的任何访问限定词时,就使用它,这种权限通常被称为包访问权限,在这种权限下,类可以访问在同一个包中的其他类的成员,也即可以访问我们前面说的朋友,在包之外,这些成员如同指定了private。

这几天在看看java基础部分,有一个概念一直比较模糊就是java 变量作用域的修饰的作用范围;也看了一些网上资料不过说的不够精确。这里整理一下:
public:类本身和任何包的任何类都访问
private 只有类本身可以访问,其他类想访问可以通过该类的成员方法访问如getter/setter
protected:保护的,这个和缺省的比较容易混淆,记住最主要区别是:protected可以在不同包的子类被访问,而friendly不可以。
protected可以在类本身、同包的子类,不同包的子类,同包的非子类 被访问
缺省的:可以在类本身,同包的子类,同包的非子类 被访问。

Public,protected,private解析
Public成员可以被同一个类或同一个包或不同包下的类都可以访问。
Protected成员可以被同一个类或同一个包下的类可以访问,不能被不同包下的类访问。
Private成员可以被于同一个类访问,不能被同一个包或不同包下的类访问。

public private 等的区别

特别说明一点protected在不同包子类下为yes的情况:
包外子类有权访问父类成员是什么意思?它指子类继承该成员。 然而,这不意味着包外子类能够使用父类实例的引用访问该成员。换句话说,保护=继承。保护不是指子类能够处理受保护的父类成员,就好像它是公有的那样。因此,如果包外子类获得父类引用,该子类不能在父类引用上使用点运算符来.访问受保护的成员。子类只能通过继承看到受保护的成员。

相关文章推荐

public、private、protected、default 访问权限的区别以及其它的Java修饰词

Java中public、private、protected 访问权限的区别 java平台中的public,protected,private是Java里用来定义成员的访问权限的,另外还有一种...

简析private、protected、public、default的区别

(1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。 (2)对于protected...
  • dnwxwj
  • dnwxwj
  • 2015年10月17日 10:38
  • 368

Java中的public、protected、default和private的区别

(1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。 (2)对于protected修...

Java中的private、protected、public和default的区别

返回博客列表 原 Java中的private、protected、public和default的区别 偶尔大白 偶尔大白 发布时间: 2015/04/19 20:10 阅读: 23314 收藏...

java中public, default, protected, and private的区别?

java中public, default, protected, and private的区别? 今天开始写第一篇博客,其实想写博客的想法有很久了 ,但是作为一个在校学生,可能写出来的质量不是很高。但...

Java中说明private,protected,public和default的区别

除了default以外,其他都是Java语言的关键字。default代表的是对类成员没有进行修饰的情况。它本身也代表了一种访问控制符。对于它们4中访问控制符来说,它们都可以修饰类的成员(包括静态和非静...

public、private、protected、default的区别

在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes(即同一个包),认为...

Java中private、protected、public和default的区别

有时候开发久了就会忘记一些基础的知识,经常忘记,这里记录一下。public: 具有最大的访问权限,可以访问任何一个在classpath下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的...

Java修饰符private,default,protected,public 区别的再辨识

经过本人的过滤分析,理解思路如下: 1、从private开始由小到大分为四个范围程度,存取权限逐渐递增; 2、private修饰的成员变量及方法只能在本类中使用,可直接调用; 3、到defa...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:public private protected default 区别
举报原因:
原因补充:

(最多只允许输入30个字)