18、java的访问权限

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_18077275/article/details/89761852

1、访问权限

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

用关键字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);   //非法
    }
}

3、共有变量和共有方法

用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);   //合法
    }
}
 
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); //合法
    }
 
5、友好变量和友好方法

不用private、public、protected修饰的成员变量和方法被称为友好变量和友好方法。
我们在任何一个类中用类Tom 创建了一个对象后,如果这个类和类Tom在同一个包中,那么该对象能访问自己的友好变量和类中的友好方法。
class Tom { 
    float weight;              
    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); //合法
    }
 
 

 
 6、public类和友好类

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

7、实例代码

src\com\blue\A.java

package com.blue;

class A {
    private void speak(){
        
    }
}

src\com\blue\Demo20 .java

package com.blue;

public class Demo20 {

    public static void main(String[] args) {
        A a = new A();
    }

}

src\com\test\B.java

package com.test;

class B {
    public void speak(){
        
    }
}
 


 

 


 

猜你喜欢

转载自blog.csdn.net/qq_18077275/article/details/89761852