java面向对象中级-访问修饰符

java面向对象中级-访问修饰符

一、访问修饰符

基本介绍

​ java提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围):

  1. 公开级别:用public 修饰,对外公开

  2. 受保护级别:用protected 修饰,对子类和同一个包中的类公开

  3. 默认级别:没有修饰符号,向同一个包中的类公开

  4. 私有级别:用private修饰,只有类本本身可以访问,不对外公开

    通俗介绍
    1. public: 在任何地方都可以访问,没有限制。
    2. protected: 在同一个包内或子类中可以访问。
    3. 默认(无修饰符,有时也称为“包私有”): 只能在同一个包内访问。
    4. private: 只能在类内部访问,其他类无法访问。
使用的注意事项
  1. 修饰符可以用来修饰类中的属性,成员方法以及类
  2. 只有默认和public才能修饰类,并且遵循上述访问权限的特点
  3. 继承中关于子类的访问权限会在后续篇章讲解
  4. 成员方法的访问规则和属性完全一样
代码解释

示例1:

public class Animal {
    public String name;          // 可以被任何类访问
    protected int age;           // 在同一包内和子类中可访问
    String color;                // 默认访问修饰符,同一包内可访问
    private boolean isHealthy;   // 只能在本类中访问
    
    public Animal(String name, int age, String color) {
        this.name = name;
        this.age = age;
        this.color = color;
    }
    
    protected void sleep() {
        System.out.println(name + " is sleeping.");
    }
    
    void eat() {
        System.out.println(name + " is eating.");
    }
    
    private void visitVet() {
        System.out.println(name + " is visiting the vet.");
    }
}

示例2:

import animals.Animal;

public class Dog extends Animal {
    public Dog(String name, int age, String color) {
        super(name, age, color);
    }
    
    public void play() {
        System.out.println(name + " is playing.");
    }
    
    public static void main(String[] args) {
        Dog dog = new Dog("Buddy", 3, "Brown");
        dog.age = 4;      // 可以访问,因为age是protected
        dog.color = "White"; // 可以访问,因为color是默认访问修饰符
        // dog.isHealthy = true; // 无法访问,因为isHealthy是private
        
        dog.sleep();       // 可以访问,因为sleep是protected
        dog.eat();         // 可以访问,因为eat是默认访问修饰符
        // dog.visitVet();    // 无法访问,因为visitVet是private
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值