java中的System.out.println();括号里的东西怎么写 看下面的两个程序,运行结果为什么不一样啊 区别在哪里
classTest2{publicstaticvoidmain(String[]args){inti=1,r=2;System.out.println(i+r);}}cl...
class Test2
{
public static void main (String []args)
{
int i=1,r=2;
System.out.println(i+r);
}
}
class Test2
{
public static void main (String []args)
{
int i=1,r=2;
System.out.println(""+i+r);
}
} 展开
{
public static void main (String []args)
{
int i=1,r=2;
System.out.println(i+r);
}
}
class Test2
{
public static void main (String []args)
{
int i=1,r=2;
System.out.println(""+i+r);
}
} 展开
展开全部
前面的是代表整数型的相加,所以结果是3,
后面的是代表字符串拼接,所以结果是13,空格“”+拼接的,编译的时候会变成String型的,
后面的是代表字符串拼接,所以结果是13,空格“”+拼接的,编译的时候会变成String型的,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
System.out.println();里的写法很多!你这样写没错!
运行结果应该是3和12吧!
是12的原因是:在输出结果的时候前面加了""他会自动的把后面的数字当String处理!
运行结果应该是3和12吧!
是12的原因是:在输出结果的时候前面加了""他会自动的把后面的数字当String处理!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i+r 这是两个int型的相加 所以他会计算出结果
"" 表示字符串咯!! 所以他把后面的也转换成了字符串!!不会相加
System.out.print(""+(i+r));
这样就会计算出来了
"" 表示字符串咯!! 所以他把后面的也转换成了字符串!!不会相加
System.out.print(""+(i+r));
这样就会计算出来了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
原因很简单:
java有自动类型转换,并且print()、println()方法实际是会打印参数的字符串表示。
对于Test1,java虚拟机发现i和r都是数值,所以就把i和r相加,得到数值3,然后将int型的数值3表示为字符串"3"打印出来。
而对于Test2,java虚拟机发现所给的参数并不都是数值,不能做数学运算,那么就将所有参数全部先转换为字符串表示,于是+号就不是数学运算,而是字符串连接,于是得到输出结果"12"。
java虚拟机会自动尝试将所给参数转换为字符串,就是调用参数所属的类的toString()方法(如果它这个类自身没有toString()方法,就会自动调用它父类的。因为所有类都继承自Object类,所以可能会调用到java.lang.Object的toString()方法)。所以如果你自定义了一个类,想让它用print()打印类的相关信息,只需要重写toString()方法就可以了。
java有自动类型转换,并且print()、println()方法实际是会打印参数的字符串表示。
对于Test1,java虚拟机发现i和r都是数值,所以就把i和r相加,得到数值3,然后将int型的数值3表示为字符串"3"打印出来。
而对于Test2,java虚拟机发现所给的参数并不都是数值,不能做数学运算,那么就将所有参数全部先转换为字符串表示,于是+号就不是数学运算,而是字符串连接,于是得到输出结果"12"。
java虚拟机会自动尝试将所给参数转换为字符串,就是调用参数所属的类的toString()方法(如果它这个类自身没有toString()方法,就会自动调用它父类的。因为所有类都继承自Object类,所以可能会调用到java.lang.Object的toString()方法)。所以如果你自定义了一个类,想让它用print()打印类的相关信息,只需要重写toString()方法就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询