当前位置:   article > 正文

java类和对象——访问权限_学习-java类和对象之访问限制

学习-java类和对象之访问限制

定义

类在定义声明成员变量和方法时,可以用关键字private、protected和public来说明成员变量和方法的访问权限,使得对象访问自己的的变量和使用方法受到一定的限制。
访问权限是指类创建的对象是否可以通过 “ . ” 运算符访问分配给自己的变量、是否可以通过 “ . ” 运算符调用类中的是实例方法和类方法。

1.私有变量和私有方法(privated)

用关键字private修饰的成员变量和方法被称为私有变量和私有方法。如:

 public class Animal {
 //name被修饰为私有的String类型的变量
    private String name ;

//方法eat是私有方法
    private void eat (String food){
        System.out.println(name + "正在吃" + food);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述


由上面两图可以看到:在另一个类main中用类Animal创建一个对象后,该对象不能访问自己的私有变量和私有方法,会报错。idea也提示方法eat在类Animal中被private修饰。则:
对于私有成员变量或方法,只有在本类中创建该类的对象时,这个对象才能访问自己的私有成员变量和类中的私有方法。

2.共有变量和共有方法(public)

用public修饰的成员变量和方法被称为共有变量和共有方法。如:

public class Animal {
        //name被修饰为public的String类型的变量
        public String name ;

        //方法eat是public方法
        public void eat (String food){
            System.out.println(name + "正在吃" + food);
        }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

当类Animal中的变量和方法被public修饰后,在另一个类main中如下图:
在这里插入图片描述
可以看到,此时可以正常运行。表明:在同一个包中,一个类中被public修饰的变量和方法,在另一个类中可以通过类名来操作这个成员变量和调用这个方法。

那不同包呢?如下图:
在这里插入图片描述
此时,可以正确输出。则可以看出,在不同包中,也可以通过类名来操作被public修饰的成员变量和调用这个方法。

3.友好变量和友好方法(default)

不用private、public、protected修饰符的成员变量和方法被称为友好变量和友好方法。如:

public class Animal {
        //name是友好的String变量
         String name ;

        //方法eat是友好方法
         void eat (String food){
            System.out.println(name + "正在吃" + food);
        }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述
在这里插入图片描述
由上面两图可以看出:在同一个包中,一个类中的友好变量和友好方法,在另一个类中可以通过类名来操作这个成员变量和调用这个方法。而在不同的包中,如果源文件使用import语句引入了另一个包中的类,并用该类创建了一个对象,那么该类的对象将不能访问自己的友好变量和友好方法

4.受保护的成员变量和方法(protected)

用protected修饰的成员变量和方法被称为受保护的成员变量和受保护的方法,如:

public class Animal {
        //name被修饰为protected的String类型的变量
         protected String name ;

        //方法eat是protected方法
        protected void eat (String food){
            System.out.println(name + "正在吃" + food);
        }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述
在这里插入图片描述
由上两图可以看出,在同一个包中,一个类中的友好变量和友好方法,在另一个类中可以通过类名来操作这个成员变量和调用这个方法。而在不同的包中则不行。

5.public类和友好类

类声明时,如果关键字class前面加上关键字public,就称这样的类是一个public类,不能用protected和private修饰类。如:

public class A{
......

}
  • 1
  • 2
  • 3
  • 4

可以在任何另一个类中使用public类创建对象。

而一个类如果不加public修饰,如:

class A{
......
}
  • 1
  • 2
  • 3

这样的类被称为友好类。另一个类使用友好类创建对象时,必须保证他们在同一个包中

访问权限表

假设对象a是类A创建的,则对象对成员的访问权限表如下:
(访问权限由左至右增大)
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/1004812
推荐阅读
相关标签
  

闽ICP备14008679号