入给四舍五入掉了, 查了半天也没找到原因... 解答: Point 类的两个属性 x 和 y 都是整型的。构造函数就只有整型参数。setLoction 方法的参 数及 getX 和 getY 的返回值只是以浮点数的形式表示点的坐标,但 Point 的属性决定了实际 值。 代码实例: import java.awt.Point; public class test { public static void main (String args[]) { Point pt1=new Point(1,2); pt1.setLocation(1.23,2.78);
System.out.println(pt1.getX()); System.out.println(pt1.getY()); } // end of main method } // end of main class 输出: 1.0 3.0 ===================================================================== 问题: public class a{ public static void main(String[] args){ String s1,s2 ; s1="abc";s2="abc"; if (s1==s2) System.out.println("-----1------"); s1=new String("abc"); s2=new String("abc"); if (s1==s2) System.out.println("-----2------"); if(s1.equals(s2)) System.out.println("-----3-----"); } } 其中: if (s1==s2) System.out.println("-----2------"); 为什么这里 s1 不等 s2 呢? 而其他就相等呢? 解答: 第一个是常量形式,用一个内存单元保存 第二种情况是创建了两个字符串对象,虽然内容一样,但地址不一样,而 s1 和 s2 分别保 存了这两个地址,所以 s1 和 s2 不等. ===================================================================== 问题 1: 为什么程序执行时,当方法访问到属性时,就出现空指针错误? class BookCard { int rno; String rname; Vector bBook; BookCard(int a,String b,Vector c) { int rno=a; String rname=b; Vector bBook=c; } … } 在构造函数中,对三个属性又进行了一次定义,相当于定义了三个局部变量,结果是对 三个局部变量赋值,而并没有对三个属性赋值。所以下面的各方法中凡是用到 bBook 等属 性的都会出现空指针错误。 正确的构造函数是:
BookCard(int a,String b,Vector c) { rno=a; rname=b; bBook=c; } ===================================================================== 问题: 我在做第五次
作业时,不能执行自己建的包中的类,请问老师是为什么? 执行过程如下: 我将 Mystack 等四个类加入 stack 包中 程序开头
写: package stack; 测试文件写成一个.java,为了可以调用 stack 包中的四个类,也将它加入 stack 包中,
程序开头写: package stack;
编译时出错: I:\>javac -d . Mystack.java I:\>javac -d . TestMystack.java I:\>java TestMystack -classpath .\stack Exception in thread "main" java.lang.NoClassDefFoundError: TestMystack
----------------------- 如果我进入 stack 文件夹中执行 TestMystack.class,明明文件存在,也不能执行 I:\>cd stack I:\stack>java TestMystack Exception in thread "main" java.lang.NoClassDefFoundError: TestMystack (wrong na me: stack/TestMystack) at java.lang.ClassLoader.defineClass0(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$100(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)
解答: 进入 stack 文件夹中执行 TestMys