Example11:
注意length和length()的用法:比如Stringstr="Mynameiswuyangping"求长度为str.length();但String[]str=newString[5],求这个的长度为str.length.
Example12:
在java1.5版本里面也支持像C语言里面的输出输入格式。比如System.out.printf("PIisapproximately%fandEisapproximately%b",Math.PI,Math.E);
输出的结果为:PIisapproximately3.141593andEisapproximatelytrue
Example12:
publicclassBeat{
Integeri; //line2
intx;
publicBeat(inty){
x=i+y;//line5
System.out.println(x);
}
publicstaticvoidmain(String[]args){
newBeat(newInteger(4));//line9
}
}
Line2中的i编译的时候出现nullPointException异常,改为Integeri==newInteger(1)就行。
Example13:
这里进入了物件导向设计。考题从第9章开始就迅速加深难度,之后各章节考题的量也开始增多了。遇到继承或多型的考题,在解题时务必:
Step01:依程式大致画出类别图。
Step02:检查父类别有无提供无参数建构子,若没有无参数建构子,子类别应
在建构子中的第1行呼叫super(⋯)或this(...)。若没有呼叫super(⋯)或
this(...),应该就会编译失败了!
Step03:检查覆盖方法有无符合规则(参考《第9-4节:覆盖方法》)。
Step04:检查是否运用了多型(用上层型别宣告的变数或参数,来参考下层类别
建立的物件)。若是运用多型,注意呼叫到的方法有无被子类别覆盖。
Step05:若程式中有转型,检查会不会出现执行时期错误。
这样解题或检视程式,应该就能取得结果。
Example14:
JavaBean的命名规则是setXXX(),getXXX();isXXX();
Example15:
classFoo{
publicinta=3;
publicvoidaddFive(){a+=5;System.out.print("f");}
}
classBarextendsFoo{
publicinta=8;
publicvoidaddFive(){this.a+=5;System.out.print("b");}
}
publicclassPerson{
publicstaticvoidmain(Stringd[]){
Foof=newBar();
f.addFive();
System.out.println(f.a);
}
}
Theoutputisb3。f.A调用的是父类的方法。