import java.util.*;class Rock2 {
Rock2(int i) {
System.out.println("Creating Rock Number " + i);
}
}public class SimpleConstructor2 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++)
new Rock2(i);
}
}为什么以这种方式调用Rock2的构造函数。
而我的写法是 Rock2 a = new Rock2(i)
时却抱错了。把for循环用打括号括起来,编译通过。执行正常。
请问:这是为什么?
Rock2(int i) {
System.out.println("Creating Rock Number " + i);
}
}public class SimpleConstructor2 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++)
new Rock2(i);
}
}为什么以这种方式调用Rock2的构造函数。
而我的写法是 Rock2 a = new Rock2(i)
时却抱错了。把for循环用打括号括起来,编译通过。执行正常。
请问:这是为什么?
解决方案 »
- 一个ServerSocket 服务端在同一个端口上能并发的连接20个客户端吗?
- java怎样写数据到表格?
- 关于文件选择后怎么继续运行程序的问题
- Point类中的问题?
- Hibernate中的分页问题,提个建议,谢谢!
- 帮我指点一下迷津吧!
- 请问谁有AnfyApplet中的特效的源码?谢谢
- 有用IBM的WSBCC framework开发银行系统的吗?问题请教!
- 请各位救命!一点小问题:在一个Document中怎样获取当前光标的offset?(关系到身家性命,多少分数都在所不惜)
- url-pattern为/是什么意思
- 请问:用Java排序的 package org.rut.util.algorithm.support???
- 救命吖,(JavaMail问题)javax.mail.internet.ParseException: Unbalanced quoted string
Rock2 a = new Rock2(i);
}
这样就不会错了,因为你不加括号是不允许定义循环内的局部变量的。
ChDw(米) ( ) 信誉:155 Blog 那为什么使用 new Rock2();
这种方式,要是在C++中恐怕不行了。
ChDw(米) ( ) 信誉:155 Blog
把i定义为main的局部变量也不行啊!
class Rock2 {
Rock2(int i) {
System.out.println("Creating Rock Number " + i);
}
}public class SimpleConstructor2 {
public static void main(String[] args) {
int i;
for (i = 0; i < 10; i++)
Rock2 a = new Rock2(i);
}
}
所以要是System.out.println("Creating Rock Number " + i);
而不关心他的返回值的时候,就不用定义了Rock2 a
他在討論的局部變量是指聲明Rock2實例這個行為,不是你說的i,你理解錯了吧sunliwen780502(孙立文)
在JAVA中是允許這樣的,就像你可以只寫2+3;而沒人強迫你要寫int sum = 2+3;一樣,在這裏 new Rock2(i) return 的Rock2實例因為沒有賦給任何變量所以自動丟失
Exception in thread "main" java.lang.UnsupportedClassVersionError: SimpleConstru
ctor2 (Unsupported major.minor version 49.0)
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$1(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)
for ( int i = 0; i < 10; i++)
r = new Rock2(i);