写了几行,运行之,发现有时能运行,有时又报错。结果如下:  
   1--能运行时:
 run:
调用有参构造函数
有参构造函数==坐标为(6,5)
tostring
坐标为(6,5)
===================
调用get函数
输入两个数
8
8
调用set函数
调用set函数==坐标为(8,8)
成功生成(总时间:4 秒)    2--不能运行时:
 run:
Exception in thread "main" java.lang.NoClassDefFoundError: suibi/Point (wrong name: suibi/point)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at suibi.point.main(point.java:49)
Java Result: 1
成功生成(总时间:0 秒)
   代码如  java code:package point1;
import java.util.*;
class Point {
    int x,y;
    public Point (){
        System.out.println("调用无参构造函数");
    }
    public Point (int a,int b){
        System.out.println("调用有参构造函数");
    this.x=a;this.y=b;
          System.out.println("有参构造函数==坐标为("+x+","+y+")");
    }
    public void set(int [] p){
         System.out.println("调用set函数");
       this.x=p[0];
      this.y=p[1];
      System.out.println("调用set函数==坐标为("+this.x+","+this.y+")");
    }
    public int [] get(){
         System.out.println("调用get函数");
          System.out.println("输入两个数");
          int [] s=new int[2];
         Scanner sc = new Scanner(System.in);
s[0]=sc.nextInt();
s[1]=sc.nextInt();
return s;
    }
    public String toString(){        return "坐标为("+this.x+","+this.y+")";
    }}
/**
 *
 * @author Administrator
 */
public class Main {    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
          Object oo2=new Point(6,5);
            System.out.println("tostring");
          System.out.println(oo2.toString());
          System.out.println("===================");
       ((Point)oo2).set(((Point)oo2).get());
        // TODO code application logic here
    }}   code  end高人们帮帮我,自己实在不知道为什么。

解决方案 »

  1.   

    Point是在point1包中定义的,看出错信息,你是在suibi这个包中的主函数中执行测试代码的。因为Point是默认访问权限,即包内访问权限,所以访问不到Point。试试 import point1.*; ,应该就OK了。如果在point1包中的类的主函数中执行测试代码,应该是没有问题的。
      

  2.   

    你的eclipse有问题,我看是编译的问题
      

  3.   

     ((Point)oo2).set(((Point)oo2).get());   这个 地方 转换有问题
      

  4.   

    没什么错呀,我运行了的,看你去的错,是找不到类的class文件了,你测试的方法是不是不在同一个包中呀
    和1楼的一样