21xrx.com
2024-11-05 18:29:41 Tuesday
登录
文章检索 我的文章 写文章
Java访问控制详解:public、private、protected的区别和用法
2023-06-16 13:40:06 深夜i     --     --
Java 访问控制 public private protected

Java中的访问控制是指通过关键字来控制类、属性和方法对外部的可见性和可访问性。常见的访问控制关键字有public、private和protected。

1. public

public是最常见的访问修饰符,它表示该类、属性或方法可以被任何其他类访问。例如,下面的代码定义了一个公共类:

public class Animal {

  public String name;

  public void eat() {

    System.out.println("Animal is eating");

  }

}

在其他类中,我们可以直接访问该类的公共属性和方法:

Animal animal = new Animal();

animal.name = "dog";

animal.eat();

2. private

private表示该类、属性或方法只能被内部类访问,对外部是不可见的。例如,下面的代码定义了一个私有属性和方法:

public class Person {

  private String name;

  private void sayHello() {

    System.out.println("Hello");

  }

}

在其他类中,我们不能直接访问该类的私有属性和方法:

Person person = new Person();

person.name = "Tom"; // 编译错误:name在Person中是private访问控制

person.sayHello(); // 编译错误:sayHello在Person中是private访问控制

但是,可以通过公共方法来访问该类的私有属性和方法:

public class Person {

  private String name;

  private void sayHello() {

    System.out.println("Hello");

  }

  public String getName()

    return name;

  public void setName(String newName)

    name = newName;

  public void sayHelloTo() {

    sayHello();

  }

}

在其他类中,我们可以通过公共方法来访问该类的私有属性和方法:

Person person = new Person();

person.setName("Tom");

System.out.println(person.getName()); // 输出:Tom

person.sayHelloTo(); // 输出:Hello

3. protected

protected表示该类、属性或方法只能被其子类访问。例如,下面的代码定义了一个受保护的属性和方法:

public class Shape {

  protected double area;

  protected void calculateArea() {

    System.out.println("Calculating area");

  }

}

在其子类中,我们可以直接访问该类的受保护的属性和方法:

public class Triangle extends Shape {

  public void calculate() {

    calculateArea(); // 可以直接访问受保护的方法

    area = 1.0; // 可以直接访问受保护的属性

  }

}

以上就是Java中访问控制的详细介绍。通过使用不同的访问修饰符,我们可以控制Java程序的访问级别和安全性,使程序变得更加清晰和可读。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复