Java语言基础22--访问权限

Posted 瘦西湖の咸鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java语言基础22--访问权限相关的知识,希望对你有一定的参考价值。

访问权限

 

当用一个类创建了一个对象之后,该对象可以通过“.”运算符操作自己的变量、使用类中的方法,但对象操作自己的变量和使用类中的方法是有一定限制的。  
所谓访问权限是指对象是否可以通过“.”运算符操作自己的变量或通过“.”运算符使用类中的方法。 
访问限制修饰符有private、protected和public,都是Java的关键字,用来修饰成员变量或方法。 

一、私有变量和私有方法

用关键字private修饰的成员变量和方法称为私有变量和私有方法。 
对于私有成员变量或方法,只有在本类中创建该类的对象时,这个对象才能访问自己的私有成员变量和类中的私有方法。
 class Tom {
    private float weight; 
    private float f(float a,float b){  
        return a+b;
    }     
}
class Jerry {
   void g() {
       Tom cat=new Tom();
       cat.weight=23f;    //非法
       float sum=cat.f(3,4);   //非法
    }
}

 

二、共有变量和共有方法

用public修饰的成员变量和方法被称为共有变量和共有方法 。 
我们在任何一个类中用类Tom 创建了一个对象后,该对象能访问自己的public变量和类中的public方法(也可以通过类名来操作成员变量、方法) 。
class Tom {
    public float weight;  
    public float f(float a,float b) {  
         return a+b;
    }  
}
class Jerry {
  void g() { 
        Tom cat=new Tom();
         cat.weight=23f;     //合法
         float sum=cat.f(3,4);   //合法
    }
}

 

三、受保护的变量和方法

用protected修饰的成员变量和方法被称为受保护的成员变量和受保护的方法 。
我们在任何一个类中用类Tom 创建了一个对象后,如果这个类和类Tom在同一个包中,那么该对象能访问自己的protected变量和类中的protected方法。
class Tom { 
    protected  float weight;              
    protected float f(float a,float b) {   
        return a+b;
    }     
}
class Jerry {  
   void g() {
        Tom cat=new Tom();
        cat.weight=23f;      //合法
        float sum=cat.f(3,4); //合法
    }

 

四、友好变量和友好方法

不用private、public、protected修饰的成员变量和方法被称为友好变量和友好方法。
我们在任何一个类中用类Tom 创建了一个对象后,如果这个类和类Tom在同一个包中,那么该对象能访问自己的友好变量和类中的友好方法。
class Tom { 
    protected  float weight;              
    protected float f(float a,float b) {   
        return a+b;
    }     
}
class Jerry {  
   void g() {
        Tom cat=new Tom();
        cat.weight=23f;      //合法
        float sum=cat.f(3,4); //合法
    }

 

五、public类与友好类

类声明时,如果在关键字class前面加上public关键字,就称这样的类是一个public 类 。
可以在任何另外一个类中,使用public类创建对象。 
如果一个类不加public修饰,这样的类被称作友好类。
在另外一个类中使用友好类创建对象时,要保证它们是在同一包中
注:
(1)不能用protected和private修饰类
(2)访问限制修饰符按访问权限从高到低的排列顺序是:public、ptotected、友好的、private。

 































































以上是关于Java语言基础22--访问权限的主要内容,如果未能解决你的问题,请参考以下文章

Java基础系列5:访问控制权限

1.27 Java基础总结 ①访问修饰符访问权限②类和方法的基本声明和使用1.27 Java基础总结 ①访问修饰符访问权限②类和方法的基本声明和使用

什么是Java类的访问权限?

JAVA_SE基础——59.权限访问修饰符

Java基础之访问权限修饰符

Java 访问权限修饰符 与 非访问权限修饰符