java面向对象练习题及答案

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

java面向对象练习题及答案
请定义一个交通工具的类,其中有:
属性:速度,体积等等
方法:移动),设置速度),加速speedUp,减速speedDown 等等.
最后在测试类Vehicle中的main中实例化一个交通工具对象,并通过方法给它初始化speed,size的值,并且通过打印出来。

另外,调用加速,减速的方法对速度进行改变。

public class Vehicle {
private double speed;
private double size;
public Vehicle{}
public Vehicle{
this.speed=speed;
this.size=size;
}
public void setSpeed{
this.speed=speed;
}
public double getSpeed{
return speed;
}
public void setSize{
this.size=size;
}
public double getSize{
return size;
}
public double speedUp{
return ; }
public double speedDown{
return ;
}
public static void main {
Vehicle h=new Vehicle;
System.out.println);
System.out.println); System.out.println); System.out.println); }
练习题】构造方法
编写Java程序,模拟简单的计算器。

定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有。

编写构造方法,赋予n1和n2初始值,再为该类定义加、减、乘、除等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。

在main方法中创建Number类的对象,调用各个方法,并显示计算结果。

public class Numbei {
public static void main { private double n1; private double n2; public Numbei{} public Numbei{} public double addition{} public double subtration{ } public double multiplication{ } public double division{ } return; return; return; return ; this.n1=n1; this.n2=n2;
} } System.out.println); System.out.println); System.out.println); System.out.println);
构造方法:
编写Java程序,用于显示人的姓名和年龄。

定义一个人类,该类中应该有两个私有属性,姓名和年龄。

定义构造方法,用来初始化数据成员。

再定义显示方法,将姓名和年龄打印出来。

在main方法中创建人类的实例,然后将信息显示。

public class Person
{
private static String name; private static int age; public Person{} public Person{} public void setName{ } public String getName{ } public void
setAge{ } public int getAge{ } public String disply{ return name; return age; this.age=age; return name; =name; this.age=age; =name; public int disply{} public static void main {Person b=new Person; System.out.println); return age; }
}
System.out.println);+b.disply);
B、new dataOutputStream;
C、new dataOutputStream);
D、new dataOutputStream);
4、在switch语句中,表达式的类型不能为。

A、byte
B、char
C、long
D、int
5、在接口MouseMotionListener中方法正确的是。

A、Public void mouseDragged
B、Public boolean mouseDragged
C、Public void mouseDragged
D、Public boolean MouseDragged
6、下面是一些异常类的层次关系
ng.Exception
ng.RuntimeException
ng.IndexOutOfBoundsException
ng.ArrayIndexOutOfBoundsException
ng.StringIndexOutOfBoundsException 假设有一个方法X,能够抛出两个异常,Array Index 和String Index异常,假定方法X中没有try-catch语句,下面哪个答案是正确的。

A、方法X应该声明抛弃ArrayIndexOutOfBoundsException和StringIndexOutOfBounds Exception。

B、如果调用X的方法捕获IndexOutOfBoundsException,则ArrayIndexOutOfBounds Exception和StringIndexOutOfBoundsException都可以被捕获。

C、如果方法X声明抛弃IndexOutOfBoundsException,则调用X的方法必须用Try-catch语句
捕获。

D、方法X不能声明抛弃异常。

7、现有一变量声明为boolean aa;下面赋值语句中正确的是。

A、aa=0
B、aa=True
C、aa="true"
D、aa=false
8、某类Example的main方法参数为args,当输入数据Java Example cat时,args[0]的值为。

A、cat
B、Java
C、example
D、null
9、String s1=new String;String s2=new String则下列哪个说法是正确的。

A、表达式s1==s2为真
B、s1和s2是同一个对象
C、表达式s1.equals为真
D、以上均不对
10、类定义如下
class Foo{
public static void main{
String s;
System.out.println;
}
}
则下列结论正确的是。

A、有输出结果,且为空
B、没有输出结果
C、编译错误
D、有输出结果,且不为空
11、下列哪个不是Java的保留字。

A、float
B、class
C、extends
D、virtual
12、下列符号中不能作为Java标识符的是。

A、abc
B、$str1
C、_pore
D、45six
13、方法methodA定义如下:
returnType methodA{
return x/y*2;
}
则返回值returnType为。

A、byte
B、double
C、short
D、int
14、如果float f=4.2F;Float g=new Float; Double d=new Double;则下列选项正确的是。

A、f==g
B、f==g.floatValue
C、d==f
D、d.equals
15、下列二维数组定义中错误的是。

A、int a[][]=new int[][];
B、int []a[]=new int[10][10];
C、int a[][]=new int[10][10];
D、int [][]a=new int[10][10];
16、关于下列语句哪个答案是正确的。

System.out.println;
A、4
B、5
C、6
D、7
17、下面哪一个AWT组件可以有菜单栏MenuBar。

A、Java.awt.Frame
B、Java.awt.Window
C、Java.awt.Applet
D、Java.awt.Panel
18、下列哪个方法用于创建并开始一个新的线程。

A、run;
B、start;
C、execute;
D、run;
19、如果有Boolean a=new Boolean,则a.booleanValue 值为。

A、yes
B、“yes”
C、true
D、false
20、以下类 DataOutputStream的构造方法正确的是。

A、new dataInputStream;
B、new dataInputStream);
C、new dataInputStream);
D、new dataInputStream);
21、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为。

A、.Java
B、.class
C、.html
D、.exe
22、设 x = 1 , y = , z =,则表达式 y+=z--/++x 的值是。

A、3
B、3.5
C、4
D、5
23、在Applet表面输出文字时,可以选择不同的颜色,但是忘记了设置颜色的方法,应该首先在哪个类里面寻找。

A、Java .awt.Applet
B、Java.awt.Panel
C、Java.applet.Applet
D、ponent
24、类Cycle的main方法为:
public static void main{
System.out.println;
}
则运行时如果命令行语句为Java Cycle one two three,则输出结果为。

A、Cycle
B、one
C、two
D、three
25、下面哪一个是Thread类中的静态方法。

A、start
B、stop
C、run
D、sleep
26、关于下列语句哪个答案是正确的。

ifSystem.out.println;
A、不能编译成功
B、可以编译成功,输出true
C、可以编译成功,但无输出
D、以上均不对
27、声明公用的abstract方法的正确格式是。

A、public abstract void add {}
B、public abstract add;
C、public abstract void add;
D、public virtual add;
28、下列程序结果正确的是。

public class Test {
public static void main {
Ad a1=new Ad;
System.out.println);
Ad a2=new Ad;
System.out.println);
}
}
class Ad{
static int total = 10;
public int add{
total=total+i;
return total;
}
}
A、11,12
B、11,13
C、11,11
D、12,12
29、基于Java.awt.Frame的一个程序中包含一个Panel,Panel其中包含一个Label,在Frame和Panel中分别有下面的一些语句,
//Frame里面的语句
setFont;
setBackground;
//Panel中的语句
setBackground;
setForeground;
请问Label用什么颜色和字体显示。

A、Background=white;foreground=magenta;font=Serif
Italic style,1point
B、Background=cyan;foreground=black;font=Serif Italic style,1point
C、Background=cyan;foreground=black;font=system default style for labels
D、Background=white;foreground=magenta;font=system default style for labels
30、语句for&&;x++)的执行次数是。

A、无限次
B、一次也不执行
C、执行4次
D、执行3次
二、判断题
1、abstract是抽象修饰符,可以用来修饰类及其属性和方法。

2、Java支持多线程机制。

3、一个Java源程序文件中允许有多个公共类。

4、重载的方法可以通过它们的返回值类型的不同来区
分。

5、子类要调用父类的方法,必须使用super关键字。

6、子类拥有的成员数目一定大于等于父类拥有的成员数目。

7、一个catch块也可以区分处理多个不同类型的异常,只要它们是该catch语句块异常参数的子类或其本身。

8、程序中一旦执行了catch语句块,则不会执行finally语句块。

9、新建一个Frame对象,则其将立即显示在屏幕上。

10、一个正在执行的线程使用yield方法将处理器让给其它同优先级的其它线程。

11、Java中的的字符使用的是 1位的Unicode 编码。

12、for 语句中的循环体不能为空。

13、Java 仅支持类间的单重继承。

14.接口是由常量和抽象方法组成的特殊类。

15、构造函数的方法名可由编程人员任意命名。

16、使用静态属性必须以类名做前缀。

17、类的私有属性和私有方法可以被其子类访问。

18、使用了FlowLayout布局管理器,不能改变组件的高度。

19、ng.RuntimeException及其子类的异常可以不捕获。

20、当用户在TextField中改变光标的位置时,会产生一个TextEvent事件。

31、Java程序是由若干类定义组成的,类定义包括定义类头和定义类体。

32、类Class1中的属性被private修饰符修饰为私有变量,所以方法不能访问它。

34、引用一个类的属性或调用其方法,必须以这个类的对象为前缀。

35、与未加访问控制符的缺省情况相比,public和protected修饰符扩大了类及其属性和方法的被访问范围,private修饰符则缩小了这种范围。

36、子类要调用父类的方法,必须使用super关键字。

37、因为Java不支持多重继承,所以定义类时implements关键字后面只能说明一个接口名。

38、挂起、阻塞或等待的线程都能恢复执行,但停止的线程不能复生。

39、如果一个方法在运行过程中产生异常,则方法会终止,但整个应用不一定终止。

40、接口ng.runnable中只有一个run方法。

三、程序阅读题
1.阅读下面的程序代码,并回答问题。

String s1 = new String; String s= new String;
boolean b1= s1.equals; boolean b= s1 = = s2; System.out.print;
程序段执行后,在命令行的输出结果如何?
解释输出的结果的原因?
true false
equals方法比较两个字符串的内容是否相等;运算符“==”判断两个对象是否指向同一个引用,即是否为同一个对象。

2.阅读下面的程序代码,并回答问题。

import java.io.*;
public class Test {
public static void main throws IOException {
BufferedReader buf=new BufferedReader);
while {
String str = buf.readLine;
if)
break;
int x=Integer.parseInt;
基础习题
什么是垃圾回收,有什么用处,谈谈你对垃圾回收的理解,并给出一种常见的垃圾回收算法。

背诵第一个Java程序。

将自己的名字打印三遍。

基本功练习指出第一个Java程序中的所有标识符,所有关键字。

说出8种基本类型各占用的字节数。

什么是Unicode,与UTF-8,GBK,GB2312有什么区别。

判断任意给定的数字是否为奇数
给定任意0~9999的数字,分别打印出其各个位的数字。

例如:给出2143,打印:2,1,4,3。

给出2007,打印2,0,0,7
公历纪年法中,能被4整除的大多是闰年,能被100整除而不能被400整除的年份不是闰年,能被3200整除的也不是闰年,如1900年是平年,2000年是闰年,3200年不是闰年。

在Linux下的权限,分为读,写,执行。

分别对应421。

那么任意给一个0~7的数字,计算出该数字具有的权限。

显示结果:
您的权限为:5
您具有:读执行的权限
基本功练习
给出0~100分成绩,显示为“优秀”,“良好”,“及格”,“不及各”
打印图形:
*
**
***
**** *****
*
* * *
* * * * *
* * * * * * *
打印1~100所有整数的和
打印1~100所有奇数的和
打印1~100所有素数的和
求一个整数的2进制表示中1的个数
打印乘法表
方法
判断输入是否为奇数
判断输入是否为素数
计算个人所得税:
0~1600 none
1601~5000 %
5001~8000 10%
8001~20000 0%
20000~ 0%
面向对象编程
生成3个学生实例,调用学生实例的showInfo方法
定义银行账号类Account。

为Account类添加deposit 和save方法。

Public boolean deposit
生成三台笔记本电脑实例,调用电脑的开始和关闭方法
打印当前时间。

学习使用Date类和Calendar类。

打印50~100随机数。

写一个Point类,计算两个Point实例之间的距离
写一个判断点是否在圆内的方法。

生成两个在平面中圆的实例,调用判断两个圆是否相重叠的方法
基本功练习
求两个整数输入的最大值 public int max 求三个整数的最大值
随机产生一个1800~2200年的随机数,并判断是否为闰年。

编写一个Java程序,它能产生从随机从0~9的十个数字中随机取出4个不重复的数字组成一个字符串。

例如:0123,3657,4578
给出一个方法,得到自己生日是星期几。

递归
求5的阶乘
求菲波那契数列的第10项: 1 ,1,,,,, 1。

求两个数的最大公约数: gcd = gcd
// public int getMax { if return a; return getMax; }
数组
创建长度为10的数组。

数组中的元素为递增的奇数。

首项为1。

完成创建后,将创建的过程重构成一个方法。

创建长度为10的数组,数组中的元素为递增的等比数,比值为3。

首项为1
生成8个元素的数组,要求数组的第一个元素为0的阶乘,第八个元素为7的阶乘。

写出数组求和方法
public static int sum
找到数组中最大的数所在的坐标
Public static int max
计算数组中最大数与最小数的差
Public static int range
对数组进行洗牌操作
Public static void shuffle
写算法求数组的连接
Public static int[] concat
根据两个已排序数组生成新的排序数组。

Public static int[] gen
生成数组copy函数
Public static int[] copy
学习使用args[],从应用程序外传递参数。

使用Integer进行数字与字符串间的转换
理解对象数组,创建Point数组。

要求数组中的每个点都在与x, y 轴夹角为45度的直线上。

交换Point数组中任意两个元素的位置。

Public static void change
创建Circle数组。

要求数组中的每一个圆的半径构成等差数列,差项为2,首项为1。

每个圆的圆心都在与x, y 轴夹角为45度的直线上。

学习编写Bubble Sort
使用sort,排序数组后5个元素。

//查找元素
学习编写Stack。

学习编写循环Queue
public class Queue{
public int[] arr = new int[5];
public int head = 0;
public int count = 0;
public boolean full{
if{
return true;
}else{
return false;
}
}
public boolean empty{ if{
return true;
}else{
return false;
}
}
public boolean enQueue{。

相关文档
最新文档