short counter = 0;
void countUp();
}
public class TestCount implements Count{
public static void main(String[] args){
TestCount t = new TestCount();
t.countUp();
}
public void countUp(){
for (int x = 6; x>counter; x--, ++counter){
System.out.print(“ ” + counter);
}
}
}
1. 运行下列程序,会产生什么结果?
{
StaticA()
{
System.out.println("StaticA instructor!");
}
}
public class StaticExsample
{
static int a;
static String str = "abc";
StaticExsample()
{
System.out.println(str);
}
{
System.out.println("block initialized");
}
static StaticA sa1 = new StaticA();
static
{
System.out.println("static block initialized");
System.out.println(str);
str += "def";
}
static StaticA sa = new StaticA();
public static void main(String[] args)
{
new StaticExsample();
new StaticExsample();
}
}
A.
StaticA instructor!
static block initialized
abc
StaticA instructor!
block initialized
abcdef
block initialized
abcdef
2.看看下一列将要输出的结果:
String str=new String (“good”);
char[]ch={‘a’,’b’,’c’};
public static void main(String args[]) {
Example ex=new example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str + ” and ”);
System.out.print(ex.ch);
}
public void change(String str,char ch[]) {
str=”test ok”;
ch[0]=’g’;
}
}
good and gbc
下列代码哪一行会出错?
C.line 7
编辑器会报错,k没有被赋初始值。
阅读以下代码,选择正确的答案
short counter = 0;
void countUp();
}
public class TestCount implements Count{
public static void main(String[] args){
TestCount t = new TestCount();
t.countUp();
}
public void countUp(){
for (int x = 6; x>counter; x--, ++counter){
System.out.print(“ ” + counter);
}
}
}
E. Compilation fails
看看下面2个程序
String str = new String("good");
char [] ch = {'a','b','c'};
public static void main(String[] args) {
Test t = new Test();
t.change(t.str, t.ch);
System.out.print(t.str+"and");
System.out.print(t.ch);
}
public void change(String str,char ch[]){
str = "test ok";
ch[0] = 'g';
}
}
输出结果:
goodandabc
String str = new String("good");
char [] ch = {'a','b','c'};
public static void main(String[] args) {
Test t = new Test();
t.change(t.str, t.ch);
System.out.print(t.str+"and");
System.out.print(t.ch);
}
public void change(String str,char ch[]){
this.str = "test ok";
ch[0] = 'g';
}
}
输出的结果:
test okandgbc
这两个程序,关键的是在change()中一个有是str ,一个是this.str。
当使用this.str = "test ok"时,改变了Test类实例str变量的引用,所以结果打印出来的结果为"test okandabc";
t.ch没变,是因为数据类型是引用数据类型。
这些属于个人理解,要是不对还请你指出。