一下一段代码,为什么运行不了?静态main方法调用非静态,没有返回值的方法ass

public class Four {
public static void main(String args[]){
Four c=new Four ();
System.out.println(c.ass());
}
public void ass(){
int y=5;
}

System.out.println(c.ass());

这句应该编译都通不过吧?
因为:The method println(boolean) in the type PrintStream
is not applicable for the arguments (void)
即:println()方法的参数不能为void
看一下你ass方法的返回值就知道这行代码是没法通过编译的。

至于你说的静态调用非静态,好象是简单复杂化了吧?
编译都通不过的代码能够运行就算你狠。

如果你一定要:静态main方法调用非静态,没有返回值的方法ass
简单呀:
public class Four {
public static void main(String args[]){
Four c=new Four ();
//System.out.println(c.ass()); 这句注释掉
c.ass(); //写成这样
}
public void ass(){
int y=5;
System.out.println(y);
}

一样是在:静态main方法调用非静态没有返回值的方法
肯定运行通过。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-24
改成:public class Four {
public static void main(String args[]) {
Four c = new Four();
System.out.println(c.ass());
}

public int ass() {
int y = 5;
return y;
}
}
你的ass()方法是void没有返回值,没有返回值的话不能打印什么东西,所以会报错。把方法定义成int类型,就能打印出y了追问

别用return返回的,这个我会

追答

那你也没法用System.out.print()方法啊,参数不支持void类型。

第2个回答  2012-03-24
什么叫运行不了?是没有在控制台输出结果还是报异常?既然你知道没有返回值的方法,我想应该是抛异常了吧,把你的代码写完。。如果代码就是这些的话,你想得到结果,那么就把void改成int,在ass 方法里再加一个 return y;追问

晕,return返回值的调用方法我会,我就是忘了对没用返回值的静态方法和非静态方法的调用

追答

public class Demo {
public static void main(String[] args) {
Demo.printA();
printA();
new Demo().printB();
}

public static void printA()
{
System.out.println("public static void printl()");
}

public void printB()
{
System.out.println("public void printll()");
}

public void printC()
{
printB();
}
}

非静态方法是属于对象的,想要调用非静态方法就必须使用对象去调用。
但是当printC()去调用printB()的时候,是没有对象的,这是因为
new Demo().printC().printB()==printC(new Demo()).printB(new Demo())

第3个回答  2012-03-24
你aSS()方法是void类型的就是没返回值的 里面也没输出语句 调用这方法时就好像没掉用一样 什么都没输出 应该在方法里加上输出语句追问

public class Four {
public static void main(String args[]){
Four c=new Four ();
System.out.println(c.ass());
}
public void ass(){
int y=5;
}
改成这样子为什么不可以:
public class Four {
public static void main(String args[]){
Four c=new Four ();
System.out.println(c.ass());
}
public void ass(){
int y=5;
System.out.println(y);
}
输出语句不能嵌套么

相似回答