当前位置:文档之家› Java并发编程实践课程习题与答案Java面向对象

Java并发编程实践课程习题与答案Java面向对象

Java并发编程实践课程习题与答案Java面向对象
Java并发编程实践课程习题与答案Java面向对象

Java并发编程实践课程习题与答案

Java语言概述

1、Java源程序是由什么组成的?一个程序中必须有public类吗?Java源文件的命名

有什么规定?

2、应用程序和小应用程序的主要区别是什么?

3、开发与运行应用程序需要经过哪些主要步骤和过程?

4、安装JDK之后如何设置JDK系统的PATH,CLASSPATH?他们的作用是什么?

5、Java语言特点是什么?

6、分别用JDK、GEL和Eclipse编写能输出“Hello World!”的Java应用程序。Java面向对象程序设计基础

1、什么是类?什么是对象?对象和类是什么关系?

2、什么是方法?结构方法和一般方法有什么区别?设计方法应考虑哪些因素?

3、为什么要将类进行封装,封装的原则是什么?

4、创建一个有两个方法的类,要求其中第一个方法两次调用第二个方法,第一次不

使用this,第二个使用this。

5、要求设计一个矩形类Rectangle,要求实现构造方法的多态。并利用这些构造方法

实例化不同的对象,并输出相应的信息。

6、计算出Fibinacii 序列的前n项,n的值要求从命令行输入。Fibinacii 序列的

前两项是1,后续每项的值都是该项的前两项之和。即

F(n)=F(n-1)+F(n-2)

F(1)=F(2)=1;

7、什么是继承?什么是父类?什么是子类?继承的特性可给面向对象编程带来什么好处?

什么是单重继承?什么是多重继承?

8、“子类的成员变量和成员方法的数目一定大于等于父类的成员变量和成员方法的数

目”,这种说法是否正确?为什么?

9、什么是方法的覆盖?方法的覆盖与域的隐藏有何不同?与方法的重载有何不同?

10、什么是多态?面向对象程序设计为什么要引人多态的特性?使用多态有什么优点?

11、父类对象与子类对象相互转化的条件是什么?如何实现它们的相互转化?

12、一个类如何实现接口?实现某接口的类是否一定要重载该接口中的所有抽象方法?

13、编写求解几何图形(如直线、三角形,矩型,圆,多边型)的周长,面积的应用

程序,要求用到继承和接口等技术。

14、编写求解一元多次方程(如一元一次,一元二次,一元高次方程)的解。

15、找出以下代码有错误的部分

public int searchAccount(int number[25]){

number =new int[15];

for(int i=0;i

number[i]=number[i-1]+number[i+1];

return number;

}

16、将一个字符串中的小写字母变成大写字母,并将大写字母变成小写字母.

17、求若干个数的平均数,若干个数从键盘输入.

18、将一个字符串数组按字典序重新排列.

19、编写应用程序,分析字符串,分别输出字符串的单词,并统计出单词个数.

20、编写应用程序,实现字符串“Dot saw I was Tod”的倒转。

21、找出两个字符串中所有共同的字符。

答案

1、J ava程序是由什么组成的?一个程序中必须有public类吗?Java源文件的命名规则是怎样的?

答:一个Java源程序是由若干个类组成。一个Java程序不一定需要有public类:如果源文件中有多个类时,则只能有一个类是public类;如果源文件中只有一个类,则不将该类写成public也将默认它为主类。源文件命名时要求源文件主名应与主类(即用public修饰的类)的类名相同,扩展名为.java。如果没有定义public类,则可以任何一个类名为主文件名,当然这是不主张的,因为它将无法进行被继承使用。另外,对Applet小应用程序来说,其主类必须为public,否则虽然在一些编译编译平台下可以通过(在BlueJ下无法通过)但运行时无法显示结果。

2、怎样区分应用程序和小应用程序?应用程序的主类和小应用程序的主类必须用public修饰吗?

答:Java Application是完整的程序,需要独立的解释器来解释运行;而Java Applet则是嵌在HTML编写的Web页面中的非独立运行程序,由Web浏览器内部包含的Java解释器来解释运行。

在源程序代码中两者的主要区别是:任何一个Java Application应用程序必须有且只有一个main方法,它是整个程序的入口方法;任何一个Applet小应用程序要求程序中有且必须有一个类是系统类Applet的子类,即该类头部分以extends Applet结尾。

应用程序的主类当源文件中只有一个类时不必用public修饰,但当有多于一个类时则主类必须用public修饰。小应用程序的主类在任何时候都需要用public来修饰。

3、开发与运行Java应用程序需要经过哪些主要步骤和过程?

答:主要有三个步骤

(1)、用文字编辑器notepad(或在Jcreator,Gel, BuleJ,Eclipse, Jbuilder等)编写源文件;

(2)、使用Java编译器(如Javac.exe)将.java源文件编译成字节码文件.class;

(3)、运行Java程序:对应用程序应通过Java解释器(如java.exe)来运行。

4、安装JDK之后如何设置JDK系统的PATH,CLASSPATH?他们的作用是什么?

答、更新系统PATH的方法随Windows版本不同而不同。对于Windows 95/98,可以将下列项目作为C:\autoexec.bat文件的最后一行:

SET PATH = d:\jdk1.5.0\bin;%PATH%

当程序需要第三方的类库支持, 而且比较常用, 就可以采用此种方法.比如常用的数据库驱动程序, 写 servlet 需要的 servlet 包等等. 设置方法就是在环境变量中加入 CLASSPATH. 然后就可以直接编译运行了.Java运行环境从CLASSPATH环境变量中寻找要执行的用户项目(三方的类库)。可以按如下的方式设置

SET CLASSPATH=.;d:\jdk1.5.0\jre\lib\rt.jar;%CLASSPATH%

通常我们要从当前目录中寻找用户类,因为开发的程序相关的类放在这里,. 表示当前工作目录.

5、Java语言特点是什么?

答:Java是一种简单的、面象对象的、分布式的、健壮的、安全的、结构中立的、可移植的、性能很优异的多线程的、动态的计算机语言。

6、使用Eclipse编写能输出“Hello World!”的Java应用程序。

答:1)

我们将在 Navigator 中创建一个项目。右键单击 Navigator 视图,然后选择New=>Project。当 New Project 对话框出现时,选择左面的 Java。标准 Eclipse 只有一种 Java 项目类型,名为“Java Project”。选择 Java Project,在提示项目名称时输入“Hello”,然后按 Finish。

右键单击“Hello”项目,选择New=>Class,如图 2 所示。在随后出现的对话框中,键入“Hello”作为类名称。在“Which method stubs would you like to create?”下面,选中“public static void main(String[] args)”复选框,然后按 Finish。

图 2. 在 Java 透视图中创建新类

这样将在编辑器区域创建一个包含 Hello 类和空的 main() 方法的 .java 文件,如图 3 所示。然后向该方法添加如下代码

一旦代码无错误地编译完成,就能够从 Eclipse 菜单上选择 Run 来执行该程序。这时会出现一个具有适当默认设置的 Launch Configurations 对话框;请按右上角的 Run 按钮。一个新的选项卡式窗格将出现在下面的窗格(控制台)中,其中显示了程序的输出。

1、什么是类?什么是对象?对象和类是什么关系?

答:类是抽取了同类对象的共同属性和行为形成的对象或实体的“模板”。

对象是现实世界中实体的描述,是其自身所具有的状态特征及可以对这些状态施加的操作结合在一起所构成的独立实体。

类和对象之间的关系是抽象和具体的关系:类表达的是一种抽象的概念,它描述了该类对象的共同特征;而对象是具体事物,以类为模板来生成,它具有自己的状态。举例:类与对象的关系犹如零件的图纸与按图纸制造出的零件关系一样;图纸(类)描述了零件(对象)的共同特征,每个零件(对象)又有自己的个性,如加工精度的不同等等

2、什么是方法?方法的结构是怎样的?设计方法应考虑哪些因素?

答:方法是Java类的一个组成部分,通过类的方法改变对象的状态。

方法的结构:[方法修饰符] 返回值类型方法名([形参列表])[throws异常列表]

{

方法体;

}

设计方法应考虑因素有:

(1) 方法名是Java中任意的标识符,按照命名的约定,方法名应该是有意义的动词或动词

短语,它的第一个字母一般要小写,其他有意义的单词的首字母要大写,其余字母小写。

(2) 返回值类型可以是任意的Java类型,甚至可以是定义此方法的类。如果方法没有返回

值,则用void表示。

(3) 形式参数列表是可选的。如果方法没有形式参数,就用一对小括号“()”表示。形式参

数列表的形式如下:

(类型形参名,类型形参名,……)

(4) throws异常列表规定了在方法执行中可能导致的异常。

3、创建一个有两个方法的类,要求其中第一个方法两次调用第二个方法,第一次不

使用this,第二个使用this。

答:

class Rectangle //矩形类

{

int width; // 矩形的宽

int usethis(int width) //返回宽度的函数

{this. width= width; //指自己这个对象

return width;

}

int unusethis(int width)

{ int w=width;

return w;

}

public static void main(String args[])

{

Rectangle r=new Rectangle(); //类对象的实例化

System.out.println("It is about the node of this."); //输出语句

System.out.println(https://www.doczj.com/doc/9b3858116.html,ethis(1));

System.out.println(r.unusethis(2));

运行结果:

It is about the node of this.

1

2

4、要求设计一个矩形类Rectangle,其中含有多个构造方法。利用这些构造方法实

例化不同的对象,并输出相应的信息。

答:

import java.io.*;

class Rectangle //矩形类

{

private int width; //矩形的宽度

private int length; //矩形的长度

Rectangle() //矩形的不带参数的构造函数,缺省的给出长(30)和宽(20)

{

length=30;width=20;

}

Rectangle(int l,int w) //矩形的带参数的构造函数

{

length=l;width=w;

}

Rectangle(Rectangle r) //此构造方法以另一个Rectangle作为参数

{

width=r.width(); //通过对象调用函数并附值给相应变量

length=r.length();

}

int width() //返回宽度

{

return width;

}

int length() //返回长度

{

return length;

}

}

public class CRctngle

{

public static void main (String args[ ])

{

Rectangle x1=new Rectangle(); //声明类的对象并实例化

Rectangle x2=new Rectangle(50,40); //声明类的对象并初始化

Rectangle x3=new Rectangle(x1);

System.out.println(x1.length());

System.out.println(x1.width());

System.out.println(x2.length());

System.out.println(x2.width());

System.out.println(x3.length());

System.out.println(x3.width());

}

}

运行结果:30

20

50

40

30

20

体会:此程序中共定义了3个构造方法:Rectangle()、Rectangle(int l,int w) 、Rectangle(Rectangle r) ,其中Rectangle()是没有参数的,Rectangle(int l,int w)以常数作为参数,Rectangle(Rectangle r)是以对象最为参数。构造函数调用时在用new运算符创建类对象是由系统自动完成的,构造函数的参数传递和形实结合也是由系统在调用的同时自动完成。

5、计算出Fibinacii 序列的前10项,Fibinacii 序列的前两项是1,后续每项的值都是

该项的前两项之和。即

F(n)=F(n-1)+F(n-2)

F(1)=F(2)=1;

答:class Fibi

{ public long fibinacii(int n)

{ long c=0;

if(n==1||n==2)

c=1;

else

c=fibinacii(n-1)+fibinacii(n-2);

return c;

}

}

public class Example4_5

{ public static void main(String args[])

{ Fibi a=new Fibi();

for(int i=1;i<=10;i++)

{ System.out.print(" "+a.fibinacii(i));

}

}

6、什么是继承?什么是父类?什么是子类?继承的特性可给面向对象编程带来

什么好处?什么是单重继承?什么是多重继承?

解:继承是面向对象程序设计中两个类之间的一种关系。当一个类获取另一个类中

所有非私有的数据和操作的定义作为它自己的部分或全部成分时,就称这两个类之间具

有继承关系。被继承的类称为父类或超类,继承了父类或超类的所有数据和操作的类称

为子类。

面向对象程序设计中的继承,可使得程序结构更加清晰,降低了编码和维护的工作量。

如果一个类只能有一个父类,则这种继承关系称为单重继承;如果一个类可以有多个

父类,则这种继承关系称为多重继承。

7、“子类的域和方法的数目一定大于等于父类的域和方法的数目”,这种说法是否

正确?为什么?

解:这种说法是错误的,因为子类不一定能继承父类的所有域和方法,它只能继承所

有非私有的域和方法。如果子类在继承之外自己定义的域和方法数目小于父类中私有成

员的数目,则子类的域和方法的数目小于父类的域和方法的数目。

8、什么是方法的覆盖?方法的覆盖与域的隐藏有何不同?与方法的重载有何不同?

解;子类重新定义父类中已经存在的方法,称为方法的覆盖。注意:方法覆盖与域的

隐藏不同。子类重新定义父类已有的域,并不能完全取代它从父类那里继承的同名的域,

这个域仍然占用子类的内存空间,在某些情况下会被使用;而当子类重新定义父类的方法

时,从父类那里继承来的方法将被新方法完全取代,不再在子类的内存空间中占一席

之地。与方法的覆盖不同,重载不是子类对父类同名方法的重新定义,而是在一个类中定义了同名的不同方法。

9、什么是多态?面向对象程序设计为什么要引人多态的特性?使用多态有什么优点?

解:一个类中存在多个同名的方法,称为多态。把抽象功能和目的相同,而具体实现

因不同情况而异的方法命名为同名方法,符合面向对象程序设计中抽象、提升概念,封装、

隐藏细节的特点,从而提高了程序的简洁性和可读性,降低了类和程序模块直接的相互耦

合和依赖。

10、父类对象与子类对象相互转化的条件是什么?如何实现它们的相互转化?

解:一个子类对象也可以被合法地视为一个父类的对象,即一个父类对象的引用,其

指向的内存单元可能实际上是一个子类的对象。在这种情况下,可以使用强制类型转换,

将父类对象的引用转换成实际的子类对象的引用

11、一个类如何实现接口?实现某接口的类是否一定要重载该接口中的所有抽象

方法?

解:使用关键字implements可以定义类实现某接口。实现某接口的类如果不是抽

象类,则需要通过重载来实现该接口中的所有抽象方法;如果这个类是抽象类,则它可以

不必实现该接口中的所有抽象方法。

13、编写求解几何图形(如直线、三角形,矩型,圆,多边型)的周长,面积的应用程序,要求用到继承和接口等技术。

解:// Solution of drawings as triangle,rectangle,circle

import java.io.*;

// interface

interface getProperty

{

double Pi=3.1415926;

double getArea();

double getCircum();

String getName();

}

//

class mpoint

{

static int i=0;

double x,y;

String strmpoint;

mpoint(double a,double b)

{

this.x=a;

this.y=b;

}

double getX(){

return x;

}

double getY()

{

return y;

}

String getString()

{

i+=1;

strmpoint="mpoint"+i; // name of a mpoint;

return strmpoint;

}

}

//disp class

class disp {

double area;

double circum;

String drawingName;

disp(double a, double b, String ss){

this.area=a;

this.circum=b;

this.drawingName=ss;

}

public void display(){

System.out.println("Drawing is "+drawingName);

System.out.println("Area="+area+"Circum="+circum); }

}

// class triangle

class triangle implements getProperty {

mpoint p1,p2,p3;

double s1,s2,s3;

String drawingName="Triangle";

triangle(mpoint p1,mpoint p2,mpoint p3){

this.p1=p1;

this.p2=p2;

this.p3=p3;

this.s1=Math.sqrt( (p1.x-p2.x)*(p1.x-p2.x)+ (p1.y-p2.y)*(p1.y-p2.y) ); this.s2=Math.sqrt( (p3.x-p2.x)*(p3.x-p2.x)+ (p3.y-p2.y)*(p3.y-p2.y) ); this.s3=Math.sqrt( (p1.x-p3.x)*(p1.x-p3.x)+ (p1.y-p3.y)*(p1.y-p3.y) ); }

public double getArea(){

double ss,ssa;

ss=(s1+s2+s3)*Pi/2.0/Pi;

ssa=Math.sqrt( ss*(ss-s1)*(ss-s2)*(ss-s3) );

return ssa;

}

public double getCircum(){

return s1+s2+s3;

}

public String getName(){

return drawingName;

}

public boolean tline(){

return true;

}

}

//

// circle class

class circle implements getProperty {

mpoint p1;

double radius;

String drawingName="Circle";

circle(mpoint p1,double radius){

this.p1=p1;

this.radius=radius;

}

public double getArea(){

double ssa;

ssa=Math.PI*radius*radius;

return ssa;

}

public double getCircum(){

return Math.PI*2.0*radius;

}

public String getName(){

return drawingName;

}

public boolean tcircle(){

return true;

}

}

// class rectangle

class rectangle implements getProperty {

mpoint p1,p2;

double s1,s2;

String drawingName="Rectangle";

rectangle(mpoint p1,mpoint p2){

this.p1=p1;

this.p2=p2;

this.s1=Math.sqrt( (p1.x-p2.x)*(p1.x-p2.x) );

this.s2=Math.sqrt( (p1.y-p2.y)*(p1.y-p2.y) );

}

public double getArea(){

return s1*s2;

}

public double getCircum(){

return s1+s2+s1+s2;

}

public String getName(){

return drawingName;

}

public boolean rline(){

return true;

}

}

// mainclass

class drawing extends disp {

drawing(double a, double b, String ss){

super(a,b,ss);

}

public static void main(String args[])throws IOException {

BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in)); String strxx;

for(;true;) {

System.out.print("Input string like Triangle、Rectangle or Circle:");

strxx=keyin.readLine();

if (strxx.length()==0) continue;

char charxx;

charxx=strxx.toUpperCase().charAt(0);

switch( charxx )

{

case 'T':

// triangle start

// 3point get

System.out.println("Please input(triangle) 1 point x(enter)y(enter)");

mpoint p1=new mpoint(aVar(keyin),aVar(keyin));

System.out.println("Please input 2 point x(enter)y(enter)");

mpoint p2=new mpoint(aVar(keyin),aVar(keyin));

System.out.println("Please input 3 point x(enter)y(enter)");

mpoint p3=new mpoint(aVar(keyin),aVar(keyin));

// t1

triangle t1=new triangle(p1,p2,p3);

// disp

disp tdisp =new disp(t1.getArea(),t1.getCircum(),t1.getName());

tdisp.display();

// mpoint p1=p2=p3=null;

// disp tdisp=null;

// triangle end

break;

// -------------------------------------------------------------------

case 'C':

// circle start

// 1point get

System.out.println("Please input(circle) center x(enter)y(enter)");

mpoint p4=new mpoint(aVar(keyin),aVar(keyin));

System.out.println("Please input radius x(enter)");

double radius=aVar(keyin);

// t2

circle t2=new circle(p4,radius);

// disp

disp cdisp =new disp(t2.getArea(),t2.getCircum(),t2.getName());

cdisp.display();

// circle end

break;

// --------------------------------------------------------------------

case 'R':

// rectangle start

// 2point get

System.out.println("Please input (rectangle)1 point x(enter)y(enter)"); mpoint p6=new mpoint(aVar(keyin),aVar(keyin));

System.out.println("Please input 2 point x(enter)y(enter)");

mpoint p7=new mpoint(aVar(keyin),aVar(keyin));

// t3

rectangle t3=new rectangle(p6,p7);

// disp

disp rdisp =new disp(t3.getArea(),t3.getCircum(),t3.getName());

rdisp.display();

// circle end

break;

// ----------------------------------------------------------------------

default: System.out.println("Error! please input t(T),c(C) or r(R);"); } // switch

} //endoffor

} //main method

static double aVar(BufferedReader keyin) throws IOException

{ // get a double var

String xx;

xx=keyin.readLine();

return Double.parseDouble(xx);

}

}

14、找出以下有问题的代码

public int searchAccount(int[25] number){

number =new int[15];

for(int i=0;i

number[i]=number[i-1]+number[i+1];

return number;

}

解:

①数组的参数说明中不能每含有长度(25)的信息。

②for循环中,当i=0时,number[i-1]=number[-1];这表示已经越界,并产生数组下标越界例外错误。’

③return返回语句不是int类型,必须是int[]类型,因为number是数组。

15、将一个字符串中的小写字母变成大写字母,并将大写字母变成小写字母.

解:import java.util.*;

public class Ex2{

public static void main(String args[]){

String s=new String("abcABC123");

System.out.println(s);

char a[]=s.toCharArray();

for(int i=0;i

{ if(Character.isLowerCase(a[i]))

{ a[i]=Character.toUpperCase(a[i]);

}

else if(Character.isUpperCase(a[i]))

{ a[i]=Character.toLowerCase(a[i]);

}

}

s=new String(a);

System.out.println(s);

}

}

16、求若干个数的平均数,若干个数从键盘输入.

解:public class Ex3

{ public static void main(String args[])

{ double n,sum=0.0 ;

for(int i=0;i

{ sum=sum+Double.valueOf(args[i]).doubleValue();

}

n=sum/args.length;

System.out.println("平均数:"+n);

}

}

应用程序中的main 方法中的参数args 能接受你从键盘键入的字符串.首先编译上述源程序

D:\>javac Ex3.java

编译通过后,你要使用解释器java.exe来执行你的字节码文件

D:\>java Ex3 "123.78” 23324.9" "213214" (回车)

这时,程序中的args[0],arg[1],arg[2]分别得到字符串"123.78","23324.9" 和"213214". 在源程序中我们再将这些字符串转化为数值进行运算,得到所需的结果.

17、将一个字符串数组按字典序重新排列.

解:class Ex4{

public static void main(String args[]){

String a[]={"boy","apple","Applet","girl","Hat"};

for(int i=0;i

{for(int j=i+1;j

{ if(a[j].compareTo(a[i])<0)

{ String temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}

}

for(int i=0;i

{ System.out.print(" "+a[i]);

}

}

}

18、编写应用程序,分析字符串,分别输出字符串的单词,并统计出单词个数.

解:import java.util.*;

public class Ex5{

public static void main(String args[]){

String s="I am Geng.X.y,she is my girlfriend";

StringTokenizer fenxi=new StringTokenizer(s," "); //空格和逗号做分

int number=fenxi.countTokens();

while(fenxi.hasMoreTokens())

{ String str=fenxi.nextToken();

System.out.println(str);

System.out.println("还剩"+fenxi.countTokens()+"个单词");

}

System.out.println("s共有单词"+number+"个");

}

}

19、使用https://www.doczj.com/doc/9b3858116.html,ng 包中System 类的静态方法arraycopy 可以实现数组的快速拷贝

解:class ArrayCopy{

public static void main(String args[]){

char a1[]={'a','b','c','d','e','f'},b1[]={'1','2','3','4','5','6'};

System.arraycopy(a1,0,b1,1,a1.length-1);

System.out.println(new String(a1));

System.out.println(new String(b1));

byte a2[]={97,98,99,100,101,102},b2[]={65,67,68, 69, 70, 71}; System.arraycopy(b2,0,a2,3,b2.length-3);

System.out.println(new String(a2));

System.out.println(new String(b2));

}

}

20、编写应用程序,实现字符串“Dot saw I was Tod”的倒转。解:

public class StringsDemo{

public static void main(String[]args){

String palindrome="Dot saw I was Tod";

int len=palindrome.length();

StringBuffer dest=new StringBuffer(len);

for(int i=(len-1);i>=0;i--){

dest.append(palindrome.charAt(i));

}

System.out.println(dest.toString());

}

}

第4章-Java语言与面向对象作业习题与答案

第4章 Java语言与面向对象作业习题与答案 一、简答题 1.什么是对象?什么是类? 对象是一种抽象数据类型。它包含了事物的静态特征(属性)和动态特征(行为)两大特征。 类是一组同种对象的集合与抽象。即是具有相同属性和方法的一组对象集合。 2.Java语言的单继承是指什么? 一个类可以派生出多个子类,但子类只允许有一个父类,而不允许存在多个父类。 3.在一个共有类中的数据成员及方法成员的访问控制符为缺省,则这个类可供什么样的包引用? 当一个类的访问控制符为public共有时,表明这个类作为整体对其它类是可见和可引用的;但其数据成员和方法成员访问控制符为缺省时,它们只能被包中类(含当前类)引用。 4.抽象类的用途 (1)设计在更高的层次上进行,不考虑具体对象,从而大大简化了处理问题的复杂性; (2)设计出的类也具有更加良好的可扩展性。 5.什么是非静态的成员变量? 非静态成员即为实例成员变量(没有加static修饰的变量)。 6.异常Exception和错误Error有什么不同?Java如何处理它们? 答:错误通常是指程序本身存在非法情形,常常是因为代码存在问题而引起的,如造成系统崩溃、虚拟机粗错、动态失败等,这一类错误无法恢复或不可能捕获,并将导致应用程序中断。 异常表示另外一种“非同寻常”的错误。这种错误通常是不可预测,但可以被捕获且可以恢复。常见的异常情况包括存不足、找不到所需文件等。 对于错误,编程人员可以通过对程序进行更仔细的检查,以避免这种错误。 对于异常,可以使用捕获机制进行捕获,再编写出相应的处理程序。 7.简单述Java的异常处理机制。 答:Java采取“抛出—捕获”的方式,一旦一个异常想象产生,Runnable环境和应用程序会抛出各种标准类型和自己定义的异常,系统就可以捕获这些异常,并一定有相应的机制来处理它,确保不会产生司机、死循环或其它对操作系统的损害,从而保证了整个程序运行的安全性。 8.简单述throw语句和throws关键字之间的差别。 答:throw语句是在一个方法中用来直接抛出异常对象,其格式是: throw 异常对象; throws关键字是用一个方法声明首部,用来指出这个方法中可能产生若干种异常,其格式:[方法修饰符] 返回类型方法名(参数表)throws 异常类型表 { /*方法体*/ } 二、填空题 1.所有Java应用程序都必须包含的一个类方法是 main() 。 2.面向对象程序设计语言的三种重要特性是封装性、继承性和多态性。

最新JAVA语言与面向对象程序设计课后习题答案

1 第1章面向对象软件开发概述 2 1.简述面向过程问题求解和面向对象问题求解的异同。试列举出面向对象和面向3 过程的编程语言各两种。 4 答:面向过程问题求解,以具体的解题过程为研究和实现的主体,其思维特点更5 接近于计算机;面向对象的问题求解,则是以“对象”为主体,“对象”是现实世6 界的实体或概念在计算机逻辑中的抽象表示,更接近于人的思维特点。 7 面向过程的编程语言:C,Pascal, Foratn。 8 面向对象的编程语言:C++, Java,C#。 9 2.简述对象、类和实体及它们之间的相互关系。尝试从日常接触到的人或物中抽10 象出对象的概念。 11 答:面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中12 的映射和体现。类是同种对象的集合与抽象。类是一种抽象的数据类型,它是所有13 具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是14 类的一次实例化的结果。如果类是抽象的概念,如“电视机”,那么对象就是某一15 个具体的电视机,如“我家那台电视机”。 16 3.对象有哪些属性?什么是状态?什么是行为?二者之间有何关系?设有对象“学17 生”,试为这个对象设计状态与行为。 18

答:对象都具有状态和行为。 19 对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是20 变量。每个对象个体都具有自己专有的内部变量,这些变量的值标明了对象所处的21 状态。 22 行为又称为对象的操作,它主要表述对象的动态属性,操作的作用是设置或改变23 对象的状态。 24 学生的状态:姓名、性别、年龄、所在学校、所在系别、通讯地址、电话号码、25 入学成绩等; 26 学生的行为:自我介绍、入学注册、选课、参加比赛等。 27 4.对象间有哪三种关系?对象“班级”与对象“学生”是什么关系?对象“学生” 28 与对象“大学生”是什么关系? 29 答:对象间可能存在的关系有三种:包含、继承和关联。 30 对象“班级”与对象“学生”是包含关系。 31 对象“学生”与对象“大学生”是继承关系。 32 5.有人说“父母”和“子女”之间是继承的关系。这种说法是否正确?为什么? 33 答:“父母”和“子女”之间不是面向对象意义上的“继承”关系。因为这里的34

JAVA面向对象基础测试题

读书破万卷下笔如有神 JAVA面向对象基础测试题 提示:本题为第一阶段,JAVA面向对象基础部分练习题,包括对象,类,继承,封装,多态,接口,内部类等等,java核心基础,适合初学者对面向对象基础的知识进行测试,以便查漏补缺。 1. 程序执行的结果是:()。 01 public class Point{ 02 int y = 7; 03 public void step(int y) { 04 y += y; 05 System.out.println(y); 06 读书破万卷下笔如有神 } 07 public static void main(String[] args) {

08 Point p = new Point(); 09 p.step(10); 10 } 11 } A.14 B.20 C.10 D.17 正确答案:B解析: 2. 读书破万卷下笔如有神 程序的执行结果是:()。 01 public class Question { 02 private int num; 03 public static void main(String [] args){ 04

Question q = new Question(); 05 q.num=13; 06 update(q); 07 System.out.println(q.num); 08 } 读书破万卷下笔如有神 09 public static void update(Question q){ 10 q.num=9; 11 } 12 } A.13 B.9 C.0 D.4

正确答案:B解析: 3. 程序执行的结果是:()。 01 public class Answer { 读书破万卷下笔如有神 02 public static void main(String[] args) { 03 int score = 20; 04 Answer ans= new Answer(); 05 ans.add(score); 06 System.out.println( main:score = + score); 07 } 08 void add(int score) { 09 System.out.println( add:score= + score++); 10

Java面向对象程序设计_习题解答

Java面向对象程序设计 清华大学出版社 (编著耿祥义张跃平) 习题解答 建议使用文档结构图 (选择Word菜单→视图→文档结构图)

习题1 1.James Gosling 2. (1)使用一个文本编辑器编写源文件。 (2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。 (3)使用J ava解释器(java.exe)运行Java程序 3.Java的源文件是由若干个书写形式互相独立的类组成的。 应用程序中可以没有public类,若有的话至多可以有一个public类。 4.系统环境path D\jdk\bin; 系统环境classpath D\jdk\jre\lib\rt.jar;.; 5. B 6.Java源文件的扩展名是.java。Java字节码的扩展名是.class。 7.D 8.(1)Speak.java (2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8.class (3)java Xiti8 (4)执行java Speak的错误提示 Exception in thread "main" https://www.doczj.com/doc/9b3858116.html,ng.NoSuchMethodError: main 执行java xiti8得到的错误提示 Exception in thread "main" https://www.doczj.com/doc/9b3858116.html,ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示 Exception in thread "main" https://www.doczj.com/doc/9b3858116.html,ng.NoClassDefFoundError: Xiti8/class 执行java Xiti8得到的输出结果 I'm glad to meet you 9.属于操作题,解答略。

java面向对象考试题-练习版

JAVA面向对象结课考试题 班级_______ 姓名________得分___________ 1下列程序编译或运行的结果是。() public static void main(String args[]){ int a = 10, b,c; if(a>50){ b=9; } c = b + a; System.out.println(c); } A.10 B. 19 C.9 D.编译错误 2、已知’1’的ascii码值为31下列语句片段中,four 的值为( ) int three = 3; char one = ‘1’; char four = (char)(three+one); A. 3 B. 1 C. 31 D. 4 3、下列代码的运行结果是( ) public static void main(String[] args){ int a = 7; System.out.println(a%3); } A 6 B 2 C 5 D 1 4、以下程序的输出结果为( )。 public static void main(String[]args) { int x = 1, y = 1, z =1; if(x--==1&&y--==1||z--==1) System.out.println(“x=” +x+”,y=” +y+”,z=” +z); } A x=0, y=1,z=1 B x=0,y=2,z=2 C x=0,y=2,z=1 D x=0,y=0,z=1 5、下列代码段编译和运行的结果是() public static void main(String args[]){ String str = “null”; if(str==null){ System.out.println(“null”); }else if(str.length()==0){ System.out.println(“zero”); }else { System.out.println(“some”); } } A null B zero C some D 编译错误6、下列代码的运行结果是(): public class Animal{ public String noise(){ return “peep”; } public static void main(String[] args){ Animal animal = new Dog(); Cat cat = (Cat)animal; System.out.println(cat.noise()); } } class Dog extends Animal{ public String noise(){ return “bark”; } } class Cat extends Animal{ public String noise(){ return “meow”; } } A. peep B.bark C.meow D.编译错误 E.抛出运行时异常 7、关于下列代码说法正确的是( ) public class Foo{ public int add(int a,int b){ return a+b; } public static void main(String[] args){ Foo foo= null; System.out.println(foo.add(10,20)); } } A. 编译错误 B. 正常运行,但无结果输出 C.30 D NullPointerException 8、程序的执行结果是( ) public class Test{ int x; public static void change(Test t){ t.x = 3; } public static void main(String[] args){

面向对象试题(答案)

CoreJavaOOP考试题 考试时间:90分钟 考试总分:100分 一、选择题(不定项选择)(22*4=88) 1. 类A,B的定义如下: class A { private int a = 100; A() { System.out.print("A()"); System.out.println(a); } } class B extends A { private int a = 200; B() { System.out.print("B()"); System.out.println(a); } } 运行下面的代码: new B(); 输出的结果是:(A )。 A. A() 100 B() 200 B. A() 200 B() 200 C. B() 200 A() 100 D. B() 200 A() 200

2.下列说法正确的是(D ) A.所有类都必须定义构造方法(构造器) B.构造方法必须初始化类的所有数据成员 C.子类定义了构造器后,不再调用父类的构造器 D.构造方法可以访问类的非静态成员 3.在Java中,哪个关键字使类不能派生子类?, (A ) A : final B : public C : private D : native 4.class Base{ static void test(){ System.out.println(“Base.test()”); } } public class Child extends Base{ static void test(){ System.out.println(“Child.test()”); } public static void main(String[] args){ Base base = new Child(); Child child = new Child(); base.test(); child.test(); } } 程序运行的结果是( C ) A.Child.test() Child.test() B.Child.test() Base.test() C.Base.test() Child.test() D.Base.test() Base.test()

Java面向对象测试试题

《使用Java实现面向对象编程》阶段测试-笔试试卷 一、选择题(共25题,每题4分,满分100分) 1) 在Java类中,使用以下()声明语句来定义公有的int型常量MAX。 A. public int MAX = 100; B. final int MAX = 100; C. public static int MAX = 100; D. public static final int MAX = 100; 2) 在Java中,下列关于方法重载的说法中错误的是()。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定Java代码如下所示,在横线处新增下列()方法,是对cal方法的重载。 public class Test{ public void cal(int x, int y, int z) {} } A. public int cal(int x, int y, float z){ return 0; } B. public int cal(int x, int y, int z){ return 0; } C. public void cal(int x, int z){ } D. public void cal(int z, int y, int x){ } 4) 在Java中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数

java面向对象试卷及答案

java面向对象程序设计 系班级姓名成绩得分评卷人 一、填空题(每空2分,共20分) 1.Java源程序的扩展名是,经过编译后的程序的扩展名是。2.Socket通常也称为,用于描述和。3.线程的优先级在至之间,数值越大 4.构造方法是一种特殊的成员方法,构造方法名与相同 5.Java语言只允许单继承,指每个类只能有一个。 二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的() A、继承 B、流程控制 C、抽象 D、封装 2.以下关于执行Java小程序的论述错误的是:() A、可以通过浏览器调用嵌入了Java小程序的HTML文档 B、可以通过appletviewer.exe调用嵌入了Java小程序的HTML文档 C、可以通过java.exe调用嵌入了Java小程序的HTML文档 D、可以在Java集成开发环境中调用嵌入了Java小程序HTML文档 3.符合对象和类关系的是:() A、人和老虎 B、书和汽车 C、楼和土地 D、松树和植物 4.关于选择结构下列哪个说法正确?() A.if语句和else语句必须成对出现 B.if语句可以没有else语句对应 C.一个if语句只能有一个else if语句与之对应 D.else if结构中必须有default语句 5.while循环和do…while循环的区别是:()

A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.do…while循环执行次数可能为0 D.while循环执行次数可能为0 6.关于for循环和while循环的说法哪个正确?() A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空 7.下列修饰符中与访问控制无关的是() A.private B.public C.protected D.final 8.方法内的形参:() A.必须定义多个形参B.可以没有 C.至少有一个D.只能是简单变量 9.throws的作用:() A.表示方法可能会抛出例外 B.表示后面是方法的输出量 C.方法的标志,每个方法都必须有 D.没有意义 10.在Java语言中,整型常量123占用的存储字节数是:()A.1B.2 C.4 D.8 11.关于对象成员占用内存的说法哪个正确?() A.同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存 D.以上都不对 12.return语句:()

Java面向对象测试试题(经典)

《使用实现面向对象编程》阶段测试-笔试试卷 一、选择题(共25题,每题4分,满分100分) 1) 在类中,使用以下()声明语句来定义公有的型常量。 A. = 100; B. = 100; C. = 100; D. = 100; 2) 在中,下列关于方法重载的说法中错误的是()。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定代码如下所示,在横线处新增下列()方法,是对方法的重载。 { ( x, y, z) {} } A. ( x, y, z){ 0; } B. ( x, y, z){ 0; } C. ( x, z){ }

D. ( z, y, x){ } 4) 在中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是 C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数 5) 下面代码的运行结果是()。 { ; 名字 0; 健康值 ; 性别 () { = 10; = "雄"; ("执行构造方法。"); } () { ("企鹅的名字是" + + ",健康值是" + + ",性别是" + "。"); } ([] ) { = (); (); } } A. 企鹅的名字是,健康值是10,性别是雄。 B. 执行构造方法。

企鹅的名字是,健康值是0,性别是。 C. 企鹅的名字是,健康值是0,性别是。 D. 执行构造方法。 企鹅的名字是,健康值是10,性别是雄。 6) 下列选项中关于中封装的说法错误的是()。 A. 封装就是将属性私有化,提供公有的方法访问私有属性 B. 属性的访问方法包括方法和方法 C. 方法用于赋值、方法用于取值 D. 类的属性必须进行封装,否则无法通过编译 7) 使用实现封装,第一步是修改属性可见性来限制对属性的访问,第二步是创建赋值和取值方法,用于对属性的访问,第三步应该是()。 A. 使用赋值和取值方法访问属性 B. 编写常规方法访问属性 C. 在赋值和取值方法中,加入对属性的存取限制 D. 编写方法创建对象,调用赋值和取值方法访问属性 8) 分析如下所示的代码,其中关键字的意思是()。 { ; () { ;

面向对象程序设计java语言程序设计期末考试试题及部分答案

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案2 一、单选择题(每小题2分,共10分) 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. .java B. .class C. .html D. .exe 2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 5 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。 A. start( ) B. stop( ) C. init( ) D. paint( ) 4、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 二、填空题(每空格1分,共20分) 1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码、和解释运行字节码。 2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是Applet、类的子类并且存储该源程序文件的文件名为MyApplet。 3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器javac.exe编译该源程序文件将产生3 个文件名与类名相同而扩展名为. class的字节码文件。

《面向对象程序设计JAVA语言程序设计》期末复习试题及部分答案

一、单选题 1.在下列概念中,Java语言只保留了D A.运算符重载B.结构和联合C.指针D.方法重载 2.下列类定义中,不正确的是B A.class x { .... } B.static class x implements y1,y2 { .... } C.public class x extends Applet { .... } D.class x extends y { .... } 3.下列语句序列执行后,k 的值是B int m=3, n=6, k=0; while( (m++) < (- - n) ) ++k; i++ 先把i的初值赋给表达式(i++),作为表达式(i++)的值,然后i自增1作为i 的值。 如i=1,则表达式(i++)的值等于1,而i的值变为2。 ++i i先自增1,再把自增后的值赋给表达式(++i)。 如i=1,则表达式(++i)的值等于2,i的值也为2, A.0 B.1 C.2 D.3 4.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是A A.a[0] = 7; B.i = i + 2 C.i++ - --j; D.a(0) = 66; 5.Java语言的类间的继承关系是B A.多重的B.单重的C.线程的D.不能继承 6.下列语句序列执行后,k 的值是C int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A.31 B.3 C.2 D.33 7.设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是C

JAVA面向对象编程测试题

Java 面向对象 一、单选: (1)在JDK1.5.0 安装目录下的bin 文件夹中,下面哪个程序是Java 执行器 (B) A )Javac.exe B )java.exe C)jdb.exe D )javah.exe E)javadoc.exe (E) (2)在JDK1.5.0 安装目录下的bin 文件夹中,下面哪个程序能生成Java 参考文档 A )Java.exe B )javac.exe C)appletviewer.exe D)javah.exe E)javadoc.exe (3)下列数据类型不属于整型的是 (E) A )byte 类型 B )short 类型 C)int 类型 D )long 类型 E)float 类型 (4 )精确保存一个值为“53.21458961”需要用什么数据类型 ( D) A )int 类型 B )long 类型 C)String 类型 D )double 类型 E)以上都可以 (5)循环语句for(int i=0。i<4。i++){}循环的次数为 (D) A )无限次 B )不确定 C)1 次 D )3 次 E)4 次 (6)若i、j 为已定义的整型,下面程序段中循环体执行的次数为 (B) for(i=0。i<5。i++){ for(j=0。j<=i。j++){ } } A )不确定 B )5 次 C)15 次 D )25 次 E)无限次 (7)执行下列程序段后,j 的值变为 (E) int i=1。 int j=10。 do{ j-=i。 i++。 }while(j--<0)。 A )9 B)10 C)-1 D)-2 E)8 (8)执行下列程序段后,y 的值变为 (E) int x,y。 for(y=1,x=1。y<=50。y++){ if(x>=10){

Java面向对象程序设计复习题附答案

Java面向对象程序设计复习题 一、选择题 1、下列哪个是Java中的关键字(C )。 A、run B、Integer C、default D、implement 2、下面关于Java.applet.Applet和其祖先类的描述语句哪个不对(B )。 A、Applet是Container的一种 B、Applet是Window的一种 C、Applet是Component的一种 D、Applet是Panel的一种 3、下列类DataOutputStream的构造方法正确的是(A )。 A、new dataOutputStream(new FileOutputStream(“out.txt”)); B、new dataOutputStream(“out.txt”); C、new dataOutputStream(new writer(“out.txt”)); D、new dataOutputStream(new FileWriter(“out.txt”)); 4、在switch(表达式)语句中,表达式的类型不能为(C )。 A、byte B、char C、long D、int 5、在接口MouseMotionListener中方法正确的是(A )。 A、Public void mouseDragged(MouseEvent) B、Public boolean mouseDragged(MouseEvent) C、Public void mouseDragged(MouseMotionEvent) D、Public boolean MouseDragged(MouseMotionEvent) 6、下面是一些异常类的层次关系 https://www.doczj.com/doc/9b3858116.html,ng.Exception https://www.doczj.com/doc/9b3858116.html,ng.RuntimeException https://www.doczj.com/doc/9b3858116.html,ng.IndexOutOfBoundsException https://www.doczj.com/doc/9b3858116.html,ng.ArrayIndexOutOfBoundsException https://www.doczj.com/doc/9b3858116.html,ng.StringIndexOutOfBoundsException 假设有一个方法X,能够抛出两个异常,Array Index和String Index异常,假定方法X中没有try-catch语句,下面哪个答案是正确的。(B ) A、方法X应该声明抛弃ArrayIndexOutOfBoundsException和StringIndexOutOfBounds Exception。 B、如果调用X的方法捕获IndexOutOfBoundsException,则ArrayIndexOutOfBounds Exception和StringIndexOutOfBoundsException都可以被捕获。 C、如果方法X声明抛弃IndexOutOfBoundsException,则调用X的方法必须用Try-catch 语句 捕获。 D、方法X不能声明抛弃异常。 7、现有一变量声明为boolean aa;下面赋值语句中正确的是( D )。 A、aa=0 B、aa=True C、aa="true" D、aa=false 8、某类Example的main()方法参数为args,当输入数据Java Example cat时,args[0]的值为(A )。 A、cat B、Java C、example D、null 9、String s1=new String(“Java”);String s2=new String(s1)则下列哪个说法是正确的(C )。 A、表达式s1==s2为真 B、s1和s2是同一个对象

JAVA填空题复习(有答案)

JAVA复习 1、面向对象程序设计的三个特征是_封装、多态、继承。 2、Java语言的主要特点有简单性、安全性、面向对象、平台无关性。 3、Java是面向对象语言,类是客观事物的_抽象_ __,而对象是类的_实例_ __。 4、类_ _是Java程序中基本的结构单位。 5、Java语言是一种完全的_面向对象 _程序设计语言 6、布尔型常量有两个值,它们分别true_ _、_ false _ 7、表达式1/2*9的计算结果是0。 8、表达式“b”+10的值为_”b10”,‘b'+10的值为108__ 9、String s1=“China”; int n=s1.length( ); n的值为_5__ 10、_常量名__必须完全大写。 11、Java中用于定义整形变量的关键字有四个:byte、_short__、_int_ __、long。 12、在Java语言中,简单数据类型包括:整数类型、浮点类型、字符类型_和布尔类型。 13、Java的类型、单精度浮点型、布尔型数据的保留字分别是:float_、boolean。 14、JAVA语言中提供了两种类型的字符串类来处理字符串,它们是String_和StringBuffer类 15、Java程序的种类有:内嵌于_HTML__文件中,由浏览器

来观看的_applet___,必须继承__Applet__;可独立运行的_application___,必须包含_main()方法__ 16、Java语言中,所有的类都是Object的子类,Java的窗口通常是JFrame__的子类,抽象 _类只能定义但不能被实例化,_ 最终 _类不能被继承异常类都是_Exception_的子类。 17、Java源程序文件和字节码文件的扩展名分别为_.java___和_.class___ 18、一般Java程序的类体由两部分组成:一部分是_属性_,另一部分是_方法_ 19、子类对父类继承来的属性重新定义称为__重写__。子类对自身拥有的同名方法的重新定义称_重载___。 20、分别用__class_关键字来定义类,用_new__关键字来分配实例存储空间。 21、this指_当前对象___,super指_父对象___。 22、Java中类成员的限定词有以下几种:__ private_ _, public __ _, protected __ _, _缺省_ _。其中,_public __的限定的范围最大。_ private __的限定只能内部访问。Java中成员变量用___final__修饰符修饰的是常量。 23、在Java语言中,_ _包_是组织Java程序中类的一种手段,其作用与Windows系统中的__文件夹__类似。创建包的语句必须是文件的第一 __个语句

java面向对象练习题

java面向对象练习题 1定义了一个函数来接收一年并确定它是否是闰年什么是闰年?可以除以4而不是100,或者可以除以400,那么今年是闰年 2年,使用do-while重写猜谜游戏(希望比老师更完美) 3定义了一个接收数组的函数,找到数组中的最大值,并计算数组中所有奇数的和4定义一个函数来接收数组,并将数组中元素的最大值放在数组的第一个位置练习5:输出1-150个奇数并计数 6练习:计算1-100的和。奇数和偶数是什么?练习7:用“边做边做”来计算1到100之间的偶数练习8:用边做边猜数字的游戏9打印99 10的乘法计算1-100个奇数的和 11定义一个函数来执行加法函数操作,而不向调用者返回值 12要求:定义一个函数来比较两个数字的大小,并将最大的数字返回给呼叫者要求:定义一个函数,根据学生的分数将相应的分数返回给调用者。 14要求:定义一个函数做加法函数,直接打印,不需要返回结果给调用者要求1:定义一个函数来接收数组并取出数组中的最大值 16要求2:定义一个接收数组的函数,并将数组中的最大值放在数组的第一个位置17要求3:定义一个接收数组的函数,并将数组中的最大值放在数组的最后一个位置定义一个函数来接收数组并翻转数组中的元素例如:国际[] arr = {1,2,3,4}-{4,3,2,1 }; 19练习:定义接收二维数组的函数,计算二维数组中所有元素的和,并计算奇数

XXXX年龄的方法 29练习:首先编写一个Person类,并计算创建Person的对象的数量练习:描述一种动物。鸟类和动物有名字和年龄属性,而且会移动。鸟类也有名称、年龄、颜色、属性和移动行为。31定义接收无序数组的方法。要对数组进行排序,请使用二分法来查找指定的元素 32描述了三种类型的汽车,宝马和奔驰,它们都有颜色、名称它还具有运行功能定义一个方法可以接收任何汽车对象,定义一个方法可以返回任何汽车对象描述动物、蛇、鱼和三类。编写一个可以接收任何动物对象的方法,定义一个可以接收任何动物类型对象 的方法,并调用该动物类型对象的特定方法34动物、狗和鱼的描述。动物有名字和颜色两种属性,动物有移动的行为。 199狗的一个独特方法是咬人。鱼特有的行为:吹泡泡 35练习:描述三类图形,矩形和圆形。每张图表都有计算面积和周长的方法。 清楚地描述了三类之间的关系 36描述了一类学生,它有两个属性id和name。学生有学习行为功能,但有些学生也在学习过程中赚钱。普通学生:不能通过学习赚钱的学生 可以通过学习赚钱的学生 37描述了图形、矩形、圆形和三个类。定义接收所有图像对象并打印图形对象的周长和面积的方法。定义一个返回任何图形对象的方法38描述了三类汽车,宝马和奔驰。汽车有颜色和名称它还具有运行

Java面向对象编程练习试题包括答案.docx

【练习题】 01. 类的成员变量: 猜数字游戏:一个类 A 有一个成员变量 v,有一个初值 100。定义一个类,对 A 类的成员变量 v 进行猜。如果大了则提示大了,小了则提示小了。等于则提示猜测成功。import .*; class A{ int v = 100; A(){ =v; } } public class b01 { public static void main(String args[]){ A a = new A(); Scanner intput = new Scanner; int intputvalue = (); if(intputvalue> "你的输入大于这个值 "); if(intputvalue< "你的输入小于这个值 "); if(intputvalue== "猜测成功 "); } } 【练习题】 02. 类的成员变量: 请定义一个交通工具 (Vehicle)的类,其中有: 属性:速度 (speed) ,体积 (size)等等 方法:移动 (move()) ,设置速度 (setSpeed(int speed)),加速speedUp(),减速speedDown()等等 . 最后在测试类Vehicle 它初始化 speed,size 对速度进行改变。 中的 main() 中实例化一个交通工具对象,并通过方法给的值,并且通过打印出来。另外,调用加速,减速的方法 class Vehicle {int speed; int size; void move(){ }; void setSpeed(int speed){ = speed; } void speedUp(){ speed = speed+1;

Java面向对象测试题

Java面向对象 测试题(一) 注: 测试时间:3小时 编程题在电脑上编写,保存在已学生名字为文件名的文件夹中 一、选择题 (共30分,每题1分<多选、少选、错选不得分>) 1、下面有关Java异常处理模型的说法错误的是()。

a)一个try块只能有一条catch语句 b)一个try块中可以不使用catch语句 c)Catch块不能单独使用,必须始终与try块在一起 d)Finally块不能单独使用,必须始终与try块在一起 2、下列选项中关于Java中super关键字的说法错误的是()。 a)super关键字是在子类对象内部指代其父类对象的引用 b)super关键字不仅可以指代子类的直接父类,还可以指代父类 的父类 c)子类可以通过super关键字调用父类的方法 d)子类可以通过super关键字调用父类的属性 3、下列选项中关于Java中this关键字的说法错误的是()。 a)this是在对象内部指代对象自身的引用 b)this关键字可以在类中的任何位置使用 c)this只和特定的对象关联,而不和类关联 d)同一个类的不同对象有不同的this 4、在Java中,Object类是所有类的父亲,用户自定义类默认扩 展自Object类,下列选项中的()方法不属于Object类的方法。 a)equals(Object obj) b)getClass() c)toString() d)trim()

5、给定如下Java代码,关于super的用法,以下描述正确的是 ()。 class C extends B{ public C(){ super(); } } a)用来调用类B中定义的super()方法 b)用来调用类C中定义的super()方法 c)用来调用类B的无参构造方法 d)用来调用类B中第一个出现的构造方法 6、在Java中,有如下两个类Student和Person。如果Student 是Person的子类,则下列声明对象x的语句中错误的是()。 a)Person x = new Student() b)Person x = new Person() c)Student x = new Person() d)Student x = new Student() 7、下列对Java中的继承描述错误的说法是()。 a)子类至少有一个基类 b)子类可作为另一个子类的基类

Java面向对象测精彩试题(一)

实用文档 Java面向对象 测试题(一) 注: 测试时间:3小时 编程题在电脑上编写,保存在已学生名字为文件名的文件夹中

一、选择题 (共30分,每题1分<多选、少选、错选不得分>) 1、下面有关Java异常处理模型的说法错误的是()。 a)一个try块只能有一条catch语句 b)一个try块中可以不使用catch语句 c)Catch块不能单独使用,必须始终与try块在一起 d)Finally块不能单独使用,必须始终与try块在一起 2、下列选项中关于Java中super关键字的说法错误的是()。 a)super关键字是在子类对象内部指代其父类对象的引用 b)super关键字不仅可以指代子类的直接父类,还可以指代父类 的父类 c)子类可以通过super关键字调用父类的方法 d)子类可以通过super关键字调用父类的属性 3、下列选项中关于Java中this关键字的说法错误的是()。 a)this是在对象内部指代对象自身的引用 b)this关键字可以在类中的任何位置使用 c)this只和特定的对象关联,而不和类关联 d)同一个类的不同对象有不同的this 4、在Java中,Object类是所有类的父亲,用户自定义类默认扩 展自Object类,下列选项中的()方法不属于Object类的方法。 a)equals(Object obj) b)getClass()

c)toString() d)trim() 5、给定如下Java代码,关于super的用法,以下描述正确的是 ()。 class C extends B{ public C(){ super(); } } a)用来调用类B中定义的super()方法 b)用来调用类C中定义的super()方法 c)用来调用类B的无参构造方法 d)用来调用类B中第一个出现的构造方法 6、在Java中,有如下两个类Student和Person。如果Student 是Person的子类,则下列声明对象x的语句中错误的是()。 a)Person x = new Student() b)Person x = new Person() c)Student x = new Person() d)Student x = new Student()

相关主题
文本预览
相关文档 最新文档