public class Person
{
public void run(int i)
{
i = 22;
}
public static void main(String[] args)
{
int age = 11;
Person person = new Person();
// System.out.println( person.run(age)); 错误 不允许使用空类型
// System.out.println( person.age); 错误
}
不可以输出 以上的错误不太明白 请教,,,
------解决方案--------------------
public class Person
{
public void run(int i)
{
i = 22;
}
public static void main(String[] args)
{
int age = 11;
Person person = new Person();
//person.run(age)返回值是void,只有返回值不是void的时候才可以打印;
//可以直接:
person.run(age);
System.out.println(person.run(age));
System.out.println( person.age); //age不是 类Person的成员变量,这样调用是错误的;
}
}
------解决方案--------------------
第一个问题 void返回值不能用于打印
第二个问题 age不是person的变量,编译不能通过
------解决方案--------------------
类的变量也叫全局变量,是在整个类体中共享的。
方法中的变量叫局部变量,使用的时候必须初始化或赋值,比如你在main方法中写的:int age = 11;
Person person = new Person(); 这一句你构造了一个Person对象。
person.run(age); 你在main方法调用了run方法,你首先要知道run方法做了什么:
public void run(int i)
{
i = 22; //将传进来的任意int类型参数赋值22,但是没有返回值。
}
所以说你的run方法没有意义的,你只是改变了传进来的参数值,但对外界并无任何影响。
现在再说你这一句,你的run(age)方法没有返回值,你打印一个无返回值的方法,就会报直接报非运行时异常:
The method println(boolean) in the type PrintStream is not applicable for the arguments (void)
同样:System.out.println( person.age)
age是你定义的局部变量,而不是你person的属性,所以你不能这样取值。你可以直接打印age,或者通过Person的set方法给其age属性赋值之后才可以这样用。
------解决方案--------------------
说的是楼主,你的解答挺好