重要通知!小编出新的Java练习题已经公布答案了!!!

一、选择题和问答题

1、在一个java原文件中,import, class, package语句的顺序是(D)。

A. import classpackage

B. class importpackage

C. package classimport

D. import packageclass

E. class packageimport

F. package importclass

2、执行下面程序段后,b, x, y的值分别是( D ).

int x=6,y=8;

boolean b;

b=x>y&&++x==--y;

A)true , 6, 8 B)false , 7, 7 C)true, 7, 7 D)false, 6, 8

3、下列语句序列执行后,r 的值是( C ).

char ch='8'; intr=10;

switch( ch+1 )

{

case '7': r=r+3;

case '8': r=r+5;

case '9': r=r+6;break;

default: r=r+8;

}

A) 13 B) 15 C) 16 D) 18

4、能从循环语句的循环体中跳出的语句是( BCD ).

A)for语句 B)break语句 C) continue语句 D)return语句

5、为了区分类中重载的同名的不同方法,要求( AB ).

A) 采用不同的形式参数列表 B) 返回值类型不同

C) 调用时用类名或对象名做前缀 D) 参数名不同

6、现有一个类定义如下,请回答问题:

class Employee

{

String name;

int age;

double wage;

static int No=0;

Employee(Stringa1,int a2,double a3)

{

name=a1; age=a2;wage=a3;

No++;

}

}

在使用该类时,已使用下面语句生成了该类的对象:

Employee e1,e2;

e1=newEmployee("王劲",26,6300);

e2=newEmployee("张山",30,3800);

问题:

1) e2.name,e2.age,e2.wage的值各是什么 ?

e2.name: 张山

e2.age:30

e2.wage:3800

2) 生成对象e1,e2后,e1.No值为多少?能否通过类名做前缀引用属性No ?

e1.No=2;

可以通过类名做前缀引用属性No

7、现有类说明如下,请回答问题:

class A

{

int x=10;

int getA(){return x;}

}

class B extends A

{

int x=100;

int getB(){return x;}

}

问题:

1)类B是否能继承类A的属性x ?

可以

2)若b是类B的对象,则b.getB()的返回值是什么?

100

3)若b是类B的对象,则b.getA()的返回值是什么?

10

4)类A和类B都定义了x属性,这种现象称为什么 ?

重写

8、有如下源程序,请回答问题:

class A

{ String s="class A"; }

class B extends A

{ String s="class B"; }

public class TypeConvert

{

public static void main(String args[])

{

B b1,b2=new B();

A a1,a2;

a1=(A)b2;

a2=b2;

System.out.println(a1.s);

System.out.println(a2.s);

b1=(B)a1;

System.out.println(b1.s);

System.out.println(b2.s);

}

}

问题: 该程序的四行输出各是什么?

class A

class A

class B

class B

9、下面是定义一个接口ITF的程序,完成程序填空.

public interface ITF

{

public static final double PI=Math.PI;

public ( abstract )double area(double a, double b);

}

10、下面是定义一个接口A的程序,完成程序填空.

public interface A

{

public ( static )( final ) double PI=3.14159;

public double area(double a, double b) ( ; )

}

11、下面关于构造函数的说法不正确的是( B

A、构造函数也属于类的方法,用于创建对象的时候给成员变量赋值。

B、构造函数不可以重载。

C、构造函数没有返回值。

D、构造函数一定要和类名相同。

12、构造函数何时被调用( B )

A.类定义时 B.创建对象时

C.调用对象方法时 D.使用对象的变量时

13、在 Java 中,用 package 语句说明一个包时,该包的层次结构必须是( B

A 与文件的结构相同

B 与文件目录的层次相同

C 与文件类型相同

D 与文件大小相同

14、在 Java 中,所有类的根类是( A )

Ajava.lang.Objet Bjava.lang.Class Cjava.applet.Applet D java.awt.Frame

15、有如下代码:

public class T {

private int a =10;

int m = 12;

static int n=1;

public static voidmain(String arg[]) {

T t = new T ();

System.out.println(__________);

} }

在空格处如下哪个使用是错误的?( B

A) t.a

B) this.m

C) t.m

D) T.n

16、下面哪个是正确的类声明?假设每一段文本都做为一个名称为Fred.java的文件的全部内容? ( A )

a).

publicclass Fred{

publicint x = 0;

publicFred (int x){

this.x=x;

}

}

b).

publicclass fred{

publicint x = 0;

publicFred (int x){

this.x=x;

}

}

c).

publicclass Fred extends MyBaseClass, MyOtherBaseClass{

publicint x = 0;

publicFred(int xval){

x=xval;

}

}

d).

protectedclass Fred{

privateint x = 0;

privateFred (int xval){

x=xval;

}

}

A.a)

B.b)

C.c)

D.d)

17、在Java中下列关于继承的论述中,错误的是( C )

A.继承具有传递性 B.继承关系也称为"即是"(is a)关系

C.支持多继承 D.继承提高了系统的可重用性

18、在Java中,关于封装性的说法中,错误的是( B )

A.是一种信息隐蔽技术 B.使对象之间不可相互作用

C.是受保护的内部实现 D.与类有关,封装的基本单位是对象

二、填空题

1、面向对象程序设计的三大特性是:封装,( 继承 ),( 多态 )。

2、java中的访问修饰符有( public ),( protected ),( private )。

三、编程题:

1、定义一维数组int nums={45,67,89,12,34,90,100,23,34,5,6,78} ,输出其中最大值。

publicclass Test {

publicstaticvoid main(String[] args) {

int[] nums = { 45, 67, 89, 12, 34, 90, 100, 23, 34, 5, 6, 78 };

intmax = nums[0];

for (inti = 0; i < nums.length; i++) {

if (max < nums[i]) {

max = nums[i];

}

}

System.out.println("The Max Num=" + max);

}

}

2、定义一维数组int nums={45,67,89,12,34,90,100,23,34,5,6,78} ,从小到大排序并输出。

publicclass Test {

publicstaticvoid main(String[] args) {

int[] nums = { 45, 67, 89, 12, 34, 90, 100, 23, 34, 5, 6, 78 };

inttemp;

for (inti = 0; i < nums.length-1; i++) {

for(intj=0;j<nums.length-1;j++){

if(nums[j]>nums[j+1]){

temp=nums[j];

nums[j]=nums[j+1];

nums[j+1]=temp;

}

}

}

for (inti = 0; i < nums.length-1; i++) {

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

}

}

}

3、使用面向对象的编程方法,实现如图所示的设计,使用继承简化设计

//汽车类

publicclass Auto {

public String autoType; //汽车类型

public String autoNum; //车牌号码

public String autoPrice; //汽车价格

}

//轿车类

publicclass Car extends Auto{

public String carName; //轿车名称

}

//货车类

publicclass Truck extends Auto{

public String truckName; //货车名称

}

//XX轿车类

publicclass XX extends Car {

}

//XX货车类

publicclass XX extends Truck {

}

4、定义一个水果接口Fruit

有一个方法:introduction();

publicinterface Fruit {

publicvoid intriduction();

}

定义一个类Apple实现这个接口,并输出:我是一个苹果

publicclass Apple implements Fruit {

@Override

publicvoid introduction() {

// TODOAuto-generated method stub

System.out.println("我是一个苹果");

}

}

定义一个类Banana实现这个接口,并输出:我是一只香蕉

publicclass Banana implements Fruit {

@Override

publicvoid introduction() {

// TODOAuto-generated method stub

System.out.println("我是一个香蕉");

}

}

定义一个类Sydney实现这个接口,并输出:我是一个雪梨

publicclass Sydney implements Fruit {

@Override

publicvoid introduction() {

// TODOAuto-generated method stub

System.out.println("我是一个雪梨");

}

}

定义个类,通过接口的定义,示例化以上三个类。并调用introduction()方法

publicclass FruitIntroduct {

publicstaticvoid main(String[] args) {

Fruit apple=new Apple();

Fruit banana=new Banana();

Fruit sydney=new Sydney();

apple.introduction();

banana.introduction();

sydney.introduction();

}

}

三、简答题:

1、多态包括那两种方式,请分别讲述。

多态包括重写和重载。

重写是指子类和父类的方法具有相同的形式(包括方法的名称、方法的返回类型和方法的参数列表),在调用子类中重写的方法需要使用子类的对象。

重载是指一个类中同名的方法具有不同的参数列表(包括参数个数不同或参数类型不同),或者方法的返回类型不同。

2、接口和抽象类有什么区别?

抽象类是用abstract对类进行修饰,如果一个方法是抽象的,那么这个方法所属的类也必须是抽象的。抽象类中可以声明变量,可以声明抽象方法,也可以有方法的具体实现。

接口是用interface进行定义的。接口也可以理解成一种抽象类,但是接口不可以有方法的具体实现,只能声明常量,声明普通方法或抽象方法。

原文发布于微信公众号 - java学习(javaxxf)

原文发表时间:2016-03-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏C/C++基础

C++虚拟继承与虚基类

C++虚拟继承一般发生在多重继承的情况下。C++允许一个类有多个父类,这样就形成多重继承。多重继承使得派生类与基类的关系变得更为复杂,其中一个容易出现问题是某个...

7720
来自专栏PHP实战技术

PHP使用栈完成高级计算器-接上文模拟栈

距离上一篇文章PHP模拟栈,小梦就答应了小伙伴们要使用栈来完成一个实战的例子,今天就给大家带来了这个例子,让大家更加深入理解它的使用场景!

7210
来自专栏木子昭的博客

正则 (入门篇)简单来说写好正则表达式的两个要点:写在最后

如果你对正则感兴趣,读完这篇文章,一定会有收获~_^ 简单来说 正则一般代指正则表达式 正则表达式是从"复杂数据"中抽取"有用数据"的公式 ---- 写好正则...

31680
来自专栏Python

python2/3中 将base64数据写成图片,并将图片数据转为16进制数据的方法、bytes/string的区别

python 3中最重要的新特性可能就是将文本(text)和二进制数据做了更清晰的区分。文本总是用unicode进行编码,以str类型表示;而二进制数据以byt...

49620
来自专栏成猿之路

Java面试题-基础篇一

12230
来自专栏赵俊的Java专栏

LeetCode 917 Reverse Only Letters

将字符串转为字符数组,用两个指针,从两端向中间走, 依次找下一个字母进行交换,直到两个指针相碰撞。

11220
来自专栏技术专栏

Scala入门与进阶(五)- 模式匹配

9710
来自专栏数据科学学习手札

(数据科学学习手札49)Scala中的模式匹配

  Scala中的模式匹配类似Java中的switch语句,且更加稳健,本文就将针对Scala中模式匹配的一些基本实例进行介绍:

10740
来自专栏前端黑板报

一个数字截取引发的精度问题(三)

上次总结的第四条: 当传入的参数小于数字的整数位时,返回指数形式表示的字符串。 let numObj = 12345.6numObj.toPrecision(2...

20980
来自专栏ccylovehs

JavaScript基础回顾一(类型、值和变量)

没有答对也不要灰心,本文会巩固你的基础知识,后续会有系列的基础回顾知识,以飨诸君!

8820

扫码关注云+社区

领取腾讯云代金券