public class Mp {
    public static void main(String args[]){
//        for(int i=0;i<a.length;i++){
//            a[i]=Integer.parseInt(JOptionPane.showInputDialog(null,"请输入初始数据"));
//        }
        int a[] = {8,2,5,6,4,1};
        fun(a);
        System.out.print("最后结果:");
        printArray(a);
        
    }  
    static void printArray(int a[]){
        for(int i=0;i<a.length;i++){
            System.out.print(a[i]+" ");
        }
        System.out.println();
    }
    
    static void fun(int a[]){
        for(int j=0;j<a.length-1;j++){
            for(int i=0;i<a.length-j-1;i++){
                if(a[i]>a[i+1]){
                    int t;
                    t=a[i];
                    a[i]=a[i+1];
                    a[i+1]=t;
                }
            }
            System.out.print("第"+(j+1)+"次冒泡:");
            printArray(a);
        }
    }
}
错误: 类Mp是公共的, 应在名为 Mp.java 的文件中声明

解决方案 »

  1.   

    类Mp是public的,要把文件名命名为Mp.java.
      

  2.   

    public class的类名必须要与其文件名相同,你的public class Mp,那么对应的文件就应该是Mp.java
      

  3.   

    你的文件名应该是Mp.java才对。。
      

  4.   

    你的public class Mp,那么对应的文件就应该是Mp.java
      

  5.   

    public class Mp {
      public static void main(String args[]){
    // for(int i=0;i<a.length;i++){
    // a[i]=Integer.parseInt(JOptionPane.showInputDialog(null,"请输入初始数据"));
    // }
      int a[] = {8,2,5,6,4,1};
      fun(a);
      System.out.print("最后结果:");
      printArray(a);
        
      }   
      static void printArray(int a[]){
      for(int i=0;i<a.length;i++){
      System.out.print(a[i]+" ");
      }
      System.out.println();
      }
        
      static void fun(int a[]){
      for(int j=0;j<a.length-1;j++){
      for(int i=0;i<a.length-j-1;i++){
      if(a[i]>a[i+1]){
      int t;
      t=a[i];
      a[i]=a[i+1];
      a[i+1]=t;
      }
      }
      System.out.print("第"+(j+1)+"次冒泡:");
      printArray(a);
      }
      }
    }程序没有问题 ,结果:
    F:\javaTest>javac Mp.javaF:\javaTest>java Mp
    第1次冒泡:2 5 6 4 1 8
    第2次冒泡:2 5 4 1 6 8
    第3次冒泡:2 4 1 5 6 8
    第4次冒泡:2 1 4 5 6 8
    第5次冒泡:1 2 4 5 6 8
    最后结果:1 2 4 5 6 8F:\javaTest>因为的Mp类为 public的,所以你保存java文件时,应该命名为Mp.java
      

  6.   

    或者 把public class Mp 修改为 class Mp,保存文件可以为其他名字XXX.java
     > javac XXX.java
     > java Mp
    结果一样
      

  7.   

    你的源文件名字应该和public类Mp一样