第三章 面向对象程序设计(答案)

合集下载

Visual C++面向对象程序设计教程与实验(第二版)清华大学出版社第3章习题参考答案

Visual C++面向对象程序设计教程与实验(第二版)清华大学出版社第3章习题参考答案

1.为什么要引入构造函数和析构函数?对象的初始化是指对象数据成员的初始化,在使用对象前,一定要初始化。

由于数据成员一般为私有的(private),所以不能直接赋值。

对对象初始化有以下两种方法:类中提供一个普通成员函数来初始化,但是会造成使用上的不便(使用对象前必须显式调用该函数)和不安全(未调用初始化函数就使用对象)。

当定义对象时,编译程序自动调用构造函数。

析构函数的功能是当对象被撤消时,释放该对象占用的内存空间。

析构函数的作用与构造函数正好相反,一般情况下,析构函数执行构造函数的逆操作。

在对象消亡时,系统将自动调用析构函数,执行一些在对象撤消前必须执行的清理任务。

2. 类的公有、私有和保护成员之间的区别是什么?①私有成员private: 私有成员是在类中被隐藏的部分,它往往是用来描述该类对象属性的一些数据成员,私有成员只能由本类的成员函数或某些特殊说明的函数(如第4章讲到的友员函数)访问,而类的外部根本就无法访问,实现了访问权限的有效控制,使数据得到有效的保护,有利于数据的隐藏,使内部数据不能被任意的访问和修改,也不会对该类以外的其余部分造成影响,使模块之间的相互作用被降低到最小。

private成员若处于类声明中的第一部分,可省略关键字private。

②公有成员public:公有成员对外是完全开放的,公有成员一般是成员函数,它提供了外部程序与类的接口功能,用户通过公有成员访问该类对象中的数据。

③保护成员protected: 只能由该类的成员函数,友元,公有派生类成员函数访问的成员。

保护成员与私有成员在一般情况下含义相同,它们的区别体现在类的继承中对产生的新类的影响不同,具体内容将在第5章中介绍。

缺省访问控制(未指定private、protected、public访问权限)时,系统认为是私有private 成员。

3. 什么是拷贝构造函数,它何时被调用?拷贝构造函数的功能是用一个已有的对象来初始化一个被创建的同类对象,是一种特殊的构造函数,具有一般构造函数的所有特性,当创建一个新对象时系统自动调用它;其形参是本类对象的引用,它的特殊功能是将参数代表的对象逐域拷贝到新创建的对象中。

C++第三章课后答案

C++第三章课后答案

C++第三章课后答案C++第三章习题及答案1、什么是结构化程序设计?它有什么优缺点?所谓结构化程序设计,是一种自顶而下、逐步求精的模块化程序设计方法。

2、什么是对象?什么是类?简述对象与类之间的关系!对象是系统中用来描述客观事物的一个实体,它是用于构成系统的一个基本单位,而系统可以看作是由一系列相互作用的对象组成。

类定义了同类对象的公共属性和行为,属性用数据结构表示,行为用函数表示!《类=数据结构+对数据进行操作的函数》。

对象和类的关系相当于元素和集合的关系、变量和变量的“数据类型”的关系。

从程序设计的角度来说,类是一种复杂的自定义数据类型,对象是属于这种数据类型的变量。

3、什么是面向对象程序设计?面向对象程序设计方法具有哪些基本特征?请比较面向对象程序设计和面向对象过程程序设计有何异同?4、何谓成员变量?何谓成员函数?C++将对象的属性抽象为数据成员,将对象的行为抽象为成员函数。

5、C++中结构和类之间有何异同?结构在默认情况下的成员是公共的,而类在默认情况下的成员是私有的。

在C++中,结构是特殊的类。

6、在C++中如何定义类?如何实现定义的类?如何利用类申明对象?7、类的成员的访问权限有哪几种?请说明它们分别有什么作用?三种,privte:类的私有成员,只能被本类的成员函数访问或调用。

Public:公有成员,可以被本类的成员或其他类的成员函数(通过对象)访问或调用。

Protected:保护成员,可以被本类的成员函数或派生类的成员函数访问或调用。

8、何谓构造函数?何谓析构函数?请说明它们分别有什么作用?构造函数:不需要用户程序调用,就能在创建对象时由系统自动调用,其作用是在对象被创建时利用初始值去构造对象,使得在声明对象时就能自动完成对象的初始化。

析构函数:在对象的生存周期即将结束时由系统自动调用的,其作用是用来在对象被删除前做一些清理工作和数据保存工作。

9、如何定义一个内联成员函数?内联函:内联函数必须是和函数体申明在一起,才有效。

C++面向对象程序设计第三章习题答案解析

C++面向对象程序设计第三章习题答案解析

C++⾯向对象程序设计第三章习题答案解析整理⼀下⾃⼰写的作业,供考试前复习⽤,哈哈进⼊正题题⽬:2.分析下⾯的程序,写出其运⾏时的输出结果这⾥就不展⽰课本源代码,直接给出修改后的代码,错误部分代码已给出具体的注释1 #include<iostream>2//原题的#include<iostream.h>写法错误3 #include<stdlib.h>4//⽤于解决闪屏的头⽂件5using namespace std;6//原题缺少该⾏代码,⽤于输⼊cin和输出cout7class Date{8public:9 Date(int,int,int);10 Date(int,int);11 Date(int);12 Date();1314void display();15private:16int month;17int day;18int year;1920 };2122 Date::Date(int m,int d,int y):month(m),day(d),year(y){}2324 Date::Date(int m,int d):month(m),day(d)25 {year=2005;}2627 Date::Date(int m):month(m)28 {day=1;year=2005;}2930 Date::Date()31 {month=1;day=1;year=2005;}3233void Date::display()34 {35 cout<<month<<"/"<<day<<"/"<<year<<endl;36 }3738int main()39 {40 Date d1(10,13,2005);41 Date d2(12,30);42 Date d3(10);43 Date d4;44 d1.display();45 d2.display();46 d3.display();47 d4.display();48 system("pause");49//解决闪屏的代码50return0;51 }运⾏结果:3.如果将第2题中程序的第四⾏改为⽤默认参数,即Date(int =1,int =1,int =2005);分析程序有⽆问题。

Java程序设计习题附答案(三)

Java程序设计习题附答案(三)

第三部分面向对象程序设计1、引用数据类型变量具有基本属性为(ABCD)A、变量名B、数据类型C、存储单元D、变量值。

2、面向对象技术的特性是(ACD)A、继承性B、有效性C、多态性D、封装性。

3、下列哪个命题为真?(C)A、所有类都必须定义一个构造函数。

B、构造函数必须有返回值。

C、构造函数可以访问类的非静态成员。

D、构造函数必须初始化类的所有数据成员。

4、关于子类与父类关系的描述正确的是(ACD)A、子类型的数据可以隐式转换为其父类型的数据;B、父类型的数据可以隐式转换为其子类型的数据;C、父类型的数据必须通过显示类型转换为其子类型的数据;D、子类型实例也是父类型的实例对象。

5、下列哪一项说法最好地描述了Java中的对象?(C)A、对象是通过import命令引入到程序中的所有事情B、对象是方法的集合,这些方法在小程序窗口或应用程序窗口中产生图形元素,或者计算和返回值C、对象是一种数据结构,它具有操作数据的方法D、对象是一组具有共同的结构和行为的类6、下面哪个关键字不是用来控制对类成员的访问的?(C)A、publicB、protectedC、defaultD、private7、Java语言正确的常量修饰符应该是(D)A、finalB、static finalC、staticD、public static final;8、接口的所有成员域都具有public 、static和final 属性。

9、接口的所有成员方法都具有public 和abstract 属性。

10、编译下列源程序会得到哪些文件?(C)class A1{}class A2{}public class B{public static void main(String args[]){}}A) 只有B.classB)只有A1.class和A2.class文件C)有A1.class、A2.class和B.class文件D) 编译不成功11、下列哪种说法是正确的?(A)A、私有方法不能被子类覆盖。

面向对象程序设计课后答案(完整版)

面向对象程序设计课后答案(完整版)

第二章2-4#include <iostream>using namespace std;Add(int a,int b);int main(){int x,y,sum;cout<<"please input x and y:";cin>>x>>y;sum = add(x,y);cout <<x<<"+"<<y<<"="<<sum<<endl;}Add(int a,int b){return a+b;}2-5(1)this is a C++ program.(2)x=50.6 y=10 z=Ax=216.34 y=10 z=Ax=216.34 y=2 z=Ax=216.34 y=2 z=E(3)x y z500 1000 0500 1500 1500500 200 15002-6#include <iostream>using namespace std;int main(){int *p,*init;int countp=0;int countn=0;p = new int[20];init = p;for(int i=0;i<20;i++){cin>>*p;p++;}p = p-20;for( i=0;i<20;i++){if(*p>0) countp++;if(*p<0) countn++;cout<<*p<<" ";p++;}cout<<"正数有:"<<countp<<endl; cout<<"负数有:"<<countn<<endl;p = init;delete[] p;return 0;}2-7不做要求#include <iostream>//#include <string>using namespace std;void checkagescore(string name,int age) {if (name == "exit") throw name;if(age<0||age>50)throw age;int main(){string name;int age;for(int i=0 ;i<5 ;i++ ){cin.ignore ();getline(cin,name );cin>>age ;try{checkagescore(name,age);}catch( string){cout<<"exception :name is exit"<<endl;continue;}catch(int){cout<<"exception :age is not proper"<<endl;continue;}cout<<"name:"<<name<<" age :"<<age<<endl;}return 0;}第三章3-1(1)A (2)C (3)B (4)C (5)C(6)B (7)B (8)C (9)C3-7(1)main()函数中p1.age = 30;语句是错误的。

面向对象程序设计习题及答案

面向对象程序设计习题及答案

面向对象程序设计一、选择填空1. 关于C + +与C语言的关系描述中,(D)是错误的。

(A)C语言是C + +的一个子集 (B) C语言与C++是兼容的(C) C++对C语言进行了一些改进(D) C++和C语言都是面向对象的2. 下面关于对象概念的描述中,(B)是错误的。

(A )对象就是C语言的结构变量(B)对象代表着正在创建的系统中的一个实体(C)对象是一个状态的操作(或方法)的封装体(D)对象之间的信息传递是通过消息进行的3. 下面关于类概念的描述中,(D)是错误的。

(A )类是抽象数据类型的实现(B )类是具有共同行为的若干对象的统一描述体(C)类是创建对象的样板(D)类就是C语言的结构类型4. 按照标识符的要求,(A )符号不能组成标识符。

(A )连接符 (B)下划线 (C)大小写字母 (D)数字字符5. 下列符号中,(C)不可作为分隔符。

(A), (B) : (C)? ( D);6. 在16位机中,int型字宽为(A)字节。

(A ) 2 ( B) 4 ( C) 6 (D) 87. 类型修饰符unsigned修饰(D)类型是错误的。

(A)char ( B) int (C) long int (D) float& 对于int *pa[5];的描述,(D)是正确的。

(A)pa是一个指向数组的指针,所指向的数组是5个int型元素(B)pa是一个指向某数组中第5个元素的指针,该元素是int变量(C)pa[5]表示某个数组的第5个元素(D)pa是一个具有5个元素的指针数组,每个元素是一个int型指针。

9. 下列关于指针的运算中,(D)是非法的。

(A)两个指针在一定条件下,可以进行相等或不等的运算。

(B)可以有一个空指针赋值给某个指针。

(C)一个指针可以加上一个整数。

(D)两个指针在一定条件下,可以相加。

10. 指针可以用来表示数组元素,下列表示中( A )是错误的。

已知:int a[3][7];(A)*(a+1)[5] ( B) *(*a+3) (C) *(*(a+1)) (D) *(&a[0][0]+2)11. 下列表示引用的方法中,(A )是正确的。

第3章 面向对象程序设计基础 答案

第3章 面向对象程序设计基础 答案
}
[解答]:构造方法是一个特殊的方法,主要用于初始化新创建的对象。构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,构造方法不返回任何数据类型,也不返回void数据类型,即不能在构造方法前加void。
上面的代码出错处:(1)构造方法student前不能加void.(2)不能用return语句。
}
extends字句有类声明的extends子句基本相同,不同的是一个接口可有多个父接口,用逗号隔开,而一个类只能有一个父类。Java中的类只能实现单重继承,这虽然可以简化编程,但毕竟没有完全实现面向对象的功能。定义接口的主要作用,就是帮助Java实现类间多重继承的结构。接口有以下好处:
(1)接口可以被多个类所实现,这些类可以不相关,从而具有相同的行为。
{ System.out.println("你好"); }
}
class Test
{ public static void main(String args[])
{动物ren;
ren=new人();
ren.cry();
}
}
//将抽象类改写成接口,并实现这个接口
interface动物
{ public void cry(); }
(1)private只能被类本身访问,其他类无法访问。
(2)default属于默认的访问状态,可以被类本身和同一个包中的类访问。
(3)protected可以被类本身、它的子类(包括同一个包以及不同包中的子类)访问。
(4)public可以被所有的类访问。
【7】什么是抽象类?为什么要引入抽象类的概念?
[解答]:抽象类是用来描述人们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。抽象类不具备实际功能,是专门设计用来让子类继承的类,把这些具有共同特征的方法抽象出来,由子类负责这些抽象方法的实现细节,而父类仅提供此方法的名称和声明、没有方法的主体。

第三章面向对象程序设计(答案)

第三章面向对象程序设计(答案)

学号:姓名:第三章面向对象程序设计作业一、判断题1、一个Java源程序可有多个类,但只仅有一个public 类,而且程序名与public 类名相同。

对2、如果类 A 和类B 在同一个包中,则除了私有成员外,类 A 可以访问类 B 中所有的成员。

对3、接口中的成员变量全部为常量,方法为抽象方法。

对4、抽象类可以有构造方法,可以直接实例化。

错5、对static 方法的调用可以不需要类实例。

对6、包含抽象方法的类一定是抽象类。

对7、方法中的形参可以和方法所属类的属性同名。

对8、接口无构造器,不能有实例,也不能定义常量。

错9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。

对10、Java应用程序的入口main 方法只有一种定义法。

对二、选择题1、下列答案正确的是( A )A) 在同一个Java 源文件中可以包含多个类,只能有一个被声明为publicB) 在同一个Java 源文件中只能包含一个类,并被声明为publicC) 在同一个Java 源文件中可以包含多个类,都可以被声明为publicD) 在同一个Java 源文件中可以包含多个类,只能有一个被声明为default2、Java实现动态多态性是通过( B )实现的。

A) 重载B) 覆盖C) 接口D) 抽象类3、下列哪一个是正确的方法重载描述( A )A) 重载方法的参数类型必须不同B) 重载方法的参数名称必须不同C) 返回值类型必须不同D) 修饰词必须不同4、final 关键字不可以用来修饰( D )A) 类B) 成员方法C) 域D) 接口5、接口的所有成员方法都具有( B )属性A) private, final B) public, abstractC) static, protected D) static6、Java的封装性是通过( A )实现的A) 访问控制B) 设计内部类C) 静态域和静态方法D) 包7、下列接口或类不属于java.util.* 包的是( D )A) Collection B)Vector C) Map D) Integer8、下述哪一组方法,是一个类中方法重载的正确写法?( A )A) int addValue( int a, int b ){return a+b;}float addValue ( float a, float b) {return a+b;}B) int addValue (int a, int b ){value=a+b; }float addValue ( int a, int b) {return (float)(a+b);}C) int addValue( int a, int b ){return a+1;}int addValue ( int a, int b) {return a+b;}D) int addValue( int a, int b ) {return a+b;}int addValue ( int x, int y ) {return x+y;}9、下列说法哪个是正确的?( C )A) 子类不能定义和父类同名同参数的方法B) 子类只能继承父类的方法,而不能重载C) 重载就是一个类中有多个同名但有不同形参和方法体的方法D) 子类只能覆盖父类的方法,而不能重载10、对于下列代码:public class Parent {public int addValue( int a, int b) {int s;s = a+b;return s;}}class Child extends Parent {}下述哪个方法不可以加入类Child? ( B )A) public int addValue( int a, int b,int c ){// do something...}B) public void addV alue (int a, int b ){// do something...}C) public int addValue( int a ){// do something...}D) public int addValue( int a, int b ) {//do something...}11、以下程序段输出结果的是( B )public class A implements B {public static void main(String args[]) {int i;A c1 = new A();i= c1.k;System.out.println("i="+i);}}interface B {int k = 10;}A) i=0 B) i=10 C) 程序有编译错误D) i=true12、阅读下面的程序,输出结果是( B )public class TestDemo {int m=5;public void some(int x) {m=x;}public static void main(String args []) {new Demo().some(7);}}class Demo extends TestDemo {int m=8;public void some(int x) {super.some(x);System.out.println(m);}}A) 5 B) 8 C) 7 D) 编译错误13、下述哪个说法是不正确的?( A )A) 局部变量在使用之前无需初始化,因为有该变量类型的默认值B) 类成员变量由系统自动进行初始化,也无需初始化C) 参数的作用域就是所在的方法D) for 语句中定义的变量,当for 语句执行完时,该变量就消亡了14、下述那一个保留字不是类及类成员的访问控制符。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学号:姓名:第三章面向对象程序设计作业一、判断题1、一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。

对2、如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。

对3、接口中的成员变量全部为常量,方法为抽象方法。

对4、抽象类可以有构造方法,可以直接实例化。

错5、对static方法的调用可以不需要类实例。

对6、包含抽象方法的类一定是抽象类。

对7、方法中的形参可以和方法所属类的属性同名。

对8、接口无构造器,不能有实例,也不能定义常量。

错9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。

对10、Java应用程序的入口main方法只有一种定义法。

对二、选择题1、下列答案正确的是(A)A) 在同一个Java源文件中可以包含多个类,只能有一个被声明为publicB) 在同一个Java源文件中只能包含一个类,并被声明为publicC) 在同一个Java源文件中可以包含多个类,都可以被声明为publicD) 在同一个Java源文件中可以包含多个类,只能有一个被声明为default2、Java实现动态多态性是通过(B)实现的。

A) 重载B) 覆盖C) 接口D) 抽象类3、下列哪一个是正确的方法重载描述(A)A) 重载方法的参数类型必须不同B) 重载方法的参数名称必须不同C) 返回值类型必须不同D) 修饰词必须不同4、final关键字不可以用来修饰(D)A) 类B) 成员方法C) 域D) 接口5、接口的所有成员方法都具有(B)属性A) private, final B) public, abstractC) static, protected D) static6、Java的封装性是通过(A)实现的A) 访问控制B) 设计内部类C) 静态域和静态方法D) 包7、下列接口或类不属于java.util.*包的是(D)A) Collection B)Vector C) MapD) Integer8、下述哪一组方法,是一个类中方法重载的正确写法?(A)A) int addValue( int a, int b ){return a+b;}float addValue ( float a, float b) {return a+b;}B) int addValue (int a, int b ){value=a+b; }float addValue ( int a, int b) {return (float)(a+b);}C) int addValue( int a, int b ){return a+1;}int addValue ( int a, int b) {return a+b;}D) int addValue( int a, int b ) {return a+b;}int addValue ( int x, int y ) {return x+y;}9、下列说法哪个是正确的?(C)A) 子类不能定义和父类同名同参数的方法B) 子类只能继承父类的方法,而不能重载C) 重载就是一个类中有多个同名但有不同形参和方法体的方法D) 子类只能覆盖父类的方法,而不能重载10、对于下列代码:public class Parent {public int addValue( int a, int b) {int s;s = a+b;return s;}}class Child extends Parent {}下述哪个方法不可以加入类Child? (B)A) public int addValue( int a, int b,int c ){// do something...}B) public void addV alue (int a, int b ){// do something...}C) public int addValue( int a ){// do something...}D) public int addValue( int a, int b ) {//do something...}11、以下程序段输出结果的是(B)public class A implements B {public static void main(String args[]) {int i;A c1 = new A();i= c1.k;System.out.println("i="+i);}}interface B {int k = 10;}A) i=0 B) i=10 C) 程序有编译错误D) i=true12、阅读下面的程序,输出结果是(B)public class TestDemo {int m=5;public void some(int x) {m=x;}public static void main(String args []) {new Demo().some(7);}}class Demo extends TestDemo {int m=8;public void some(int x) {super.some(x);System.out.println(m);}}A) 5 B) 8 C) 7 D) 编译错误13、下述哪个说法是不正确的?(A)A) 局部变量在使用之前无需初始化,因为有该变量类型的默认值B) 类成员变量由系统自动进行初始化,也无需初始化C) 参数的作用域就是所在的方法D) for语句中定义的变量,当for语句执行完时,该变量就消亡了14、下述那一个保留字不是类及类成员的访问控制符。

(C)A) public B) privateC) static D) protected15、假设有个类已经定义了下述的实例变量:int num1=10;int num2=20;String word = new String(“exam”);double answer=25.5;另外定义了下列方法头:public int stuff(String s, int x, int y)以下哪个选择是正确的方法调用? ( A )A)num1=stuff(“hello”,num1,num1);B)answer=stuff(word,answer,num2);C)num2=stuff(“hello”,num1,answer);D)num1=stuff(num1,num2,word);16、下哪一项不是构造方法的特点:( C )A 构造方法名必须与类名相同;B 构造方法不具有任何返回类型;C 任何一个类都含有构造方法;D 构造方法修饰词只能是public。

17、定义类B和类C如下,并将其保存为:B.java文件,得到的结果是( B ) class B{int b;B(int i){b=i;}}class C extends B{double c=7.8;}A)代码能够成功编译运行B)代码无法编译因为类B不是一个应用程序或小程序C)代码无法编译,因为类B没有定义不带参数的构造方法D)代码无法编译,因为类B没有定义一个不带参数的构造方法18、设已声明了一个类A的两个对象a1,a2,为了初始化a1和a2,下面语句正确的是( D )A)a1,a2=new A(); B)a1=A.new();a2=A.new();C)a1=new();a2=new(); D)a1=new A();a2=new A();19、下列选项中,用于在定义包时声明包名的关键字是。

(B)A) import B) package C) interface D) protected20、下面关于继承的哪些叙述是正确的? (A)A) 在java中只允许单一继承。

B) 在java中一个类只能实现一个接口。

C) 在java中一个类不能同时继承一个类和实现一个接口。

D) java的单一继承使代码更可靠。

21、定义一个类名为"MyClass.java"的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:(D)A) private class MyClass extends Object B) class MyClass extends ObjectC) public class MyClass D) public class MyClass extends Object22、指出下列哪个方法与方法public void add(int a){}为合理的重载方法。

(D)A) public int add(int a) B) public long add(long a)C) public void add(int a,int b) D) public void add(float a)23、类Line的定义class Line{private int a,b;public Line (int x,int y){this.x=x;this.y=y;}}其中的this代表?(C)A) 类名Line B) 父类的对象C) Line类的当前对象D) this指针24、在Java语言中,类Cat是类Animal的子类,Cat的构造方法中有一句“super()”,该语句表达了什么概念?(C)A) 调用类Cat中定义的super()方法B) 调用类Animal中定义的super()方法C) 调用类Animal的构造方法D) 语法错误25、某类的成员方法只能被自己调用,声明该函数恰当修饰符是?(C)A) public B) protectedC) private D) 无修饰符26、下面关于变量及其范围的陈述哪些是对的? (C)A) 实例变量是类的成员变量。

B) 实例变量用关键字static声明。

C) 在方法中定义的局部变量在该方法被执行时创建。

D) 局部变量在使用前必须被初始化。

27、在java中,哪一个关键字使类不能派生出子类。

(A)A) final B) publicC) private D) volatile28、下列整型的最终属性i 的定义中,正确的是(C)A) final i; B) static int i;C) static final int i=234; D) final float i=3.14f;三、程序阅读题1、阅读下面的程序,程序保存为Test.java:1)public class Test2){3) short mValue;4) public static void main(String[] args)5) {6)int a = 32;7) int b = 56;8) Test os = new Test(a+b);9)os.Show( );10)}11)protected Test(short aValue) { mValue = aValue; }12)public void Show( ) { System.out.println(mValue); }13)}上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么?第8行出错,原因是该类缺少一个具有一个整形形参的构造函数。

相关文档
最新文档