[Java] Protect, Private and Public的区别

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

(2014-03-21 22:29:14)

转载▼

标签:

java

java修饰符

it

 

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

(2)对于protected修饰符,它主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西。

(3)对于default来说,有点的时候也成为friendly(友员),它是针对本包访问而设计的,任何处于本包下的类、接口、异常等,都可以相互访问,即使是父类没有用protected修饰的成员也可以。

(4)对于private来说,它的访问权限仅限于类的内部,是一种封装的体现,例如,大多数的成员变量都是修饰符为private的,它们不希望被其他任何外部的类访问。

下表为Java访问控制符的含义和使用情况

   类内部  本包  子类 外部包 
public    √  √  √  √
protected   √  √  √  ×
default    √  √  ×  ×
 private   √  ×  ×  ×

注意:Java的访问控制是停留在编译层的,也就是它不会在.class文件中留下任何的痕迹,只在编译的时候进行访问控制的检查。其实,通过反射的手段,是可以访问任何包下任何类中的成员,例如,访问类的私有成员也是可能的。

区别:

(1)public:可以被所有其他类所访问。

(2)private:只能被自己访问和修改。

(3)protected:自身,子类及同一个包中类可以访问。

(4)default(默认):同一包中的类可以访问,声明时没有加修饰符,认为是friendly。

------------------

【Java】Protect, Private and Public的区别

Modifier                 Class    Package    Subclass    World

public                     1         1           1          1

protected                  1         1           1          0

no modifier                1         1           0          0

private                    1         0           0          0

不写时默认为friendly

1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用

2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。

3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。

作用域 当前类 同一package 子孙类 其他package

public       √ √ √ √

protected √ √ √ ×

friendly     √ √ × ×

private     √ × × ×

不写时默认为friendly

http://jingyan.baidu.com/article/63f236281f5f650209ab3d5f.html

java中public与private还有protect的区别

  • |
  • 浏览:3954
  • |
  • 更新:2013-11-03 15:05

java中public与private还有protect的区别

方法/步骤

  1. 先从其作用范围说起:priavte只能在其自己的定义类中使用,也不能够在其子类中使用,而public可以在所有的类中使用。protect能够在自已的定义类以及其子类中使用。

  2.  

    从这张图我们可以看到。在其的子类当中protect是可以用的,而private的引用是出错的。所以这里验证了上面的那句话。

  3.  

    接下来,我们再看看public到底行不行。从这里的试验,我们可以看出,public中也是可以用的。所以说现在范围最小的就是private了。

  4.  

    以下为试验代码,你可以试试。

    package baidujinyan;

    public class Baidujingyan {

    public void mytry(){

    Baidu mybaiBaidu=new Baidu();

    String mynameString=mybaiBaidu.mynameString;

    String myageString=mybaiBaidu.myage;

    String mymom=mybaiBaidu.mymother;

    }

    }

    package baidujinyan;

    public class Baidu {

    protected  String mynameString="jackiewillen";

    private String myageString="21";

    public String mymother="Mom";

    /**

    * @param args

    */

    public static  void main(String[] args) {

    // TODO Auto-generated method stub

    }

    }

时间: 2024-11-03 09:18:44

[Java] Protect, Private and Public的区别的相关文章

Java中private、public、static、protetced、abstract、final

abstract (抽象的) 1.abstract可以修饰类和成员方法,被abstract修饰的类称为抽象类,被abstract修饰成员方法叫抽象方法.抽象类不一定有抽象方法,但拥有抽象方法的一定是抽象类; 2.被abstract修饰的类不能直接实例化,需要通过子类实现,所有抽象类一定有子类. 3.继承抽象类的子类必须重写抽象类中的被abstract修饰的抽象方法,如果不继承就必须把自己变成抽象的子类. final (最终的) final可以修饰类,成员变量,成员方法,局部变量/形参. 2.fi

Java的访问级别:public(公共),protected(保护),private(私有)

Java的访问级别包含两部分:1)对类的访问级别和    2)对成员访问级别. 对于类的访问级别,关键字可以是public或没有明确的修饰符(包私有). 对于成员的访问级别,关键字可以是public (公共), protected(保护) ,package-private包私有(没有明确的修饰符),或private私有 . 下表总结了针对Java各成员的不同修饰符的访问级别.访问级别决定了字段和方法的可访问性. 它有4个层次:public(公共),protected(保护),package-pr

再学Java 之 private、protected、public和default的作用域

前言:如果提到protected的访问控制级别,您的第一反应是"只能是子类才可以访问",那么您很可能需要往下看. 首先,大致介绍一下各个访问控制符的访问控制级别(具体的介绍很多大牛的博文都有介绍,我就不细说了,可以点击这里查看),如下图:   private default protected public 同一个类中 √ √ √ √ 同一个包中   √ √ √ 子类中     √ √ 全局范围内       √ 在这里,很多人都存在一个误区,就是,认为protected修饰的方法只能

JAVA修饰符类型(public,protected,private,friendly)

JAVA修饰符类型(public,protected,private,friendly) public的类.类属变量及方法,包内及包外的不论什么类均能够訪问:protected的类.类属变量及方法,包内的不论什么类,及包外的那些继承了此类的子类才干訪问:private的类.类属变量及方法,包内包外的不论什么类均不能訪问:假设一个类.类属变量及方法不以这三种修饰符来修饰,它就是friendly类型的,那么包内的不论什么类都能够訪问它,而包外的不论什么类都不能訪问它(包含包外继承了此类的子类),因此

浅析java修饰符之public default protected private static final abstract

浅析java修饰符之public default protected private static final abstract 一   修饰符的作用:用来定义类.方法或者变量,通常放在语句的最前端 二   分类(大致分两类) 1.访问修饰符,包括:public default protected private 2.非访问修饰符,包括:static final abstract 三 访问修饰符--Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java支持4种不同的访问权

C++类:private、public、friend、protected的区别

private和public的作用是让编译器帮你检查某些模块是否使用了他没权限使用的模块,也就是生成可执行代码的时候做权限检查.比如,公司里各个部门有自己私有的信息,财务部可以看所有员工工资,而销售部不可以,普通员工也不可以. 可不可以访问都是认为规定的,而且在写代码的时候程序是不会执行的,因此需要在生成代码的时候做一些检查,就像语法错误在编译的时候被检查出来一样,因为人规定了代码该如何写.访问控制也是在编译的时候检查,c++采用了private,public,protected,以及frien

PHP中的private和public还有protected的区别

最近H5项目繁忙,没空写PHP的学习心得.今天补上: 在接触PHP的最开始,我首先是看了PHP的源代码,PHP的源代码大致分四层:SAPI:接口层.main业务层.zend.以及扩展层EXT:这就是我对它的一个印象:废话少说, PHP中private和public还有protected的区别: 顾名思义,如果你有记得高中英语,那么就很容易理解这三个单词的意思了, ①:public 表示全局,类内部外部子类都可以访问: ②:private表示私有的,只有本类内部可以使用: ③:protected表

[学习笔记]Java的访问指示符public,protected,private,缺省的作用域

0.引言 Java的访问指示符public,protected,private,缺省可以用来修饰类和方法. 1.作用域如下 public: 其它类都能访问此类或方法 protected: 为继承而生的,子类可以访问父类该修饰的方法 private: 为类自己所用,一般修饰成员变量 缺省: 同一个包内可用("友好"类) 2.同一个java文件里面若有多个类 (1) 每个编译单元(文件)都只能有一个public 类.每个编译单元有一个公共接口的概念是由那个公共类表达出来的.根据自己的需要,

public/protect/private和公有继承/保护继承/私有继承的简单理解

一.先来看一下没有继承的情况 类中的变量访问: (1)类内访问方式:通过public成员函数访问 (2)类外访问方式:直接访问 表 1 class A { public: int a; protected: int b; private: int c; public: int getAll(){ return a + b + c; } }; int main() { A testA; //类外访问方式 testA.a; testA.b; testA.c; //类内访问方式 testA.getAl