我在一个类中声明的  public static void show(){.......} 方法并不能在其他类中(包括其子类)通过 类名.show() 进行调用  public 根本就没有用处

解决方案 »

  1.   

    public 就是表示该方法是公开的方法,允许被其他类调用你也可以试试把它改成private后,你能否通过 类名.show() 进行调用
      

  2.   

    请问  为什么  以下程序  输入 javac cl.java  不会出错了 
    package myclass3;  
    public class cl
    {

    public void show1()
    {}
    public static void show()
    {
    System.out.println("static");
    }
    }
      

  3.   

    public 是声明该方法作用域的权限,public 后面还有 static 表示静态,需要用类名直接调用该方法。可以看看你JDK 和JVM是否正常。
      

  4.   

    我已经找到问题 是因为 我使用javac 编译的时候 没有加上 javac -d .  的参数导致
    文件没有被更新 所以才一直出错但是新问题又出现  我以前使用 
    如果我使用 javac cl.java 编译 带有package myclass3; 语句的cl.java
    编译器应该报错啊 , 
    但是自从我升级到 1.6后   才发现  编译器不会报错了
    而是在当前目录下生成了一个  cl.class
    而不是在 当前目录\myclass3\ 下生成cl.class
      

  5.   

    编译没问题,但是运行会出错,在控制台下要你自己搞定aaa/myclass3:
    aaa>javac myclass3/cl.java
    myclass3>javac cl.java
    都没有错
    但是运行的话只能
    aaa>java myclass3.cl
      

  6.   

    public 允许外部的类调用! private的话只有本类才能调用!
      

  7.   

    楼主。有问题的愿意是不是因为你没有MAIN函数?
    public class Test
    {public void show1()
    {}
     static  void show()
    {
    System.out.println("static");}
    public static void main(String[] args){
    Test.show();
    }
    }
    我在myeclipse里面是可以运行的。
    不知道是不是这个问题的答案
      

  8.   

    如果我使用 javac cl.java 编译 带有package myclass3; 语句的cl.java
    -------------------
    1.4 1.5也不会报错
      

  9.   

    编译的时候,带不带 -d都不会有问题,只是不带的话,不会自动放到相应的包名文件夹下。
    运行的时候,jvm就要检查.class文件的路径了,包路径不正确就会出错了