1、2. 面向对象的 Java 语言练习2.1 概 述1 面向对象编程语言的基本特征是什么?2 常见的面向对象的程序设计语言包括哪些?3 Java 语言中,被 static 关键字修饰的成员变量与类变量有什么区别?4 面向过程程序设计的核心是:A商业逻辑 B客观实体 C算法 D要解决的问题5. 面向对象技术中的对象具有状态,行为和_等三个基本属性。6. 使用一个对象前,必须声明并_它。2.2 类、对象和方法1什么是对象?什么是类?对象与类的关系是什么?2类的定义中包括那些基本信息?3定义一个类包括定义类头和定义_两个部分。4类变量与实例变量的区别?5 类方法与实例方法的区别?6 符合对象和类关系的
2、是:A人和老虎 B书和汽车 C楼和建筑物 D汽车和交通工具7什么是方法,以及方法的作用?8举例说明方法的调用?9简述方法的递归调用过程?10什么是方法的重载?11什么是异常?试列出三个系统定义的运行时异常类。12try-catch-finally 语句的执行顺序是怎样的?13. Java 程序可以分为 Application 和 Applet 两大类,能在 WWW 浏览器上运行的是 _ 。 14. 如果子类中的某个方法的名字、返回值类型和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法 _了父类的同名方法。15. 定义类头时能使用的修饰符是( )。A) private B) sta
3、tic C) abstract D) protected16. 下列方法定义中,正确的是( )。A) int x( ) char ch=a; return (int)ch; B) void x( ) .return true; C) int x( ) .return true; D) int x( int a, b) return a+b; 2.3 构造方法1构造方法在类中的作用是什么?2在创建派生类的对象的时候,基类与派生类中构造方法的调用顺序怎样?3. 以下哪个方法仅在 Applet 程序被创建和首次被载入支持 Java 的浏览器时被调用A)paint() B)init() C)actio
4、n() D)start()4. 在某个类 A 中存在一个方法:void GetSort(int x),以下能作为这个方法的重载的声明的是A)Void GetSort(float x) B)int GetSort(int y)C)double GetSort(int x,int y) D)void Get(int x,int y)5. 有一个类 A,以下为其构造函数的声明,其中正确的是( )。A)void A(int x). B)A(int x).C)a(int x). D)void a(int x).6 阅读程序,根据程序功能,在指定的空白处填上适当的语句或语法成分,使程序完整。1).下面是一
5、个类的定义。class _ / 定义名为 myclass 的类_ int var=666;static int getvar()return var; 2).下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。_ void paint(Graphics g) g._(“你好!“,10,20); 3).下面是用户程序对 Applet 类中方法 action( ) 的重新定义,功能为从单行文本编辑区 input 中输入数据赋给 k。TextField 类的对象 input 和 int 型变量 k 已在类体中正确说明。public _ action( Event e, Objec
6、t o ) if( e.target=input )k=Integer.parseInt( _.getText( ) );repaint( );return true;7 请指出下面程序中的错误。public class Test extends Basepublic Test() super();public static void main(String args) Test t = new Test();Test t2 = new Test(“TestName“);class BaseString name;Base()System.out.println(“Base Construct
7、or“);Base(String name)this.name = name;2.4 继承1 是一种软件重用形式,在这种形式中,新类获得现有类的数据和方法,并可增加新的功能。2派生类构造方法可以通过关键字_调用基类构造方法。3. Java 语言的类间的继承关系是( )。A) 多重的 B) 单重的 C) 线程的 D) 不能继承4编程题(1) 根据下面的要求实现圆类 Circle: Circle 类的成员变量:radius 半径 Circle 类的方法成员Circle() 构造方法,将半径置为 0Circle(double r) 构造方法,创建 Circle 对象时将半径初始化为 rdouble
8、getRadius() 获得圆的半径值double getPerimeter() 获得圆的周长double gerArea() 获得圆的面积void disp() 将圆的半径、周长、面积输出到屏幕(2) 继承上题中的圆 Circle 类,派生圆柱体类 Cylinder,要求如下: Cylinder 类的成员变量:height 表示圆柱体的高 Cylinder 类的方法成员:Cylinder(double r,double h) 构造方法,创建 Cylinder 对象时将圆半径初始化为 r,圆柱高初始化为 hdouble getHeight() 获得圆柱体的高double getVol() 获得
9、圆柱体的体积void dispVol() 将圆柱体的体积输出到屏幕5创建如下图所示继承层次结构中的类。Employee 对象应当有姓名、年龄和社会保险号码,除此之外 SalariedEmployee 对象还有周薪,HourlyEmployee 对象有相应的基本工资和工作小时数,CommissionEmployee 对象应当有佣金率和销售总额,BasePlusCommissionEmployee 对象应当有对应的基本工资。每个类有合适的构造方法和访问其成员属性的方法。请编写一个程序,实例化以上所有类的对象,输出相关员工的基本信息。2.5 多态1实现如图所示的 shape 层次结构。每个 TwoD
10、imensionalShape 类应包含 getArea 方法,用来计算该图形的面积。每个 ThreeDimensionalShape 类应包含 getArea 和 getVolumn 方法,分别用来计算该图形的面积和体积。创建应用程序,该程序使用一个 Shape 引用数组来保存层次结构中的所有图形的具体类的对象,该程序打印每个数组元素所引用的对象。此外,利用循环结构处理数组中的图形,以确定每个图形是 TwoDimensionalShpae 还是 ThreeDimensionalShape 类的对象,如果图形是 TwoDimensionalShpae 类的对象,则显示该图形的面积,如果是 Th
11、reeDimensionalShape 类的对象,则显示该图形的面积和体积。2请指出下面程序中的错误class Fatherprivate int age;public void setAge(int a)this.age = a;public int getAge()return age;public void disp()System.out.println(“age is “ + age);class Son extends FatherString name;public void setName(String name)name = name;public void disp()di
12、sp();System.out.println(“my name is “ + name);public class Testpublic static void main(String args)Son s = new Son();s.disp();3. 为了区分重载多态中同名的不同方法,要求( )。A)采用不同的形式参数列表 B) 返回值类型不同 C)调用时用类名或对象名做前缀 D) 参数名不同2.6 抽象类与接口1什么是接口?为什么要定义接口?接口与类有何异同?2如何定义接口?使用什么关键字?3一个类如何实现接口?实现接口的类是否一定要重写该接口中的所有抽象方法?2.7 包1Java 中引入包的优点是什么?2如何将需要的外部类引入程序中?如何引用包中的某个类?如何引用整个包?3如何运行被打包后的字节码文件?2.8 异常处理1什么是异常?举出程序中常见的异常的种类?2Java 中异常处理有什么优点?3在 Java 中,throw 与 throws 有什么区别?他们各自用在什么地方?4请设计一个 Java 程序,程序中要进行数组操作和除法操作,要求对所设计的程序可能出现的异常进行处理。5定义一个邮件地址异常类,当用户输入的邮件地址不合法时,抛出异常。(其中邮件地址的合法格式为* *,也就是说必须是在符号左右出现一个或多个其他字符的字符串。)