public class wrenwren
{
static int a = 1;
public static void main(String[] args)
{
System.out.println("aa:" + aa());
System.out.println("aaaa"+a);
System.out.println(null); //这句话为什么编译不了呢?? }
public static int aa()
{
int b = 10;
try
{
System.out.println("abc");
return a;
}
finally
{
a = 2;
System.out.println("a: " + a);
}
}
}结果:abc
a: 2
aa:1
aaaa2
1。结果为什么是aa:1?
2。上面红字部分System.out.println(null);为什么编译部过去??
{
static int a = 1;
public static void main(String[] args)
{
System.out.println("aa:" + aa());
System.out.println("aaaa"+a);
System.out.println(null); //这句话为什么编译不了呢?? }
public static int aa()
{
int b = 10;
try
{
System.out.println("abc");
return a;
}
finally
{
a = 2;
System.out.println("a: " + a);
}
}
}结果:abc
a: 2
aa:1
aaaa2
1。结果为什么是aa:1?
2。上面红字部分System.out.println(null);为什么编译部过去??
void println()
Terminate the current line by writing the line separator string.
void println(boolean x)
Print a boolean and then terminate the line.
void println(char x)
Print a character and then terminate the line.
void println(char[] x)
Print an array of characters and then terminate the line.
void println(double x)
Print a double and then terminate the line.
void println(float x)
Print a float and then terminate the line.
void println(int x)
Print an integer and then terminate the line.
void println(long x)
Print a long and then terminate the line.
void println(Object x)
Print an Object and then terminate the line.
void println(String x)
Print a String and then terminate the line.
但是你传个null过去是什么意思??让编译器怎么识别?null是上面的参数中哪个类的子类?哪个都不是嘛!至于为什么aa:1 那是因为在try的时候已经把a返回出来了,后面的操作肯定对它的输出没影响咯
如果
finally
{
a = 2;
System.out.println("a: " + a);
return a+1; //这样调用aa() 的结果就是3了 但是a还是2 分清aa()的返回值和a的值你就明白了
}
首先谢谢你的回答,谢谢!!
可是第二个问题,我想输出null(是常量吧),怎么输出呢??