You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中public与private修饰方法的执行差异探究

Java中public与private修饰方法的执行差异分析

核心权限与执行逻辑差异

  • public修饰的方法:拥有全局访问权限,任何类(无论是否同包、是否为子类)、甚至JVM这类外部执行环境都能直接调用它,是类对外暴露的执行入口。
  • private修饰的方法:仅限制在当前类内部可访问,外部类、子类、JVM都无法直接触发它的执行,属于类的内部私有逻辑实现。

结合示例代码拆解

先看示例代码:

class pig {
   public static void main(String[] args) {
      System.out.println("xixi");
      System.out.println("haha");
      // 取消注释即可在类内部调用private的重载main方法
      // pig.main("测试");
   }
   private static void main(String name) 
   {
      System.out.println("你");
   }
}
  1. 程序入口的执行逻辑:
    Java规定程序的启动入口必须是public static void main(String[] args),因为JVM作为外部调用者,需要访问这个public方法来启动程序。示例中运行时只会执行这个public的main方法,输出xixi和haha。

  2. private重载方法的执行限制:
    示例里的private static void main(String name)是一个方法重载(参数列表与入口方法不同),但它是private权限:

  • JVM无法识别并调用它作为程序入口;
  • 只有在pig类内部的代码里才能调用它(比如取消代码中的注释,就能触发执行并输出你);
  • 外部类完全无法直接调用这个private方法。
  1. 权限对执行的直接影响:
    如果把示例中的public main方法删掉,只保留private的那个,运行程序时JVM会直接报错,提示找不到可执行的main入口——因为JVM没有权限访问private方法。

内容的提问来源于stack exchange,提问作者石生鑫

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 19:22:38