Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误与异常

Java 多线程

Java 同步

Java 网络编程

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级Java

Java杂项

Java APIs与框架

Java 类引用

Java 有用资源

Java - public关键字



Java 提供了许多访问修饰符来设置类、变量、方法和构造函数的访问级别。四个访问级别是:

  • 对包可见,这是默认值。不需要修饰符。

  • 仅对类可见(private)。

  • 对全世界可见(public)。

  • 对包和所有子类可见(protected)。

访问控制和继承

继承方法的以下规则强制执行:

  • 在超类中声明为 public 的方法在所有子类中也必须为 public。

  • 在超类中声明为 protected 的方法在子类中必须为 protected 或 public;它们不能是 private。

  • 私有方法根本不会被继承,因此没有关于它们的规则。

公共访问修饰符 - Public

声明为 public 的类、方法、构造函数、接口等可以从任何其他类访问。因此,在 public 类中声明的字段、方法、块可以从属于 Java 宇宙的任何类访问。

但是,如果我们尝试访问的 public 类位于不同的包中,则仍然需要导入该 public 类。由于类继承,类的所有 public 方法和变量都由其子类继承。

示例

以下函数使用公共访问控制:

public static void main(String[] arguments) {
   // ...
}

应用程序的 main() 方法必须是 public 的。否则,Java 解释器(例如 java)将无法调用它来运行该类。

示例

以下类使用公共访问控制。我们使用了如下所示的公共字段:

package com.tutorialspoint;

public class JavaTester {

   public String format;

   public String getFormat() {
      return this.format;
   }

   public void setFormat(String format) {
      this.format = format;
   } 

   public void print() {
      System.out.println(this.format);
   }

   public static void main(String args[]) {
      JavaTester tester = new JavaTester();
	  tester.format = "XML";
   }	   
}

输出

XML

这里,Logger 类的 format 变量是 public 的,因此可以直接使用 Logger 类的引用访问此变量。

但是,作为最佳实践,为了使此变量对外部世界可用,我们定义了两个公共方法:getFormat(),它返回 format 的值;以及 setFormat(String),它设置其值。

以下是公共访问标识符的另一个示例。我们在超类中定义了一个公共字段。如果字段/方法是 public 的,则子类可以继承它。

示例

package com.tutorialspoint;

class Logger {
   public String format;

   public void print() {
      System.out.println(this.format);
   }
}

public class JavaTester extends Logger {   
   public static void main(String args[]) {
      JavaTester tester = new JavaTester();

      tester.format = "XML";
      tester.print();
   }	   
}

输出

XML
java_basic_syntax.htm
广告