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

一张图说懂java中 private default protected public 的区别

private:修饰完全隐藏类的成员,这样,就不能从类的外边直接访问他们,我们提供set和get方法,保证类中数据域的安全。default:指默认修饰符,什么都不加,实际上它限制的范围就是一个包内可以...
  • yangbodong22011
  • yangbodong22011
  • 2015年11月08日 21:03
  • 4774

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

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

Java修饰符private、protected、public和default的区别

Java修饰符private、protected、public和default的区别
  • pl1612127
  • pl1612127
  • 2016年01月07日 18:26
  • 3135

Java中 pubic 、 protected 、 default 、 private 的作用范围及区别

下表为Java访问控制符的含义和使用情况           类内部 本包 子类 外部包 public √ ...
  • u012843873
  • u012843873
  • 2016年05月03日 09:34
  • 2064

用例子理解Java权限修饰符(private,default,protected和public)

权限修饰用于限定对象起作用的范围,也就是,在什么地方我们能够访问到这个对象,在什么地方我们访问不到这个对象了,这里的对象是指属性、方法、类和接口。 一、权限修饰符作用于属性和方法。private...
  • l294265421
  • l294265421
  • 2015年03月12日 11:23
  • 2517

Java学习之访问权限Public,Private,Protected,Default的作用域

1.Default:默认的权限,当方法或域名没有使用权限限制符时,其磨人具有default权限,即是包权限,只有在该包下可见2.public权限:在方法或域面前显示的给定public限定时候,其具有该...
  • u014410695
  • u014410695
  • 2016年06月17日 10:02
  • 737

public、private和protected的区别

public:声明方法和属性可以被随意访问。 Protected:声明的方法和属性只能被类本身和其继承子类访问。 private:只能被定义属性和方法的类访问。 private 是完全私有的...
  • phenixyf
  • phenixyf
  • 2014年12月09日 14:39
  • 2369

java基础--->管理权限public protected private default

Java中的管理权限一共有4类,其中有public、protected、default、private。    1、public(公共访问权限)权限具有最大的权限,其可以修饰类以及类中的成员变量...
  • qw_xingzhe
  • qw_xingzhe
  • 2014年07月03日 07:18
  • 463

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

经过本人的过滤分析,理解思路如下: 1、从private开始由小到大分为四个范围程度,存取权限逐渐递增; 2、private修饰的成员变量及方法只能在本类中使用,可直接调用; 3、到defa...
  • akkaruta
  • akkaruta
  • 2016年09月10日 22:27
  • 372

java中public,private,protected,(default)关键字

开发内部项目或者单独模块(非公共模块)时,对访问权限的修饰符的使用可能不是很注意,但在公共代码的书写或者是sdk一类的开发,访问修饰符就显得比较重要了。下面对public,protected,defa...
  • u014727260
  • u014727260
  • 2017年02月09日 21:54
  • 943
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:public private protected default 区别
举报原因:
原因补充:

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