JavaOOP课堂练习

合集下载

Java作业1:Java基础-+-OOP技术训练

Java作业1:Java基础-+-OOP技术训练

1、作业1: Java基础+ OOP技术训练(封装继承、多态)2、整理出Java的特点。

1.面向对象的语言2.与平台无关3.相对C++较简单4.程序的健壮性5.可移植性6.支持多线程3、详细阐述环境变量PATH、CLASSPATH的作用。

PATH: 配置JDK命令文件的位置。

Java编译器和解释器在Java安装目录的bin文件夹中, 配置PATH变量能使操作系统方便地查找JDK命令。

CLASSPATH: 配置类库文件的位置, 使解释器在加载类时能正确查找类所在的位置。

写出一段HelloWorld的Java程序, 解释程序的各个部分的含义(包定义、包导入、类定义、主函数、打印语句等)package a; //定义a包public class A { //a包中定义A类public A() {System.out.println("HelloWorld."); //打印HelloWorld}}import a.A; //导入a包中的A类public class HelloWorld { //定义类HelloWorldpublic static void main(String[] args) { //主函数A obj=new A();System.out.println("Done.");}}4.(1)定义两个AbstractPole的子类CirclePole, RectanglePole;(2)分别按照圆形、矩形的逻辑定义其构造函数, 用来初始化其底面积计算需要的变量(如半径;长、宽);(3)覆盖父类中的抽象方法area(), 计算对应的截面积;import java.util.Scanner;public abstract class AbstractPole {public abstract double area();public static void main(String[] args) {CirclePole c1=new CirclePole(0);RectanglePole r1=new RectanglePole(0,0);Scanner sc=new Scanner(System.in);System.out.println("请输入半径: ");c1.r=sc.nextInt();System.out.println("圆柱底面积: "+c1.area());System.out.println("请输入长和宽: ");r1.l=sc.nextInt();r1.w=sc.nextInt();System.out.println("棱柱底面积: "+r1.area());}}class CirclePole extends AbstractPole {double r;CirclePole(double r) {this.r=r;}public double area() {return Math.PI*r*r;}}class RectanglePole extends AbstractPole {double l,w;RectanglePole(double l,double w) {this.l=l;this.w=w;}public double area() {return l*w;}}5.定义一个Client类, 定义有一个主函数, 在一个循环体内根据随机数不同, 分别生成CirclePole或者RectanglePole的对象, 将这个对象放到预先定义的数组poleArray中。

javaOOP练习题

javaOOP练习题
A. +B. newC. instanceof
(2)哪种方法适用于类的所有对象而不是某个单独的对象?()
A.通用方法B.实例方法C.类方法
(3)如果程序里有叫做obj1和obj2的对象,当使用语句“obj2 = obj1”时会发生什么情况?()
A.在obj2中的实例变量被赋予与obj1中相同的值
B. obj2和obj1被认为是同一个变量(对象)
C. A和B都不对
(4)如果一个局部变量具有与实例变量相同的名字,如何在局部变量的作用域内引用该实例变量呢?()
A.不能那么做,你应该将其中一个变量重新命名
B.在实例变量名前使用关键字this
C.在名字前使用关键字super
(5)实例变量在类的什么地方被声明?()
A.类的任何地方
B.在类的所有方法外面
三、简答题
指出在下面的程序中,哪些属性和方法发生继承、覆盖和重载。
class Parent{
String first_name;
Stringsex;
int age;
Parent(){}
Parent(String fName){
first_name=fName;
}
void setAge(int a){
public class C {
public static void main(String[] args) {
B b = new B();
System.out.println(b.getA());
}
}
执行结果是什么?
(2)分析运行结果。
classSuper{
public void operation(Supers) {
类方法3如果程序里有叫做obj1和obj2的对象当使用语句obj2obj2中的实例变量被赋予与obj1中相同的值obj1被认为是同一个变量对象都不对4如果一个局部变量具有与实例变量相同的名字如何在局部变量的作用域内引用该实例变量呢

javaoop练习题

javaoop练习题

一、面向对象基础1. 简述面向对象编程的特点。

2. 解释类和对象的关系。

3. 什么是封装?举例说明。

4. 什么是继承?举例说明。

5. 什么是多态?举例说明。

6. 简述Java中的访问控制符。

7. 什么是构造函数?举例说明。

8. 什么是析构函数?举例说明。

9. 什么是抽象类?举例说明。

10. 什么是接口?举例说明。

二、类和对象1. 定义一个名为Person的类,包含姓名、年龄和性别属性,以及相应的构造函数和get/set方法。

2. 定义一个名为Student的类,继承自Person类,增加学号属性,以及相应的构造函数和get/set方法。

3. 定义一个名为Teacher的类,继承自Person类,增加职称属性,以及相应的构造函数和get/set方法。

4. 定义一个名为Student的类,实现一个名为Study的接口,包含一个名为study的方法。

5. 定义一个名为Teacher的类,实现一个名为Teach的接口,包含一个名为teach的方法。

6. 定义一个名为Car的类,包含引擎、轮胎和油箱属性,以及相应的构造函数和get/set方法。

7. 定义一个名为Engine的类,包含功率和转速属性,以及相应的构造函数和get/set方法。

8. 定义一个名为Tyre的类,包含品牌和尺寸属性,以及相应的构造函数和get/set方法。

9. 定义一个名为OilTank的类,包含容量和油量属性,以及相应的构造函数和get/set方法。

10. 定义一个名为Rectangle的类,包含长和宽属性,以及计算面积和周长的方法。

三、继承和多态1. 定义一个名为Animal的抽象类,包含一个抽象方法名为eat。

2. 定义一个名为Dog的类,继承自Animal类,实现eat方法。

3. 定义一个名为Cat的类,继承自Animal类,实现eat方法。

4. 定义一个名为Bird的类,继承自Animal类,实现eat方法。

5. 定义一个名为Mammal的类,继承自Animal类,包含一个方法名为milk。

mstanfu的JAVAOOP模拟题带答案

mstanfu的JAVAOOP模拟题带答案

5. 若已有类A和接口D,现要求类B继承类A,类C继承类B且实现D接 口,如下的写法中正确的是( )。 A. class A extends B{……} B. class C extends A, B implements D。 C. class C extends B implements D D. class C implements D extends B。 6. 以下关于抽象类的描述中,正确的是()。 A. 抽象类没有构造方法。 B. 抽象类必须提供抽象方法。 C. 有抽象方法的类一定是抽象类,而抽象类不一定有抽象方法 D. 抽象类可以通过new关键字实例化。 7. 下列关于子类与父类中构造方法的描述,正确的是()。 A. 构造方法不能重载 B. 构造方法可以重写 C. 子类无法继承父类的构造函数 D. 子类中无法调用父类的构造函数 8. 以下的异常类型属于运行时异常的是:()。 A. SQLException B. IOException C. NullPointerException D. ClassCastException 9. 以下对异常的描述不正确的是( )。 A. 异常分为Error和Exception两类 B. Throwable是所有异常类的父类 C. 在程序中不管是Error类还是Exception类,都可以在捕获后 进行异常处理 D. Exception是RuntimeException和RuntimeException之外异常 的父类 10. 以下对于catch语句的描述中,正确的是() A. try语句中必须要带上catch语句 B. catch语句可以脱离try独立使用 C. 多个catch语句同时存在时,程序会从前往后依次地执行每 条catch子句,一旦捕获异常,转而执行其中的语句,执行 完毕后不再继续执行。 D. 在多条catch语句中,捕获范围大的应当放在前面,捕获范 围小的放在后面,这样可以保证任何一条异常都能够被捕

javaoop测试题及答案

javaoop测试题及答案

javaoop测试题及答案一、选择题(每题2分,共20分)1. Java中,哪个关键字用于定义类?A. classB. interfaceC. enumD. struct2. 下列哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. All of the above3. 在Java中,哪个关键字用于实现继承?A. extendsB. implementsC. overrideD. abstract4. 以下哪个是Java的包装类?A. StringB. IntegerC. ArrayListD. HashMap5. 以下哪个是Java中的错误类型?A. NullPointerExceptionB. IOExceptionC. RuntimeExceptionD. Both A and C6. Java中的main方法的返回类型是什么?A. voidB. intC. StringD. Object7. 下列哪个是Java集合框架中接口?A. ArrayListB. ListC. HashMapD. Iterator8. 在Java中,哪个关键字用于实现多态?A. newB. instanceofC. superD. override9. 以下哪个是Java的异常处理关键字?A. tryB. catchC. finallyD. All of the above10. 在Java中,哪个关键字用于定义接口?A. classB. interfaceC. abstractD. enum答案:1. A2. D3. A4. B5. D6. B7. B8. D9. D10. B二、填空题(每空2分,共20分)1. Java是一种________面向对象的编程语言。

2. 一个Java类可以继承另一个类的__________和实现多个接口。

3. Java中的__________关键字用于定义一个方法或类,该方法或类可以被子类继承并重写。

javaoop_题库

javaoop_题库

javaoop_题库1..给定两个java程序,如下:T ext.java的编译运行结果是(选一项)pubilc interface Face{int count = 40;}pubilc class Text implements Face{private static int counter;pubilc static void main(String[]args){System.out.println( ++counter );}}A、40B、41C、0D、12.Java程序中读入用户输入的一个值,要求创建一个自定义的异常,如果输入值大于10,使用throw语句显式地引发异常,异常输出信息为“something’s wrong!”,语句为(选一项)A、if (I>10) throw Exception("something’s wrong!");B、if (I>10) throw Exception e ("something’s wrong!");C、if (I>10) throw new Exception("something’s wrong!");D、if (I>10) throw new Exception e ("something’s wrong!");3.Java程序中类的定义如下:class Demo {private int[] count;public Demo(){count=new int[10];}public void setCount(int ct,int n){count[n]=ct;}public int getCount(int n){return count[n];}public void showCount(int n){System.out.println("Count is "+count[n]);}}在创建Demo类的实例后,通过调用showCount(9)方法得到的显示结果是(选一项)A、Count is 0B、Count is nullC、编译错误D、运行时错误4.java语言中,下列处理输出操作的所有类的基础的是(选一项)A、DataOutputB、OutputStreamC、BufferedOutputStreamD、IOStream5.Java中,使用()修饰符时,一个类能被同一包或不同包中的其他类访问。

java课堂练习

java课堂练习

课堂练习一(2014-02-24)1.如果只想运行别人的Java程序可以只安装Java运行环境____________。

2._______________环境变量设置中的".;"是指可以加载应用程序当前目录及其子目录中的类。

3._________码文件是与平台无关的二进制码,执行时由解释器解释成本地机器码,解释一句,执行一句。

4.使用Java编译器_______.exe编译源文件得到字节码文件。

5.Java应用程序必须通过Java解释器____.exe来解释执行其字节码文件。

6.如果Java源文件中有一个类是public类,那么源文件的名字必须与这个类的名字完全_______,扩展名是.java 。

7.如果Java源文件中包含了多个类,那么用编译器javac编译完源文件后将生成____个圹展名为.class的文件。

8.Java应用程序总是从主类的_______方法开始执行.9.当Java应用程序中有多个类时,java.exe 命令后的类名必须是包含了__________方法的那个类的名字,即主类的名字。

10._______________是Java Server Pages的缩写,是由Sun公司在1999年推出的一种动态网页技术标准。

11.一个Java程序允许有____________ 个主类。

12.Java Application程序中必须包含一个名为____________的方法。

13.面向对象程序设计方法的特点有抽象、封装、继承和____________ 。

14.表达式3+”5.2”的值是__________________.15.运行Java字节码的假想计算机称为______________________ 。

16.Java程序分为两种类型,分别是Java Application 和_______________ 。

17.Java程序分为两种类型,分别是_______________ 和Java Applet。

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

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

java面向对象程序设计习题答案Java面向对象程序设计习题答案Java是一种广泛应用于软件开发的编程语言,而面向对象程序设计(Object-Oriented Programming,简称OOP)则是一种常用的编程范式。

在学习Java的过程中,习题是非常重要的一部分,通过解答习题可以帮助我们巩固所学的知识,并提升编程能力。

本文将为大家提供一些Java面向对象程序设计习题的答案,希望能对大家的学习有所帮助。

1. 编写一个Java类,实现一个简单的计算器功能。

该计算器应该具有加、减、乘、除四种基本运算功能,并能够接受用户输入的两个操作数和运算符。

在计算结果后,将结果输出给用户。

```javaimport java.util.Scanner;public class Calculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个操作数:");double num1 = scanner.nextDouble();System.out.print("请输入第二个操作数:");double num2 = scanner.nextDouble();System.out.print("请输入运算符(+、-、*、/):"); String operator = scanner.next();double result = 0;switch (operator) {case "+":result = num1 + num2;break;case "-":result = num1 - num2;break;case "*":result = num1 * num2;break;case "/":result = num1 / num2;break;default:System.out.println("无效的运算符!");return;}System.out.println("计算结果为:" + result);}}```2. 编写一个Java类,实现一个简单的学生管理系统。

Java OOP试题

Java OOP试题

1 当你尝试编译和运行下面的程序时会发生什么?public class Test {static int index;Test() {}public static void main(String[] args) {int index;if (args.length > 0) {System.out.println("args[" + index + "]=" + args[index]);}}}下面哪个说法是正确的,请选择正确的答案单项选择A 编译和运行此程序没有任何问题,如果输入命令行参数“张三”,然后运行此代码,最后在控制台输出“张三”B 编译时出错//变量未初始化C 运行时出错说明:2 下面的哪个变量命名是不合法的?请选择正确的答案多项选择A hereB _thereC this;D thatE 2tolodds说明:CE this关键字不能以数字开头3 当你尝试编译和运行下面的程序的时候会发生什么?class Test {public static void main() {System.out.println("hello");}}下面哪个说法是正确的,请选择正确的答案单项选择A 程序不能编译通过,因为main方法没有正确的定义B 程序可以编译通过,但你不能运行此程序,因为这个类不是public的C 程序可以编译并正确运行,并且最后会在控制台输出helloD 程序可以编译通过,但不能运行。

因为main方法没有正确的定义说明:A 抛出异常>>NoSuchMethodError4 当你尝试编译和运行下面的程序的时候会发生什么?public class Test {public static void main(String[] args) {long size = 10;int[] arr = new int[size];size = 20;System.out.println(arr.length);}}下面哪个说法是正确的,请选择正确的答案单项选择A 编译时错误B 运行时错误C 控制台输出10D 控制台输出20说明:C 与size有什么关系?5 编译或运行下面的代码会输出什么public class Test {void test(double a, double b, short c) {System.out.println(1);}void test(float a, byte b, byte c) {System.out.println(2);}void test(double a, double b, double c) {System.out.println(3);}void test(int a, long b, int c) {System.out.println(4);}void test(long a, long b, long c) {System.out.println(5);}public static void main(String[] args) {Test t = new Test();t.test(1.0, 2L, 3);}}请选择正确的答案单项选择A 1B 2C 3D 4E 5说明:C ,double可以存储以上数据6 在JA V A当中的参数传递中,基本数据类型是按值传递而对象类型是按引用传递,下面哪个说法是正确的,请选择正确的答案单项选择A 对B 错说明:A7 下面的哪一种赋值方式是正确的,请选择正确的答案单项选择A char c = …\‟‟;B char c = “cafe”;C char c = …\u01001‟;D char c = …0x001‟;说明:8 下面的代码写出了数组几种声明方式,哪种方式是正确的?请选择正确的答案多项选择A int i[][] = new int[10,10]; xB int i[10][10] = new int[][]; xC int i[][] = new int[10][]; vD int []i[] = new int[10][10]; vE int [][]I = new int[10][10]; v说明:9 当你尝试编译或运行下面的代码会发生什么?class SuperClass {}class SubA extends SuperClass {}class SubB extends SuperClass {}public class Test {public static void main(String[] args) {SubA a = new SubA();SubB b = new SubB();SuperClass c = new SuperClass();c = a;c = b;b = (SubB) c;a = (SubA) c;}}下面哪个说法是正确的,请选择正确的答案单项选择A 编译时错误B 运行时错误vC 编译通过并正常运行说明:10 当你尝试编译或运行下面的代码会发生什么?public class Test {static void show() {System.out.println("static show()");}}class TTT extends Test {void show() {System.out.println("override show()");}public static void main(String[] args) { Test t = new TTT();t.show();}}下面哪个说法是正确的,请选择正确的答案单项选择A 编译时错误v static无法覆盖!B 运行时错误C 输出字符串“static show()”D 输出字符串“override show()”说明:。

Java_OOP练习题

Java_OOP练习题

▲6.假设 Foo 类在(a)中定义,f 是 Foo 类的一个实例。 (b)中的哪些语句是正确的,哪 些是错误的。 public class Foo{ int i; static String s; void iMethod( ){ } static void sMethod( ){ } } (a) (b) ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ System.out.println( f.i ); System.out.println( f.s ); f.iMethod( ); f.sMethod( ); System.out.println(Foo.i ); System.out.println( Foo.s ); Foo.iMethod( ); Foo.sMethod( );
B. 2 : Dog eats bones! D. 0 : Animal eat something!
二、简答题(每题 5 分,共 40 分)
1.请指出下列程序的错误,并给出解释 1. public class Welcome{ 2. public void main(String[] args){ 3. System.out.println(“Welcome to Java!”); 4. } 5. }少了一个 static
12下列对数组的描述中正确的是c数组元素必须是基本数据类型13已知有如下代码是foo类的一个实例则fp将输出下列哪个结果dpublicstaticintmaxintpublicstaticdoublemaxintpublicstaticintmaxintpublicstaticintmaxintpublicstaticintmaxintpublicstaticintmaxdoublepublicstaticcharmaxintpublicstaticdoublemaxint15已知有如下代码该程序运行结果为

JavaOOP试题

JavaOOP试题

JavaOOP 综合测试题(笔试)1) 以下属于OOP的特征有()。

a)继承b)封装c)多态d)隐藏2) JavaOOP中的多态包括()a) 方法重写b)方法重载c) 方法隐藏d)以上都不对3) Java中的访问修饰符包括()。

a)Public b)privatec)protected d)internal4) Java中用于实现继承的关键字是。

a)Extends b)implementsc):d)base5) 以下有关Java继承的说法,正确的有a)Java中的继承是单一继承b)Java中的继承不是单一继承c) 子类可以自动继承父类的全部方法和属性 d) 构造方法和私有方法,私有属性不会被子类继承6) Java中,在子类访问父类的关键字是。

a)superb)basec)thisd)this.parent7) 在java中,如果有父类的引用指向子类的对象的情,以下说法正确的有a)如果用父类的引用调用子类的方法必须是重写的方法b)如果用父类的引用调用子类的方法必须是重载的方法c)如果用父类的引用调用子类的方法,不用重写也不用重载d).在父类中写成虚方法,子类使用new关键字就隐藏8) 以下关于Java重载的说法错误的有a)重载一般发生在一个类中b)重载的方法名称相同c)重载的方法的参数类型和个数相同d)重载的方法的返回类型相同9) 在Java 中,定义抽象类和抽象方法的关键字是。

a)abstractb)finalc)virtuald)interface10) Java中关于抽象类,以下说法不正确的的有( )。

a)抽象类中可以没有抽象方法b)抽象类中可以实例方法c)有抽象方法的类一定是抽象类d)抽象方法中一定有抽象类11) 在java中有关抽象类和继承的说法正确的有( )a)抽角类不能够创建实例b)如果子类继承了抽象类,必须实现父类中的全部抽象方法,否则子类也应声明成抽象类c)可以用抽角类的引用指向实现了该抽象类的对象d)一个类可以同时继承多个抽象类12) 在java中有关接口的说法错误的有a)定义接口使用interface关键字b)接口的方法必须全部是抽象方法c)接口中可以包含非抽象方法d)接口中的属性必须是常量13) 在java中有关接口的说法错误的有a)一个类可以同时实现多个接口b)一个类只能实现一个接口c)一个类可以先继承一个类并同时实现一个接口d)一个类可以先实现一个接口再继承一个类14) 在try-catch-finally中,以下可以与finally一起使用的是()a)try b)catchc)throw d)throws15) 下面代码运行结果是public class Demo {public int add(int a,int b){try{return a+b;}catch(Exception e){System.out.println("catch语句块");}finally{ System.out.println("finally语句块");}return 0;}public static void main(String[] args) {Demo demo=new Demo();System.out.println("和是:\t"+demo.add(9,34));}}a)编译异常b)finally语句块和是43c)和是43d)finally语句块16) 以下对自定义的异常描述正确的是:( )a)自定义的异常必须继承Exceptionb)自定义的异常可以更加明确的定位异常出错的位置,同时给出详细的异常信息c)自定义的异常类的父类可以继承Errord)java中不能自定义异常类17) 以下对log4j日志信息级别由高到低排列,确的是a)Error,warn,info,debug b)Info,debug,error,warnc)Warn,info,debug,error d)Debug,erro,warn,info18) 以下在Java中每个基本数据类型与对应的封装类,对应不正确的有a)int Integerb)float Floatc)double Doubled)char Char19) 在Java中,有关装箱和拆箱说法正确的是a)java中的八种基本数据类型有String,int,float,double,char,long,floatb)装箱是由基本数据类型转换为包装类c)拆箱是由包装类转换为基本数据类型d)以上说法都不正确20) 以下对反射描述错误的是()a)反射是程序在运行时能够获取自身信息的机制b)通过反射可以获取类的结构,首先要取得类的Class对象c)通过反射可以调取一个类中的方法d)通过反射只能获取当前类的结构信息,不可以获取当前类父类的结构信息21)以下关于端口号和IP地址描述正确的是()a)IP地址是用来区分不同计算机的标识b) 端口号是用来区分不同计算机的标识c)端口号是用来区分计算机中不同程序的标识c)IP是用来区分不同计算机的标识22)23)24)25) 26)在Java集合框架中,下列属哪一个是属于集合框架的根接口a)Collection b)Collectionsc)Map d)Set以下集合类以键值对形式存储的是a.ArrayListb.HashSetc.Vectord.HashMap以下对HashMap和HashTable描述正确的是()。

javaoop课后选择题

javaoop课后选择题
}
}
class Sample {
public static void main(String[] args) {
Base base=new Child();
base.methodB();
}
}
A.Base method
B.Child methodB
C.Base method Child MethodB
String name="student";
String school="school";
}
class Test{
public static void main(String[]args){
Person p=new Student();
p.shout();
name="Base constructor";
}
public Base(String pName){
name=pName;
}
public void method(){
System.out.println(name);
}
}
class Child extends Base{
System.out.print(s.result(4.0,4.5)+",");
System.out.print(10,9);
}
A.3.0,4.0,1
B. 2,4.0,1
C. 3.0,4.5,1
D.-1,4.0,1
A
4.构成方法重载的要素不包括()
A.方法名与类名相同
D.正常运行,输出结果:cc

javaoop试题及答案

javaoop试题及答案
A.count1=9 count2=9
B.count1=10 count2=9
C.count1=10 count2=10
D.count1=9 count2=10
正确答案:B你的答案:空
23.在java中,下列赋值语句正确的是(选两项)【JAVAOOP】
A.char c='a';
B.char c="a";
A.40
B.41
C.0
D.1
正确答案:D你的答案:空
27.在Java中,下面关于包的陈述中正确的是(选一项)【JAVAOOP】
A.包的声明必须是源文件的第一句代码
B.包的声明必须紧跟在import语句的后面
C.只有公共类才能放在包中
D.多个源文件中的类不可以放在同一个包中
正确答案:A你的答案:空
28.在Java中,下列选项表示字符'a'值的是(选一项)【JAVAOOP】
A.Statement
B.CallableStatement
C.PrepareStatement
D.ParameterStatement
正确答案:C你的答案:空
11.在Java中,下面关于构造函数的描述正确的是(选一项)【JAVAOOP】
A.类必须有显式构造函数
B.它的返回类型是void
C.它和类有相同的名称,但它不能带任何参数
A.A
B.B
C.97
D.98
正确答案:C你的答案:空
7.在Java中,下面描述块中可以有嵌套try块
B.try块后最多可以跟随3个catch块
C.try块可以单独存在
D.finally块可以单独存在
正确答案:A你的答案:空

JavaOOP题目2

JavaOOP题目2
D).如果修饰方法,则该方法所在的类不能被继承
21.在java中,假定myInterFace接口的定义如下所示,则下列()代码能通过编译。
interface myInterface{
boolean m1();
byte m2(short s);
} (选择二项)
A). interface myInterface2 implements myInterface{}
this.x = (int)f;
}
public int getX() {
return x;
}
public static void main(String[] args) {
Sample s = new Sample(5.2);
System.out.println(s.getX());
}
}
A).发生编译期错误,编译器提示:出现重复的方法Sample
B). public voidOrange(){…}
C). publicOrange(String s){…}
D). public String Orange(String s){…}
13.编译运行下面的Java程序,产生的结果是()(选择一项)
interface A {
public int x = 0;
B). static
C). protected
D). final
4.在Java接口中定义变量,下面语法错误的是( )。(选择一项)
A). static int MALE=1;
B). final int MALE=1;
C). int MALE=1;
D). private int MALE=1;
5.在Java中,下面关于构造方法的说法错误的是()(选择一项)

JAVAOOP测试题

JAVAOOP测试题
classC extends B{
publicC(){
super();
}
}
a)用来调用类B中定义的super()方法
b)用来调用类C中定义的super()方法
c)用来调用类B的无参构造方法
d)用来调用类B中第一个出现的构造方法
11、在Java中,类Test的代码如下所示,假设类Test的实例化对象名为t,则选项()中的语句能正确调用Test类的方法。
c)try,finally
d)try,catch,finally
25、这个方法的返回值是()。
Publicintcount(){
try{
return5/0;
}catch(Exception e){
return2*3;
}finally{
return3;
}
}
a)0
b)6
c)3
d)程序错误
26、下面代码的运行结果是()。
}
Base(){
amethod();
}
}
publicclass Descend extends Base{
inti=-1;
publicstatic void main(String[]args){
Base b = new Descend();
System.out.println(b.i);
b.amethod();
c)子类可以通过this关键字来访问父类的私有属性
d)子类继承父类的方法访问权限保持不变
19、Try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行?
a)不会执行
b)会执行,在return前执行

java oop练习题

java oop练习题

java oop练习题Java是一种广泛使用的编程语言,支持面向对象编程(Object-Oriented Programming,OOP)的开发方式。

通过OOP,我们可以更好地组织和管理代码,使程序更加模块化、可复用和易于维护。

为了提升对Java面向对象编程的理解和实践能力,以下是一些Java OOP练习题,帮助您更好地掌握Java面向对象的基本概念和应用。

1. 定义一个名为"Car"的类,具有以下属性:品牌(brand)、颜色(color)和价格(price)。

编写类的构造方法和获取属性值的方法。

2. 在Car类中添加一个方法:outputInfo(),该方法用于展示汽车的品牌、颜色和价格信息。

3. 定义另一个名为"Student"的类,具有以下属性:姓名(name)、年龄(age)和分数(score)。

编写类的构造方法和获取属性值的方法。

4. 在Student类中添加一个方法:outputInfo(),该方法用于展示学生的姓名、年龄和分数信息。

5. 创建一个Car实例,并使用相关方法设置和获取汽车的属性值,最后调用outputInfo()方法展示汽车的信息。

6. 创建一个Student实例,并使用相关方法设置和获取学生的属性值,最后调用outputInfo()方法展示学生的信息。

7. 定义一个名为"Circle"的类,具有以下属性:半径(radius)。

编写类的构造方法和获取属性值的方法。

8. 在Circle类中添加一个方法:计算圆的面积(area),并返回结果。

9. 创建一个Circle实例,并使用相关方法设置和获取圆的半径值,最后调用计算圆的面积的方法,并展示结果。

10. 定义一个名为"Rectangle"的类,具有以下属性:宽度(width)和高度(height)。

编写类的构造方法和获取属性值的方法。

11. 在Rectangle类中添加一个方法:计算矩形的面积(area),并返回结果。

JavaOOP课堂练习

JavaOOP课堂练习

第 2 章 多态和接口
1:使用多态实现打印机
训练技能点 多态 需求说明 现在模拟工人使用打印机打印书籍, 考虑到程序的可扩展性, 要求使用多态。 在上一章 任务 4 的基础上我们需要再创建一个 Employee 类。 实现步骤 (1) 编写 Employee 类,在类中实现一个 makeBook(Printer p) 方法来模拟使用 打印机打印书籍,参数类型是父类 Printer 。参考代码如下所示。
图 1.2.2 断点调试 (5) 继续单击【Step Into 】按钮会发现当构造方法执行完之后,程序才会回 到 main 方法中执行最后那行输出语句。
3:使用方法重载模拟司机开车
训练技能点 方法重载 需求说明 在现实生活中,假设一个司机可以驾驶轿车、客车和货车。现在要求使用方 法重载来实 现这个生活案例。 实现步骤 (1) 创建轿车类、客车类和货车类,属性自定。 (2) 创建司机类,属性自定。 (3) 在司机类中针对轿车、客车和货车分别创建三个驾驶方法。 (4) 创建测试类并进行测试。
public void takePhoto(Target target) { System.out.println("用 IPhone 手机对 " + target + " 进行拍照"); } } //YangMi 类,实现 Target,可以对其拍照 public class YangMi implements Target {
p.photograph(iPhone, yangmi); } }
运行效果如图 2.2.2 所示。
图 2.2.2 运行效果
第 3 章 异常处理
1:使用异常
训练技能点 异常处理 需求说明

JavaOOP附加题

JavaOOP附加题

JavaOOP 附加题第1章附加题作业一:方法重载创建一个名称为的Overload类,在类重载method()方法。

第一个method()方法不带任何参数,并显示“不带参数的函数”的消息。

第二个method()方法带有一个字符串参数,其返回类型为空,并在函数内部显示该字符串。

第三个method()方法带有两个整型参数,在方法内求峡两个整数的和,并返回求和结果。

编写Overload类,在类中定义main()方法,在main()方法中创建一个Overload类对象,并分别调用method()方法的三个重载版本。

作业二:方法重载创建一个类,为该类定义三个方法,分别执行下列操作:1)传递两个整数值并找出其中较大一个值;2)传递三个double值并求出其积3)传递两个字符串值并检查其是否相等4)在main()方法中检测其中两个对象是否相等,并显示相应的消息。

5)equals()方法用于检测个对象是否相等,如果相等,返回true第2章附加题一、使用面向对象的思想实现“龟兔赛跑”。

二、用面向对象的思想编写类,描述发动机,汽车,奔驰车和驾驶员的关系。

三、医生(Doctor)有姓名(name)、编号(idNumber)和地址(address)等基本信息,医生又分为专业医生和非专业医生。

非专业医生所具有的信息与上述的一样,但专业医生除了具有上述的基本信息外,还有特有的信息:专业(speciality)。

请根据他们之间的关系,创建一个Doctor类,以包含有关医生的信息,再利用继承创建一个非专业医生类NonSpecialist和一个专业医生类Specialist,并利用这些类的对象来显示他们各自的信息。

第4章附加题一、编写接口和类,描述一下USB接口和打印机、鼠标的关系。

二、编写接口Addition定义add方法,参数是两个int类型,编写此接口的两种实现,一种是将参数相加后输出,一种是相连后输出。

三、自然界有好多排序的方法(1)编写排序接口,包含3个方法,一个比较大小的方法和两个排序(从打到小,从小到大排序)的方法,比较大小的方法接收2个object类型的参数,用于比较;返回int类型,表示比较结果,排序方法接收一个object数组参数,用于排序,返回Object类型,表示排序结果(2)编写默认的实现类,使用比较大小的方法实现排序方法。

OOP基础试题(Java)

OOP基础试题(Java)

OOP基础试题(答案在后面)一、单项选择1.已知:class C {public static void main(String[] args) {boolean a = true;boolean b = false;boolean c = true;if((a & b) | (b & c) & c)System.out.print("A");if((a & c) | (a | b))System.out.print("B");}}(A)A (B)B (C)AB (D)编译错误2.已知:class C {public static void main(String[] args) {int a = 1;int b = 2;System.out.print(“7” + 5 + 4);System.out.print(m() + a + 3);System.out.println(a + b + m());}public static String m() {return “6”;}}(A) 79613126 (B) 79614336 (C) 75461336 (D) 7546131263.下面代码的输出是class C {public static void main(String[] args) {int x = 1;System.out.print((x > 1) & (x++ > 1));System.out.print(“”);System.out.print((x > 1) && (x++ > 1));}}(A)false true (B)true false(C)false false (D)true true4.已知:class C {public static void test(String s) {if(s == null | s.length() == 0) {System.out.println(“String is null”);}else {System.out.println(“String is not null”);}}public static void main(String[] args) {test(null);}}则输出为(A)String is null (B)String is not null (C)编译错误(D)运行时异常5.import语句的作用是(A)导入包中成员(B)创建包(C)既可导入包成员,也可创建包(D)访问控制6.接口中的成员方法被隐含地声明为(A)public static final (B)protected abstact (C)private (D)public abstract 7.接口中的成员变量被隐含地声明为(A)public static final (B)public final (C)public static (D)public abstract 8.已知:class A {public final void m() {System.out.println("A.m");}}public class B extends A {public void m() {System.out.println("B.m");super.m();}public static void main(String [] args) {new B().m();}}那么结果为?(A)A.m (B)B.m(C)B.m (D)编译错误A.m9. 已知:class Base {public Base(String s) {System.out.print("B");}}public class Derived extends Base {public Derived (String s) {System.out.print("D");}public static void main(String [] args) {new Derived ("C");}}那么结果为?(A)BD (B)DB (C)C (D)编译错误10.如果类中的成员只能被子类或同一包中的类访问,那么声明该成员时应使用下面哪个修饰符(A)private (B)package (C)protected (D)public11.如果类中的成员只能被同一包中的类访问,那么声明该成员时应使用下面哪个修饰符(A)protected (B)package (C)public (D)不使用访问修饰符12.关于包的描述错误的是(A)包可以将相关的类和接口组织在一起,便于识别和管理(B)包中的类可以访问同一包的其它类的私有成员(C)不同包中的相同命名,不会产生冲突(D)用public修饰的顶级类和接口对包外代码可见13.已知:class C {public static void main(String[] args) {System.out.println(sqrt(4));}}要使程序正确编译需要在横线处添加哪句代码(A)import ng.Math;(B)import ng.Math.*;(C)import static ng.Math;(D)import static ng.Math.*;14.已知:class C {public static void main(String[] args) {for(int i = 1; i < args.length; i++) {System.out.print(args[i]);}}}在命令行中执行:java C D E F则输输出为(A)CDEF (B)DEF (C)EF (D)F15.抛出异常,使用关键字(A)try (B)throw (C)finally (D)catch16.为了区分方法重载时同名的不同方法,要求( )。

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

(4) 创建接口的实现类。
//数码相机类,实现 Photographable 接口 public class Camera implements Photographable {
public void takePhoto(Target target) { System.out.println("用照相机对 " + target + " 进行拍照"); } } //IPhone 类,实现 Photographable 接口 public class IPhone implements Photographable {
请分析以上代码,判断在运行时可能会出现哪些异常,然后使用 Java 进行异常 处理。
2:使用 log4j
训练技能点 log4j 需求说明 在任务 1 的基础上使用 log4j 将异常信息记录到日志中 实现步骤 (1) 添加 log4j 的 Jar 包到项目中 (2) 创建并编辑 log4j.propertites 配置文件 (3) 在程序中使用 Logger 对象记录异常信息到 exception.log 文件中 (4) 测试
2:通过断点调试观察构造方法的执行
训练技能点 构造方法 需求说明 通过断点调试的方式观察构造方法的执行过程 实现步骤 (1) 给 Teacher 类增加一个无参的构造方法,代码如下所示。
public class Teacher { private String name; private int age;
public Teacher() { ="张老师"; this.age=28; } //此处省略 getter/setter 方法 }
(2) 编写 Test 类进行测试,如图 1.2.1 所示。
图 1.2.1 测试类 (3) main 方法中只用两行代码,在第一行代码处设置一个断点,然后启动断 点调试。 (4) 程序在运行至 main 方法第一行时中断了下来,这时单击调试窗口中的 【Step Into】按钮会发现程序进入到了构造方法中,如图 1.2.2 所示。
(2) 创建 MP3 类并实现 USB 接口。
public class Mp3 implements USB{ public void work() { System.out.println("Mp3 正在工作..."); } }
(3) 创建优盘类并实现 USB 接口。
public class Youpan implements USB{ public void work() { System.out.println("优盘正在工作..."); } }
public interface Target { //获得外观方法,任何实体都可以实现这个接口 public String getOutlook(); }
(2) 创建一个拍照接口,实现该接口的类都可以拍照,手机、相机、 iPad 等 等。
public interface Photographable { /** * 拍照方法,要有一个物体==目标 * @param target */ public void takePhoto(Target target); }
(2) 编写测试类。运行效果如图 2.2.1 所示。
图 2.2.1 运行效果
2:使用抽象类和抽象方法模拟不同人种
训练技能点 抽象类和抽象方法 需求说明 世界上有很多人种,例如中国人、美国人等,他们所说的语言各不相同。不 管是什么 人种,他们都是人类,这里存在继承关系。 实现步骤 (1) 创建一个抽象类 Person,属性:name 和 age (2) 在 Person 类中定义一个抽象方法 say() (3) 创建 Chinese 类继承 Person (4) 创建 American 类继承 Person
public class SuperVehicle implements Motor,Steamer,Plane{
public void fly() { System.out.println("我能在空中飞行!"); } public void sailing() { System.out.println("我能在海上航行!"); } public void run() { System.out.println("我能在陆地行驶!"); } }
第 1 章 封装与继承
1:使用封装实现教员类和学生类
训练技能点 封装 需求说明 封装教员类和学生类,属性: name 和 age 实现步骤 (1) 创建 Teacher 类。 (2) 定义私有属性。 (3) 创建构造方法。 (4) 生成 Getter/Setter 方法。 (5) 创建 Student 类。 (6) 定义私有属性。 (7) 创建构造方法。 (8) 生成 Getter/Setter 方法。
public String getOutlook() {
return "杨幂"; } }
(5) 创建测试类,运行系统。
public class Test {
/** * @param args */ public static void main(String[] args) { Photographable canon = new Camera();//创建相机对象:佳能 Target yangmi = new YangMi();//创建一个目标对象:杨幂 Photographable iPhone = new IPhone();//创建相机对象:iPhone Photographer p = new Photographer(); p.photograph(canon, yangmi);
p.photograph(iPhone, yangmi); } }
运行效果如图 2.2.2 所示。
图 2.2.2 运行效果
第 3 章 异常处理
1:使用异常
训练技能点 异常处理 需求说明
public static void main(String[] args) { String[] subjects=new String[]{"java","html","c#"}; System.out.println("课程:1.java 2.html 3.c#"); System.out.println("请选择你要学习的课程:"); Scanner sc=new Scanner(System.in); int s=sc.nextInt(); System.out.print("你选择的课程是:"+subjects[s-1]); }
3:实现电脑 USB 接口
训练技能点 接口
需求说明 在现实生活中,我们经常通过电脑的 USB 接口来使用一些设备,例如 mp3、 移动硬盘、 优盘等。现在要求使用面向接口编程去模拟实现这个例子。 实现步骤 (1) 创建 USB 接口,接口中只定义一个 work()方法。
public interface USB { public void work(); }
(4) 创建电脑类并定义一个使用接口的方法 useMobile(USB u)。
public class Computer { public void useMobile(USB u) { u.work(); } }
(5) 创建测试类进行测试。
4:开发海陆空交通工具
训练技能点 接口 需求说明 陆地上最常用的交通工具是汽车,海上最常用的交通工具是轮船,空中最常
图 1.2.2 断点调试 (5) 继续单击【Step Into 】按钮会发现当构造方法执行完之后,程序才会回 到 main 方法中执行最后那行输出语句。
3:使用方法重载模拟司机开车
训练技能点 方法重载 需求说明 在现实生活中,假设一个司机可以驾驶轿车、客车和货车。现在要求使用方 法重载来实 现这个生活案例。 实现步骤 (1) 创建轿车类、客车类和货车类,属性自定。 (2) 创建司机类,属性自定。 (3) 在司机类中针对轿车、客车和货车分别创建三个驾驶方法。 (4) 创建测试类并进行测试。
public static void main(String[] args) {
Printer p1=new BlackPrinter(); Printer p2=new ColorPrinter();
Employee e=new Employee(); e.makeBook(p1); e.makeBook(p2); }
(3) 创建摄影师类,实现摄影方法。
/** * 摄影师类 把两个系统连接起来 * @author Administrator * */ public class Photographer { /** * 拍照方法 * @param tool
* @param target */ public void photograph(Photographable tool,Target target){ tool.takePhoto(target); } }
(5) 创建测试类进行测试。
5:面向接口编程
训练技能点 � 接口的定义 � 实现接口 � 面向接口编程 需求说明 模拟摄影师照相的过程,要求摄影师可以通过相机拍照也可以通过其他的设 备照相,譬如:手机;摄影师可以拍人像、风景等任何物体。要求该系统具备良 好的可维护性可扩展性。 实现步骤 (1) 摄影师可以对任何物体拍照,并没有局限于一个具体类别,所以先设计 一个接口。
第 2 章 多态和接口
1:使用多态实现打印机
训练技能点 多态 需求说明 现在模拟工人使用打印机打印书籍, 考虑到程序的可扩展性, 要求使用多态。 在上一章 任务 4 的基础上我们需要再创建一个 Employee 类。 实现步骤 (1) 编写 Employee 类,在类中实现一个 makeBook(Printer p) 方法来模拟使用 打印机打印书籍,参数类型是父类 Printer 。参考代码如下所示。
相关文档
最新文档