`
fcmfcm01
  • 浏览: 66602 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java 作用域 public private default protected 的差别

阅读更多

在Java中有四种不同的作用域,分别是 public protected default 和private,这四种不同的作用域的限制由前到后逐渐的增加。

现在来看看public的作用域,在所有的作用域中,public可谓是最宽松的,在编写类文件的时候,只要该类以public关键字修饰,那么这个类的类文件就必须以该类的简单类名来命名。在类的内部,被它修饰的无论是参数还是方法,都可以在任何地方访问的到(当然前提是这个类是公开的,就是上文说到的是以public关键字修饰的类)。

而对于protected作用域来说,它的限制就严格了一点,它只允许本类、同一个包内的其他类(这个类不是它的子类)或者它的子类使用被它修饰的方法或者参数(以protected修饰的类貌似还没遇到过,O(∩_∩)O~,有用过的给个提醒),子类使用父类中的protected方法或者参数时不受包位置的影响,这就意味着,即使位于不同包的类想要调用它父类的protected方法或者参数也是被允许的。

对于default作用域(即不加任何的关键字修饰的方法或者参数),它的限制就严格的多了,除了本类和本包中的类能访问以外,就是不在同一个包内的它自己的子类也不能访问(有点像老子跟儿子分家了,老子的东西就不能给儿子用了一样O(∩_∩)O~)。

private作用域在这四种之内是最为严格的,除了它自己,哪怕是同包内的其他类都不允许使用。通常我们使用这个关键字来实现对类的方法的隔离,它意味着,除了本类的方法能够调用这个私有化成员以外,其他的包括同包中的类和子类都不能访问这些个私有的成员。(肥水不流外人田嘛,能被private修饰的东东怎么说也是相当有价值的了)。

具体的信息看下图:

作用域 当前类 同一包内 子孙类 其他包
public
protected ×
default × ×
private × × ×

7
1
分享到:
评论
3 楼 hety163 2014-10-14  
2 楼 yaoneng 2012-05-22  
哈哈。。楼上的经典~~
1 楼 lf84730258 2010-05-06  
public  是众生平等
protect 是 肥水不流外人田
default 是 大人可以小孩不行
private 是 生是我家人,死我家鬼.

相关推荐

    java中public、protected、默认、private关键字

    Java 中有四种访问修饰符:public、protected、默认(default)和 private。这四种修饰符的作用域从大到小依次降低。 1. public 修饰符 public 修饰符是最宽松的访问修饰符,它允许从任何地方访问修饰的成员,...

    java四种作用域的说明.doc

    其中,最为基础且核心的概念之一便是作用域,具体包括`public`、`private`、`protected`以及默认(通常被非正式地称为`friendly`)。本文将深入探讨这四种作用域的具体含义及应用场景。 #### 二、作用域概述 - **...

    Java的外部类为什么不能使用private和protected进行修饰的讲解

    Java是一种面向对象的编程语言,它的类修饰符有public、default、private、protected等,但是为什么Java的外部类不能使用private和protected进行修饰呢?今天我们就来探讨这个问题。 首先,我们需要了解Java的类...

    java面经八股文整理

    Java 语言中的作用域有四种:public、private、protected 和默认(default)。public 修饰的元素可以被所有类访问,private 修饰的元素只能被当前类访问,protected 修饰的元素可以被当前类和其子类访问,默认修饰的...

    03Java类定义.pdf

    Java 中有四种访问修饰符:public、private、protected 和 default。public 修饰符表示变量或方法可以被任何类访问,private 修饰符表示变量或方法只能被同一个类访问,protected 修饰符表示变量或方法可以被同一个...

    浅析面向对象语言C_与Java区别_王艳娟1

    4. **访问控制符**:Java有public、protected、default、private四种,不指定则默认为default;C++有public、protected、private三种,未指定默认为private。 5. **运算符**:Java不支持作用域运算符“::”,也不...

    JAVA 综合面试题.pdf

    2. 作用域 public,protected,private,以及不写时的区别: Java 中的访问修饰符有四种:public、protected、private、default。public 表示公共的,任何地方都可以访问;protected 表示保护的,子类可以访问;...

    JAVA 综合面试题.doc

    2. 作用域public, protected, private,以及不写时的区别:public 为公共访问权限,protected 为保护访问权限,private 为私有访问权限,不写时默认为default访问权限。 3. 编程输出图形:可以使用 Java 的图形库或 ...

    java面试题(题库全).doc

    2. 作用域 public,private,protected,以及不写时的区别? 作用域的区别在于它们的可见性和访问权限。public访问权限最高,所有类都可以访问。protected权限次之,只有同包的类和子类可以访问。default权限只能在同...

    2022年最新java面试题目.docx

    Java 中的作用域包括 public、private、protected 以及不写时(default),它们用来限定类组员的使用权限。private 表示类中限定为 private 的组员只能在这个类中被访问,在类外不可见。default 表示假如没有访问...

    计算机Java核心编程笔记

    Java修饰符包括public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native等。 七、Java流程控制 Java流程控制语句包括package、import、throw、throws、...

    java期末简答题复习

    public 具有最宽松的作用域范围,protected 具有比 default 和 private 更宽松的作用域范围。 Java 中的继承机制可以实现代码重用和构建类层次结构。Java 中的接口和抽象类可以定义类之间的契约,使得多个类能够...

    最新java面试题目.docx

    作用域 public、private、protected 以及不写时(default)有什么区别?访问控制符可以控制类成员的使用权限。private(私有的):类中限定为 private 的成员只能在这个类中被访问,在类外不可见。default(无修饰符...

    java面试题,从基础到框架再到设计

    2. 作用域 public,private,protected,以及不写时的区别? 答:区别如下: | 作用域 | 当前类 | 同包子孙类 | 其他 | | --- | --- | --- | --- | | public | √ | √ | √ | | protected | √ | √ | × | | ...

    Java常见面试题集--面试题全面综合.pdf

    #### 一、作用域(public, private, protected, 不写)的区别 在Java中,类成员(如方法、变量)的可见性可以通过四种不同的访问修饰符来控制:`public`、`private`、`protected` 和 默认(也称为 `friendly` 或 `...

    北邮高级语言程序设计(基于Java)第三次阶段作业.docx编程资料

    - **描述**: Java中提供了四种访问修饰符:`public`、`protected`、`private` 和默认修饰符(也称为包私有)。这些修饰符定义了成员的可见范围。`public` 成员在任何地方都可以访问,`protected` 成员可以被同一个...

    应聘Java笔试时可能出现问题及其答案.pdf

    Java中的作用域关键字有public、private、protected和不写时的默认作用域(通常称为friendly或default)。它们决定了类、方法和变量的访问级别。具体来说: - public:可以被任何其他对象访问。 - private:只能在同...

    java开发人员常见的面试题

    作用域public,private,protected,以及不写时的区别?** 作用域关键字用于控制成员变量或方法的可见性范围。以下是各种作用域的区别: - **public**: 公有访问修饰符,表示成员变量或方法可以在任何地方被访问。 -...

Global site tag (gtag.js) - Google Analytics