2.局部变量和方法参数的作用域有什么不同?
3. void“ 不返回任何内容”,请问如果没有void,内容是返回给什么地方?
关于第一个问题,我的疑问是:
以如下程序为例:
public class CharTest
{
public static void main(String[] args)
{
char x = 'M';
char y = '\120';
char z = 'V';
System.out.println("字符x=" + x);
System.out.println("字符y=" + y);
System.out.println("数值Z=" + (x+z));
}
}
输出:
字符x=M
字符y=P
数值Z=163
为什么它的输入有时候是UNICODE里的代码,有时候是数字?也就是说什么时候输出UNICODE对应的代码,什么时候输出十六进制的数字?
楼上的似乎没有理解我的意思。请看如下程序:
public class BooleanTest
{
public static void main(String[] args)
{
int a = 20;
int b = 30;
boolean x, y,z;
x = (a > b);
y = (a < b);
z = ((a + b) == 50);
System.out.println("x=" + x);
System.out.println("y=" + y);
System.out.println("z=" + z);
}
}
如果我把
x = (a > b);
y = (a < b);
z = ((a + b) == 50);
删去,则运行时出现:
BooleanTest.java:12: variable x might not have been initialized
System.out.println("x=" + x);
^
BooleanTest.java:13: variable y might not have been initialized
System.out.println("y=" + y);
^
BooleanTest.java:14: variable z might not have been initialized
System.out.println("z=" + z);
^
3 errors
也就是说没有对x,y,z进行初始化。所以我的意思是是否
x = (a > b);
y = (a < b);
z = ((a + b) == 50);
也算作初始化?还有没有除了这种方法和直接赋初值之外的其他初始化方法?
谢谢。
能不能说的详细一些?解释一下什么是利用句柄调用这个全局变量?还有这个被调用的变量与声明的与类名相同的对象之间有什么关系?
还有几个地方不是很明白,希望获得解答。
以此程序为例:
public class GlobalVar
{
int a = 10;
double b = 20;
public static void main(String[] args)
{
GlobalVar globalVar = new GlobalVar(); 7
System.out.println("the value a = " + globalVar.a);
globalVar.print(); 9
System.out.println("after changed the value a = " + globalVar.a);
}
public void print()
{
System.out.println("the global variable a = " + a + ", b = " + b);
a=30;
System.out.println("the global variable a = " + a + ", b = " + b);
}
}
第7行声明了一个GlobalVar类型的对象,第9行用这个对象的句柄调用print()方法,请问:被调用的这个方法和这个GlobarVar类型的对象有什么关系?似乎看起来这个print()方法并没有作用于这个对象。那为什么可以用这个对象的句柄来调用?
谢谢。