访问修饰符

Posted yao-299

tags:

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

成员变量有四种修饰符
private 私有的
package/friendly/default 不写
protected 受保护的
public 公共的

1、private  私有的

使用private修饰属性
自身:是可以访问的
同包子类:不能继承
不同包子类:不能继承
同包类:不能访问
其他包类:不能访问

2、package/friendly/default 不写

public class Hero {

    private int id;
 
    String name;
 
    // 无修饰符的属性 hp
    // 自己可以访问
 
    // 同包子类可以继承
    // 不同包子类不能继承
 
    // 同包类可以访问
    // 不同包类不能访问
    float hp;
 
    float armor;
 
    int moveSpeed;
 
 }
 
3、protected受保护的
public class Hero {
    private int id;
 
    String name;
 
    // protected饰符的属性 hp
    // 自己可以访问
 
    // 同包子类可以继承
    // 不同包子类可以继承
 
    // 同包类可以访问
    // 不同包类不能访问
    protected float hp;
 
    float armor;
    int moveSpeed;
 
 }
 
4、public公共的
public class Hero {
    private int id;
 
    // public的属性 name
    // 自己可以访问
 
    // 同包子类可以继承
    // 不同包子类可以继承
 
    // 同包类可以访问
    // 不同包类可以访问
    public String name;
 
    protected float hp;
 
    float armor;
 
    int moveSpeed;
}
 
什么情况该用什么修饰符呢?
从作用域来看,public能够使用所有的情况。 但是大家在工作的时候,又不会真正全部都使用public,那么到底什么情况该用什么修饰符呢?

1. 属性通常使用private封装起来
2. 方法一般使用public用于被调用
3. 会被子类继承的方法,通常使用protected
4. package用的不多,一般新手会用package,因为还不知道有修饰符这个东西
 

以上是关于访问修饰符的主要内容,如果未能解决你的问题,请参考以下文章

访问修饰符,命名空间

C#中的默认访问修饰符

C#访问修饰符

staticfinal包访问修饰符内部类

Java中的访问修饰符

面试题解五 访问修饰符的区别