目录
1.1 前言
public 修饰符就是公共修饰符,访问级别 : 无处不在,可以从类内部,类外部,包内部和包外部访问它。
1.2 可在类和包内外访问
(1)同一个包中直接调用
class A {
public void display() {
System.out.println("test public in a package");
}
}
class test1 {
public static void main(String[] args) {
A a = new A();
a.display(); // 直接调用 display 方法
}
}
运行结果:
test public in a package
(2)不同的包也可直接调用
package com.java;
public class A { // 公共类
public void display() { // 公共方法
System.out.println("Try to access a public method outside the package");
}
}
package com.javatpoint;
import com.java.A;
public class PublicExample {
public static void main(String[] args) {
A a = new A(); // 直接实例 com.java 包中的 A 类
a.display(); // 直接调用 A 类中的 display 方法
}
}
运行结果:
Try to access a public method outside the package
1.3 覆盖
如果将 public 分配给父类中任何方法或变量,则只能使用 public 修饰符覆盖子类中的方法或变量。
class A {
public void msg() {
System.out.println("Try it");
}
}
class PublicExample extends A {
public void msg() {
System.out.println("Try to access the overridden method");
}
public static void main(String[] args) {
PublicExample p = new PublicExample();
p.msg();
}
}
运行结果:
Try to access the overridden method
1.4 修饰主类
一个 Java 文件中只能有一个 public 修饰外部类,Java 文件的名字,必须和这个 public 外部类的名字一样。也就是 public 修饰外部类时只能修饰主类。
class A {
public void a() {
System.out.println("a test public in multi-class");
}
}
class B {
public void b() {
System.out.println("b test public in multi-class");
}
}
public class test { // 主类
public static void main(String[] args) { // 主方法
A classA = new A();
B classB = new B();
classA.a();
classB.b();
}
}
运行结果:
a test public in multi-class
b test public in multi-class
1.5 总结