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);
    }
}

在这里插入图片描述


由上面两图可以看到:在另一个类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);
        }
}

当类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);
        }
}

在这里插入图片描述
在这里插入图片描述
由上面两图可以看出:在同一个包中,一个类中的友好变量和友好方法,在另一个类中可以通过类名来操作这个成员变量和调用这个方法。而在不同的包中,如果源文件使用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);
        }
}

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

5.public类和友好类

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

public class A{
......

}

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

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

class A{
......
}

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

访问权限表

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

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值