《2022年面向对象的Java语言练习[参 .pdf》由会员分享,可在线阅读,更多相关《2022年面向对象的Java语言练习[参 .pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2. 面向对象的 Java 语言练习2.1 概述1 面向对象编程语言的基本特征是什么?封装,多态,继承,抽象2 常见的面向对象的程序设计语言包括哪些? JAVA,C+,C# 3 Java 语言中,被static关键字修饰的成员变量与类变量有什么区别?Static 关键字修饰的成员变量在运行时只进行一次初始化,而且可以直接用类调用,并不需要创建类的实例对象,static变量相当于c+中的全局变量4 面向过程程序设计的核心是:B A商业逻辑 B 客观实体 C算法 D 要解决的问题5. 面向对象技术中的对象具有状态,行为和_ 等三个基本属性。6. 使用一个对象前,必须声明并_初始化 _ 它。2.2
2、类、对象和方法1什么是对象?什么是类?对象与类的关系是什么?2类的定义中包括那些基本信息?类名,类的数据成员,成员方法,构造方法(可选)3定义一个类包括定义类头和定义_ 两个部分。4类变量与实例变量的区别?5 类方法与实例方法的区别?6 符合对象和类关系的是:CD A人和老虎 B 书和汽车 C 楼和建筑物 D 汽车和交通工具名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - 7什么是方法,以及方法的作用?8举例说明方法的调用?9简
3、述方法的递归调用过程?10什么是方法的重载?重载( overload)是指同一个类中方法名相同,参数类型不同或参数个数不同的现象11什么是异常?试列出三个系统定义的运行时异常类。12 try-catch-finally语句的执行顺序是怎样的?先执行 try语句块中的语句,若发生异常则跳入catch语句捕获异常,最后执行finally语句,其中,finally表示总是执行,若在try语句块或catch语句块中存在return语句, 则 finally语句进啊在return语句执行前先运行13.Java 程序可以分为 Application 和 Applet 两大类,能在 WWW 浏览器上运行的是
4、_Applet_ 。14.如果子类中的某个方法的名字、返回值类型和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法 _ 了父类的同名方法。15.定义类头时能使用的修饰符是( C) 。A) private B) static C) abstract D) protected 16.下列方法定义中,正确的是(A )。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; 名师资料总结 - - -精
5、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 2.3 构造方法1构造方法在类中的作用是什么?2在创建派生类的对象的时候,基类与派生类中构造方法的调用顺序怎样?若在子类构造方法中未显示的调用父类的构造方法,则 JVM将默认隐式的调用系统的无参构造方法,否则JVM先调用显示调用发父类构造方法,因为super 语句必须为构造方法中第一条语句3. 以下哪个方法仅在Applet程序被创建和首次被载入支持Java 的浏览器时被调用A)paint() B)init
6、() C)action() D)start() 4. 在某个类 A中存在一个方法:void GetSort(int x), 以下能作为这个方法的重载的声明的是B 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,以下为其构造函数的声明,其中正确的是(B )。A)void A(int x). B)A(int x). C)a(int x). D)void a(int x). 6 阅读程序,根据程序功能,在指定的空白处填上适当的语句或
7、语法成分,使程序完整。1). 下面是一个类的定义。class _Myclass_ / 定义名为 myclass的类 _static_ int var=666; static int getvar() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - return var; 2). 下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。 _pubilc_ void paint(Graphics g) g.draw
8、String_(你好! ,10,20); 3). 下面是用户程序对 Applet 类中方法 action( ) 的重新定义, 功能为从单行文本编辑区input 中输入数据赋给k。 TextField 类的对象 input和 int型变量 k 已在类体中正确说明。public _ action( Event e, Object o ) if( e.target=input ) k=Integer.parseInt( _.getText( ) ); repaint( ); return true; 7 请指出下面程序中的错误。 public class Test extends Base publ
9、ic Test() super(); public static void main(String args) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - Test t = new Test(); Test t2 = new Test(TestName); /错误,未在子类中定义此构造方法 class Base String name; Base() System.out.println(Base Constructor)
10、; Base(String name) this.name = name; Test t2 = new Test(TestName); /错误,未在子类中定义此构造方法2.4 继承1是一种软件重用形式,在这种形式中,新类获得现有类的数据和方法,并可增加新的功能。2派生类构造方法可以通过关键字_super_ 调用基类构造方法。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - 3. Java语言的类间的继承关系是( B)。A) 多重
11、的 B) 单重的 C) 线程的 D) 不能继承4编程题(1)根据下面的要求实现圆类Circle:Circle类的成员变量:radius 半径Circle类的方法成员Circle() 构造方法,将半径置为0 Circle(double r) 构造方法,创建Circle对象时将半径初始化为r double getRadius() 获得圆的半径值double getPerimeter() 获得圆的周长double gerArea() 获得圆的面积void disp() 将圆的半径、周长、面积输出到屏幕publicclass Circle privatedoubleradius; public Cir
12、cle() this. radius = 0; public Circle(double r) super(); this. radius = r; publicdouble getRadius() returnradius; publicdouble getPerimeter() return 2*Math.PI * this. radius; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - publicdouble get
13、Area() return Math.PI *Math.pow ( this. radius, 2); publicvoid disp() System.out .println( 半径: +getRadius()+n周长: +getPerimeter()+n面积: +getArea(); (2)继承上题中的圆Circle类,派生圆柱体类Cylinder,要求如下:Cylinder类的成员变量:height 表示圆柱体的高Cylinder类的方法成员:Cylinder(double r,double h) 构造方法,创建Cylinder对象时将圆半径初始化为 r ,圆柱高初始化为h doubl
14、e getHeight() 获得圆柱体的高double getVol() 获得圆柱体的体积void dispVol() 将圆柱体的体积输出到屏幕publicclass Cylinder extends Circle privatedoubleheight; public Cylinder(double r, double h) super(r); this. height = h; publicdouble getHeight() returnthis. height; publicdouble getVol() return getArea()*this. height; publicvoi
15、d dispVol() System.out .println( 圆柱体体积: +getVol(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - 5创建如下图所示继承层次结构中的类。Employee 对象应当有姓名、年龄和社会保险号码,除此之外 SalariedEmployee对象还有周薪, HourlyEmployee对象有相应的基本工资和工作小时数,CommissionEmployee 对象应当有佣金率和销售总额,Ba
16、sePlusCommissionEmployee 对象应当有对应的基本工资。每个类有合适的构造方法和访问其成员属性的方法。请编写一个程序,实例化以上所有类的对象,输出相关员工的基本信息。2.5 多态1实现如图所示的shape 层次结构。 每个 TwoDimensionalShape类应包含 getArea 方法,用来计算该图形的面积。每个ThreeDimensionalShape 类应包含 getArea和 getVolumn 方法,分别用来计算该图形的面积和体积。创建应用程序, 该程序使用一个Shape 引用数组来保存层次结构中的所有图形的具体类的对象,该程序打印每个数组元素所引用的对象。此
17、外, 利用循环结构处理数组中的图形,以确定每个图形是TwoDimensionalShpae还是 ThreeDimensionalShape类的对象,如果图形是TwoDimensionalShpae类的对象,则显示该图形的面积,如果是ThreeDimensionalShape类的对象,则显示该图形的面积和体积。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - 2请指出下面程序中的错误class Father private int
18、 age; public void setAge(int a) this.age = a; public int getAge() return age; public void disp() System.out.println(age is + age); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - class Son extends Father String name; public void setName(St
19、ring name) name = name;/应该些微 this.name = name;否则无法真正初始化类的成员变量name public void disp() disp();/应该用 super.disp();否则运行时会出现堆栈溢出异常System.out.println(my name is + name); public class Test public static void main(String args) Son s = new Son(); s.disp(); name = name;/应该些微 this.name = name;否则无法真正初始化类的成员变量nam
20、e 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - disp();/应该用 super.disp();否则运行时会出现堆栈溢出异常3. 为了区分重载多态中同名的不同方法,要求( A )。A) 采用不同的形式参数列表 B) 返回值类型不同C) 调用时用类名或对象名做前缀 D) 参数名不同2.6 抽象类与接口1 什么是接口?为什么要定义接口?接口与类有何异同?接口是用interface关键字定义的一个抽象类,接口中所有的成员变量
21、都是public static final的,所有方法都是抽象方法,不需要实现只需要有方法名和参数列表和返回值类型2如何定义接口?使用什么关键字? interface 3一个类如何实现接口?实现接口的类是否一定要重写该接口中的所有抽象方法?2.7 包1Java 中引入包的优点是什么?2如何将需要的外部类引入程序中?如何引用包中的某个类?如何引用整个包?3如何运行被打包后的字节码文件?2.8 异常处理1什么是异常?举出程序中常见的异常的种类?2Java 中异常处理有什么优点?3在 Java 中, throw与 throws有什么区别?他们各自用在什么地方?4请设计一个Java 程序,程序中要进行数组操作和除法操作,要求对所设计的程序可能出现的异常进行处理。5定义一个邮件地址异常类,当用户输入的邮件地址不合法时,抛出异常。(其中邮件地址的合法格式为 * *,也就是说必须是在 符号左右出现一个或多个其他字符的字符串。)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -