一、选择题(每题2分,共40分)

1.下面哪个是Java语言中正确的标识符(C )

a)      3com        b)import        c)that d)this

2.下面哪个语句(初始化数组)是不正确的: ( B  )

a)      Int x[]={1,2,3}                 b)int x[3]={1,2,3}

C)  String[] x=new String[]{“a”,”c”}   d) int x[]=new int[]{1,2,3};

3.下述概念中不属于面向对象方法的是(  D )

a)      对象         b)继承多态     c)封装     d)过程调用

4.下面代码中,执行之后i 和j 的值是什么? ( B )

int i=1;

int j;

j= i++ * 2+ 3* --i;

A) 1,2   b)  1,5    c )2,1    d) 2,2

5. 下面关于java中类的说法哪个是不正确的?(  C )

A.类体中只能有变量定义和成员方法的定义,不能有其他语句。

B.构造函数是类中的特殊方法。

C.类一定要声明为public的,才可以执行。

D.一个java文件中可以有多个class定义。

6、给出下面代码:

public class Person{

static int arr[] = new int[10];

public static void main(String args[])

{

System.out.println(arr[1]);

}

}

哪个语句是正确的?(   B )

A.编译时将产生错误;                       B.输出零;

C.编译时正确,运行时将产生错误;              D.输出空

7、编译并运行以下程序段的结果是:(A )

public class MyClass{

final static int i;

public MyClass(){

i =0;

}

public static void main(String args[]){

System.out.println(i);

}

}

A.编译出错    B、null    C、1      D、0

8、A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:

1)A a0=new A();

2)A  a1 =new B();

3)A a2=new C(); 问以下哪个说法是正确的?(D)

A.只有第1行能通过编译

B.第1、2行能通过编译,但第3行编译出错

C.第1、2、3行能通过编译,但第2、3行运行时出错

D.第1行、第2行和行的声明都是正确的

9.构造方法何时被调用(B    )

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

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

10、下面哪项可以得到数组元素的个数,

java中定义数组名为abc,(B )

A、abc.length( )  B、abc.length  C、len(abc) D、ubound(abc)

11、下面哪个修饰符修饰的方法只能被本类中的其他方法使用( C   )

A、protected     B、static     C、private D、public

12、定义一个类名为“MyClass.java”的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:( C )

A. private class MyClass extends Object

B. class MyClass extends Object

C. public class MyClass

D. protected class MyClass extends Object

13、对象使用时,下面描述错误的是( B )

A.通过“.”运算符调用成员变量和方法

B.通过成员变量的访问权限设定限制自身对这些变量方法的调用

C.将一个对象申明为类的成员时,必须在使用前为其分配内存

D.在方法中使用对象作为参数时,采用引用调用

14、下面代码哪行会引起错误?( D )

1) class Parent {

2) private String name;

3) public Parent(){}

4) }

5) public class Child extends Parent {

6) private String department;

7) public Child() {}

8) public String getValue(){ return name; }

9) public static void main(String arg[]) {

10) Parent p = new Parent();

11) }

12) }

A、第3行   B、第6行   C、第7行    D、第8行

15.关于被私有保护访问控制符protected修饰的成员变量,以下说法正确的是? ( A  )

A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

B. 可以被两种类访问和引用:该类本身、该类的所有子类

C. 只能被该类自身所访问和修改    D.只能被同一个包中的类访问

16---17 (多选)

16.对于构造方法,下列叙述正确的是:(AC   )

A. 构造方法的方法名必须与类名相同;

B. 构造方法必须用void申明返回类型

C. 构造方法可以被程序调用

D. 若编程人员没再类中定义构造方法,程序将报错。

17.下面是有关子类继承父类构造函数的描述,其中正确的是:(CD   )

A. 创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数。

B. 子类可以不调用父类的构造函数

C. 子类必须通过super()关键字调用父类的构造函数

D. 子类无法继承父类的构造函数。

18. Java中(  C )

A) 一个子类可以有多个父类,一个父类也可以有多个子类

B) 一个子类可以有多个父类,但一个父类只可以有一个子类

C) 一个子类可以有一个父类,但一个父类可以有多个子类

D) 上述说法都不对

19.关于以下application的说明,正确的是(    C       )

1.  class   StaticStuff

2. {

3.                  static  int  x=10;

4.                  static  { x+=5;}

5.                  public  static  void  main(String  args[ ])

6.                  {

7.                       System.out.println(“x=” + x);

8.                  }

9.                  static  { x/=3;}

10.   }

A、4行与9行不能通过编译,因为缺少方法名和返回类型

B、9行不能通过编译,因为只能有一个静态初始化器

C、编译通过,执行结果为:x=5

D、编译通过,执行结果为:x=3

  1. 假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?(   C    )

class  A{

int  i;

static  String  s;

void  method1() {   }

static  void  method2()  {   }

}

A、System.out.println(a.i);B、a.method1();  C、A.method1();  D、A.method2()

二、填空题(每空2分)

2.Java程序在extends之后只能有一个父类,即extends只能实现 单根     继承。

3.编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为  类名称.class

4.构造方法是一个特殊的方法,主要用于创建对象时初始化对象。构造方法的方法名要求与   类名称    相同,而且无返回值,构造方法无返回值,并不是要在构造方法名前加上  void 。

三、简答题(每道题5分)

a)  .简述break和continue语句在使用时的区别?

b)  .什么是类?什么是对象?类和对象有何联系?

c)  方法的重载和方法的覆盖有什么不同?

d)  .类变量和实例变量有何区别?

e)  Java的成员变量修饰符有哪几种?其中哪种修饰符限定的范围最大?

f)  说明对象的基本概念和主要特征?

g)  什么是包?为什么要使用包?

h)  定义一个学生类Student,包括如下属性:学生学号、姓名、年龄、专业、年级等,要求类中定义构造函数初始化学生类中的属性信息,定义方法Display用于输出学生信息,并编写main函数,创建学生对象,通过对象调用相关方法。

四、程序题(写出主要步骤)(每道题5分)

1.题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

main()

{ 
int i,j,k,n;
for(n=100;n<1000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{
 System.out.print(n);
}
}

2..打印如下图形:

i)  *

j)  ***

k)  *****

l)  *******

m)  *********

简答题答案:

1.什么是类?什么是对象?类和对象有何联系?

1. 答:在面向对象程序设计里,类是定义一个对象的属性和方法的蓝本。对象就是一组变量和相关方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为。类是对象的模板,对象是类的实例,可以从一个类中创建许多对象。

2.方法的重载和方法的覆盖有什么不同?

2. 答:方法重载,指的是在类中创建多个具有相同名称,但使用不同参数的方法,Java虚拟机根据传递给方法的参数个数和类型决定调用哪个重载方法。方法的覆盖指在子类中重新定义父类中已有的方法,对于重写的方法,运行时系统根据调用该方法的实例的类型来决定选择哪个方法调用。

3.类变量和实例变量有何区别?

答:由static修饰的变量称为类变量,当系统在程序中第一次遇到一个类时,便会拷贝一份所有的类变量在内存里。然后那些由此类产生的实例便可分享这些类变量。  实例变量指不是用static修饰的变量,可供实例方法使用。实例变量会复制于每一个从类产生的实例中。

4.Java的成员变量修饰符有哪几种?其中哪种修饰符限定的范围最大?

答:成员变量的修饰符有public、protected、private、static、final。Public修饰符的限定范围最大。

5.说明对象的基本概念和主要特征?

对象是对客观世界实体及其实体关系的抽象。特点:(1)以数据为中心;(2)实现了数据封装;(3)模块独立性好;(4)对象是主动的;(5)本质上具有并行性。

.Java 包(package),为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
包的作用
1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
2 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
3 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
Java使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)。

Java测试(二)的更多相关文章

  1. Java进阶(二十五)Java连接mysql数据库(底层实现)

    Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...

  2. 20175212童皓桢 Java实验二-面向对象程序设计实验报告

    20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...

  3. 浅谈Java代理二:Cglib动态代理-MethodInterceptor

    浅谈Java代理二:Cglib动态代理-MethodInterceptor CGLib动态代理特点: 使用CGLib实现动态代理,完全不受代理类必须实现接口的限制,而且CGLib底层采用ASM字节码生 ...

  4. java 生成二维码、可带LOGO、可去白边

      1.准备工作 所需jar包: JDK 1.6: commons-codec-1.11.jar core-2.2.jar javase-2.2.jar JDK 1.7: commons-codec- ...

  5. java 生成二维码后叠加LOGO并转换成base64

      1.代码 见文末推荐 2.测试 测试1:生成base64码 public static void main(String[] args) throws Exception { String dat ...

  6. Java实验二实验报告:java面向对象程序设计

    java实验二实验报告 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计模式 实验 ...

  7. java代码生成二维码

    java代码生成二维码一般步骤 常用的是Google的Zxing来生成二维码,生成的一般步骤如下: 一.下载zxing-core的jar包: 二.需要创建一个MatrixToImageWriter类, ...

  8. Java面试题总结之Java基础(二)

    Java面试题总结之Java基础(二) 1.写clone()方法时,通常都有一行代码,是什么? 答:super.clone(),他负责产生正确大小的空间,并逐位复制. 2.GC 是什么? 为什么要有G ...

  9. java 测试框架 TestNG

    Java中print.printf.println的区别 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和prin ...

  10. Android APP压力测试(二)之Monkey信息自动收集脚本

      Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息 ...

随机推荐

  1. AVL树(查找、插入、删除)——C语言

    AVL树 平衡二叉查找树(Self-balancing binary search tree)又被称为AVL树(AVL树是根据它的发明者G. M. Adelson-Velskii和E. M. Land ...

  2. LD_PRELOAD和ld --wrap

    前言 LD_PRELOAD和ld --wrap都能实现不修改原始代码,替换指定函数的实现.通常我们会使用这些方法,替换如malloc)()/free().read()/write()等函数,并在替换函 ...

  3. .NET World——gPRC概览

    什么是gRPC 官方的定义: gRPC is a modern open source high performance RPC framework that can run in any envir ...

  4. laya2d 与 cad 之间的坐标转换

    坐标系基本概念 直角坐标系可分为左手坐标系与右手坐标系,cad 中用到的是右手坐标系, Laya2D 中用到的是左手坐标系, Laya3D 中使用右手坐标系. 那么如何判断二维直角坐标系是左手还是右手 ...

  5. js作用域链和预编译

    js引擎运行分为两步,预解析 代码执行 (1)预解析: js引擎会拿js里面所有的var还有 function 提升到当前作用域的最前面 (2)代码执行:按照代码书写的顺序从上往下执行 预解析分为:变 ...

  6. Facebook的早期历史

    Facemash:谁更有吸引力?Facebook的起源   2003年,当时扎克伯格还是一名哈佛大学的二年级学生,他编写了一个名为Facemash的网站.他利用黑客技术入侵了学校管理部门的网站,并从中 ...

  7. Python|队列Queue

    一 前言 本文算是一次队列的学习笔记,Queue 模块实现了三种类型的队列,它们的区别仅仅是队列中元素被取回的顺序.在 FIFO 队列中,先添加的任务先取回.在 LIFO 队列中,最近被添加的元素先取 ...

  8. 一文道尽JavaScript 20年的发展史

      作者介绍:Andrew Montalenti是Parse.ly的CTO, 一个长期的Python爱好者,以及初创公司和其他项目的创始人. 原文链接:https://amontalenti.com/ ...

  9. unity_数据结构(常见数据结构及适用场景)

    常见的数据结构: 1.Array: 最简单的数据结构 特点:数组存储在连续的内存上.数组的内容都是相同类型.数组可以直接通过下标访问.优点:由于是在连续内存上存储的,所以它的索引速度非常快,访问一个元 ...

  10. js 快速排序算法

    Array.prototype.quickSort = function() { var len = this.length; if(len < 2) return this; var left ...