掌握Java语言基础与面向对象的综合编程技术与方法,更全面深入地理解面向对象程序设计技术内涵。
一、阅读程序题1
请先阅读下面的程序,确定它的输出结果。再将程序上机运行,验证自己分析的输出结果是否正确。
package Practice3;
class Yuan
{
int r;
String name;
static int z= 5;
Yuan(int r){
this.r=r; }
int a(){
return z*r*r; }
int p(){
return 5*z*r; }
void value (){
name="china"; }
}
class testOverride extends Yuan
{
int h;
String name;
testOverride(int r,int h1) {
super(r); h=h1; }
int a(){
value(); return 2*super.a()+p()*h; }
void value()
{
super.value();
name="America";
System.out.println("\""+this.name+"\"");
System.out.println(super.name);
}
public static void main(String args[])
{
Yuan y= new Yuan(4);
Yuan yz= new testOverride(5,2);
System.out.println(y.a());
System.out.println(yz.p());
System.out.println(yz.a());
}
}
自己运行一下就好了,结果如下:
80
125
"America"
china
500
二、阅读程序题2
请先阅读下面的程序,确定它的输出结果。再将程序上机运行,验证自己分析的输出结果是否正确。
public class TestTransOfValue
{
public static void main(String args[])
{
double val;
StringBuffer sb1, sb2;
String sb3;
char s[]={
'a','p','p','l','e'};
val = 5.8;
sb1 = new StringBuffer("apples");
sb2=new StringBuffer("pears");
sb3 = new String("pear");
modify(val, sb1, sb2,sb3,s);
System.out.println(val);
System.out.println(sb1);
System.out.println(sb2);
System.out.println(sb3);
System.out.println(s);
}
public static void modify(double a, StringBuffer r1, StringBuffer r2,String r3,char s[] )
{
a = 6.8;
r1.append(" taste good");
r2=null;
r3="banana";
s[2]='R';
}
}
结果如下:
5.8
apples taste good
pears
pear
apRle
三、阅读程序题3
请仔细阅读下面的程序,分析程序的结构和输出结果。再将程序上机运行,验证输出结果。(注意重点理解:内部类、对象内部类、静态内部类)
package Practice3;
public class Outer
{
public Outer()
{
System.out.println("OuterClass Object!");
}
private class Inner1
{
private