类ClassA:
[code="java"]
public class ClassA {
private int i;
public ClassA(int i) {
this.i = i;
}
public void printMe() {
System.out.println(i);
}
System.out.(1)println(i(2));//这里有两个错误。
}
[/code]
类ClassB:
[code="java"]
public class ClassB {
public static void main(String[] args) {
ClassA ca = new ClassA(9);
ca.printMe();
}
}
[/code]
这里有两个错误,如上面所示:
1:标记上有语法错误,错误放置了构造。
2:标记"i"上有语法错误,在此标记之后应为VariableDeclaratorId。
为什么会出现这两个错误呢,为什么参数传递过去后,会出现这种错误。
[quote]为什么只能写在方法中、构造方法中、代码块、静态代码块中使用i[/quote]
纠正几点:
1、在静态代码块中,不能使用实例变量(你的ClassA中的i是实例变量)
2、任何语句,处理声明语句,都必须在一个方法块中。这是语法规定
[quote]System.out.(1)println(i(2));这句也无法执行的原因啊。为什么不能那样写啊?
[/quote]
这么古怪的写法.....
System类中有个out对象。out对象有个println方法。
System.out.(1)println() 的写法,不合语法!
i(2) 的写法,更不合语法。 因为ClassA中没有 i(int param)的方法。
建议,看看基础语法。。。
你的ClassA中的这一句,应该在一个语句块中。不能直接写
[code="java"]System.out.(1)println(i(2));//这里有两个错误。 [/code]
[code="java"] System.out.(1)println(i(2));//这里有两个错误。[/code]
不知道我理解你的意思没有?
可以在方法中、构造方法中、代码块、静态代码块中,写那个语句:
[code="java"]public class ClassA {
private int i;
public ClassA(){
System.out.println("这样写你的语句");
}
public ClassA(int i) {
this.i = i;
}
public void printMe() {
System.out.println(i);
}
{
System.out.println("或者这样写");
}
}[/code]
[quote]System.out.(1)println(i(2));[/quote]
看来是java新手吧。
看看那这篇文章,了解java类是由什么组成的。
main方法,也是一个代码块,也可以容纳语句。