`

java作用域public ,private ,protected 及不写时的区别

    博客分类:
  • Java
阅读更多

public是公用的,其他类都可调用.

private是私有的,是最严格的,只有当前类(当前JAVA文件)可以调用,甚至继承当前类的子类都不能调用.

protected解决了private的子类不能调用的缺陷,可以理解为一个继承系下的可以调用

 

打个比方: PUBLIC相当于外人可以调用.private相当于只家庭内可以调用,protected相当于亲戚可以调用.

 

默认/缺省,个人认为是JAVA比较失败的设计.很多开发组都明确禁止缺省修饰符.

缺省的含义: 包内可以调用,即只要是同一个包内,都可以调用. 局限性比protected 大,比public 小. 从'外人'的角度看,类似于public,但又比public  多了个不伦不类的包限定.

 

 

作用域     当前类 同一package   子孙类     其他package 
         
public       √     √  √ 
         
protected    √    × 
         
friendly     √     × × 
         
private      ×    × × 

 

 

作用域     当前类    同一package   子孙类     其他package 
         
public       √             √                 √              √ 
         
protected    √             √                √             × 
         
friendly     √             √                 ×              × 
         
private      √             ×                 ×              × 

 

 

分享到:
评论

相关推荐

    说出作用域public, private, protected,以及不写得区别

    这四个作用域的可见范围如下表所示。 说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly。 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly ...

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

    Java 访问修饰符(public、protected、默认、private) Java 中的访问修饰符是 Java 语言中一种基本概念,用于控制类、方法、变量、构造方法等成员的访问权限。 Java 中有四种访问修饰符:public、protected、默认...

    delphi的Public,Private,Protected,Published作用域

    ### Delphi中的Public,Private,Protected,Published作用域详解 #### 一、引言 在面向对象编程中,封装是核心概念之一,它通过限制对类内部数据的直接访问来提高代码的安全性和可维护性。Delphi作为一种强大的...

    JS中的public和private对象,即static修饰符

    在C#等静态类型语言中,public、private和static是访问修饰符,用于控制类成员的可见性和作用域。而在JavaScript中,由于其原型继承的特性,我们通常使用函数作用域和闭包来模拟这些行为。 下面我们将基于提供的...

    java四种作用域的说明.doc

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

    C++ 类访问控制public、private、protected探讨.pdf

    它们的作用是限制类的成员(数据成员和成员函数)在不同作用域内的可访问性,从而实现数据封装和信息隐藏。 1. `public`:公共成员。类的`public`成员可以在类的任何地方,包括类的外部,被自由地访问。在给定的...

    C++中的三种继承public,protected,private详细解析

    C++是一种面向对象的编程语言,它提供了三种不同的继承方式:public、protected和private,每种方式对基类成员在子类中的访问权限有不同的影响。理解这些继承方式及其组合结果对于编写可维护和安全的代码至关重要。 ...

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

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

    应聘JAVA笔试时可能出现问题及答案

    作用域 public, private, protected 以及不写时的区别** - **public**:类成员可以在任何地方被访问,包括不同包中的其他类。 - **protected**:类成员只能在同一个包中的类或者不同包中该类的子类中访问。 - **...

    最新最全Java面试题汇总

    最新最全Java面试题汇总 作用域public,private,protected,以及不写时的区别 GC是什么? 为什么要有GC

    java面经八股文整理

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

    java成员变量和方法的public等访问限定符的访问权限.doc

    本文将详细讲解 Java 中的访问限定符,包括 public、private、protected 和默认访问权限的作用域。 public 访问权限 public 访问权限是最宽松的访问权限,表示该成员变量或方法可以被任何类访问,无论它在什么包中...

    java各大公司面试题详解(有案例分析哦)

    作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 不写时...

    Java面试题必备——Java基础知识部分汇

    Java中的作用域包括public、private、protected和friendly四种,默认情况下不写时默认为friendly。public类型可以在任何地方被访问,private类型只能在当前类中被访问,protected类型可以在当前类和同一package中的...

    JAVA类与对象及数组习题

    JAVA不支持多重继承,但是可以通过接口和内部类实现多重继承的效果。 3. 变量声明: 在JAVA中,变量声明需要指定类型,例如`public final int MAX_LENGTH=100`。 4. 变量的作用域: JAVA中的变量可以是实例变量或...

    java笔试题集

    1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 不写时...

    最近收集的java笔试面试题

    1. 作用域 public,private,protected,以及不写时的区别 Java 中的访问权限有四种:public、private、protected 和 friendly。其中,public 表示公开的,任何地方都可以访问;private 表示私有的,只有在同一个类中...

    JAVA 综合面试题.doc

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

    Java面试宝典

    一. Java基础部分 7 1、一个".java"源文件中是否可以包括多个类...17、请说出作用域public,private,protected,以及不写时的区别 13 18、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 14

Global site tag (gtag.js) - Google Analytics