Java 访问修饰符

Java 访问修饰符

什么是访问修饰符?

在Java中,访问修饰符用于设置类、接口、变量、方法、构造方法、数据成员和setter方法的访问性(可见性)。例如,

class Animal {

public void method1() {...}

private void method2() {...}

}

在上面的示例中,我们声明了两个方法:method1() 和 method2()。这里,

method1 是 public - 这意味着它可以被其他类访问。

method2 是 private - 这意味着它不能被其他类访问。

请注意关键字 public 和 private。它们是Java中的访问修饰符。它们也称为可见性修饰符。

注意:您不能为getter方法设置访问修饰符。

访问修饰符的类型

在学习访问修饰符的类型之前,请确保您了解Java 包。

Java中有四个访问修饰符关键字,它们是

修饰符

描述

默认

声明仅在包内可见(包私有)

私有

声明仅在类内可见

保护

声明在包内或所有子类中可见

公共

声明在任何地方可见

默认访问修饰符

如果我们没有为类、方法、变量等显式指定任何访问修饰符,则默认情况下会考虑默认访问修饰符。例如,

package defaultPackage;

class Logger {

void message(){

System.out.println("This is a message");

}

}

这里,Logger 类具有默认访问修饰符。该类对属于 defaultPackage 包的所有类可见。但是,如果我们尝试在 defaultPackage 外部的另一个类中使用 Logger 类,我们将收到编译错误。

私有访问修饰符

当变量和方法被声明为 private 时,它们无法在类外部访问。例如,

class Data {

// private variable

private String name;

}

public class Main {

public static void main(String[] main){

// create an object of Data

Data d = new Data();

// access private variable and field from another class

d.name = "Programiz";

}

}

在上面的示例中,我们声明了一个名为 name 的私有变量。当运行程序时,我们将收到以下错误

Main.java:18: error: name has private access in Data

d.name = "Programiz";

^

错误是因为我们正尝试从 Main 类访问 Data 类的私有变量。

您可能想知道,如果我们必须访问那些私有变量,该怎么办。在这种情况下,我们可以使用getter和setter方法。例如,

class Data {

private String name;

// getter method

public String getName() {

return this.name;

}

// setter method

public void setName(String name) {

this.name= name;

}

}

public class Main {

public static void main(String[] main){

Data d = new Data();

// access the private variable using the getter and setter

d.setName("Programiz");

System.out.println(d.getName());

}

}

输出:

The name is Programiz

在上面的示例中,我们有一个名为 name 的私有变量。为了从外部类访问该变量,我们使用了方法:getName() 和 setName()。这些方法在Java中称为getter和setter。

在这里,我们在setName() 中使用setter方法(setName())为变量赋值,并使用getter方法(getName())访问变量。

我们在setName() 中使用了 this 关键字来引用类的变量。要了解有关此关键字的更多信息,请访问 Java this 关键字。

注意:我们不能在Java中将类或接口声明为 private。但是,可以声明嵌套类为 private。要了解更多信息,请访问 Java 嵌套类和内部类。

保护访问修饰符

当方法和数据成员被声明为 protected 时,我们可以在同一包内以及从子类访问它们。例如,

class Animal {

// protected method

protected void display() {

System.out.println("I am an animal");

}

}

class Dog extends Animal {

public static void main(String[] args) {

// create an object of Dog class

Dog dog = new Dog();

// access protected method

dog.display();

}

}

输出:

I am an animal

在上面的示例中,我们在 Animal 类中有一个名为 display() 的保护方法。Animal 类被 Dog 类继承。要了解更多关于继承的信息,请访问 Java 继承。

然后我们创建了 Dog 类的对象 dog。使用该对象,我们尝试访问父类的保护方法。

由于保护方法可以从子类访问,因此我们可以从 Dog 类访问 Animal 类的该方法。

注意:我们不能在Java中将类或接口声明为 protected。

公共访问修饰符

当方法、变量、类等被声明为 public 时,我们就可以从任何地方访问它们。公共访问修饰符没有范围限制。例如,

// Animal.java file

// public class

public class Animal {

// public variable

public int legCount;

// public method

public void display() {

System.out.println("I am an animal.");

System.out.println("I have " + legCount + " legs.");

}

}

// Main.java

public class Main {

public static void main( String[] args ) {

// accessing the public class

Animal animal = new Animal();

// accessing the public variable

animal.legCount = 4;

// accessing the public method

animal.display();

}

}

输出:

I am an animal.

I have 4 legs.

这里,

公共类 Animal 从 Main 类中访问。

公共变量 legCount 从 Main 类中访问。

公共方法 display() 从 Main 类中访问。

访问修饰符汇总图

Java 中所有访问修饰符的可访问性

访问修饰符主要用于封装。它可以帮助我们控制程序中哪些部分可以访问类的成员。从而可以防止数据被滥用。要了解有关封装的更多信息,请访问 Java 封装。

相关推荐

魔镜修图好用吗?海草云修图怎么样
黑帮365天第3季是真实的吗

魔镜修图好用吗?海草云修图怎么样

⌛ 2025-12-30 👁️ 1980
内鬼爆猛料大深渊改版保底SS 大材料留好了
365beat怎么下载

内鬼爆猛料大深渊改版保底SS 大材料留好了

⌛ 2025-08-26 👁️ 6404
篮网专区
365bet安卓手机客户端

篮网专区

⌛ 2026-01-23 👁️ 9908