Loading...
  所在位置:论坛首页 -> 计算机科学与技术 -> 程序设计 -> [求助]Java中误把==写成=的输出问题
回复

[求助]Java中误把==写成=的输出问题

作者:hll 时间:2010-11-18 21:37:34 收藏 编辑

以下程序时:我误将关系运算符写成赋值运算符了(最后的输出语句)

public class TestClass {
 /**
  * @param args
  * @throws ClassNotFoundException
  */
 public static void main(String[] args) throws ClassNotFoundException {
  // TODO Auto-generated method stub
  String str1 = "abc";
  Class cls1 = str1.getClass();
  Class cls2 = String.class;
  Class cls3 = Class.forName("java.lang.String");
  System.out.println(cls1 = cls2);                    //write error
  System.out.println(cls1=cls3);                       //write error
 }

}
运行结果是下面的两行语句

class java.lang.String
class java.lang.String

我在想这个程序执行到System.out.println(cls1 = cls2);System.out.println(cls1=cls3);     时就直接忽略了这两句,应该是不输出任何东西的,它为什么还有输出上面的两行语句呢,这代表什么啊?

第2楼 ade
编辑 删除 引用

这个输出是正常的。还记得在学c语言的时候,应该也有类似情形吧。

看下面代码:
int i = 0;
int j = 4;
System.out.println(i=j);

首先完成 i=j 这个表达式,然后计算整个表达式的值,其实就是 i 值,当然是4。同理,你在这里cls1=cls2作为一个表达式,其值为就是cls1对cls2的引用,当进行输出,而没有明确调用某个方法的时候,会自动调用该类的toString()方法。所以就输出了上面的两行语句。

回复时间:2010-11-18 22:55:47
高级回复

操作选项: 评分 加精 解精 奖惩 设专题 设公告 解公告 固顶 总固顶 解固顶 结帖 解结帖 锁帖 解锁 移帖 删帖
  首页
Copyright 2006-2012 HistoryCreator.com Powered By: BBSGood 5
吉ICP备06005902号