Java测试(二)
一、选择题(每题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
- 假设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测试(二)的更多相关文章
- Java进阶(二十五)Java连接mysql数据库(底层实现)
Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...
- 20175212童皓桢 Java实验二-面向对象程序设计实验报告
20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...
- 浅谈Java代理二:Cglib动态代理-MethodInterceptor
浅谈Java代理二:Cglib动态代理-MethodInterceptor CGLib动态代理特点: 使用CGLib实现动态代理,完全不受代理类必须实现接口的限制,而且CGLib底层采用ASM字节码生 ...
- 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- ...
- java 生成二维码后叠加LOGO并转换成base64
1.代码 见文末推荐 2.测试 测试1:生成base64码 public static void main(String[] args) throws Exception { String dat ...
- Java实验二实验报告:java面向对象程序设计
java实验二实验报告 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计模式 实验 ...
- java代码生成二维码
java代码生成二维码一般步骤 常用的是Google的Zxing来生成二维码,生成的一般步骤如下: 一.下载zxing-core的jar包: 二.需要创建一个MatrixToImageWriter类, ...
- Java面试题总结之Java基础(二)
Java面试题总结之Java基础(二) 1.写clone()方法时,通常都有一行代码,是什么? 答:super.clone(),他负责产生正确大小的空间,并逐位复制. 2.GC 是什么? 为什么要有G ...
- java 测试框架 TestNG
Java中print.printf.println的区别 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和prin ...
- Android APP压力测试(二)之Monkey信息自动收集脚本
Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息 ...
随机推荐
- AVL树(查找、插入、删除)——C语言
AVL树 平衡二叉查找树(Self-balancing binary search tree)又被称为AVL树(AVL树是根据它的发明者G. M. Adelson-Velskii和E. M. Land ...
- LD_PRELOAD和ld --wrap
前言 LD_PRELOAD和ld --wrap都能实现不修改原始代码,替换指定函数的实现.通常我们会使用这些方法,替换如malloc)()/free().read()/write()等函数,并在替换函 ...
- .NET World——gPRC概览
什么是gRPC 官方的定义: gRPC is a modern open source high performance RPC framework that can run in any envir ...
- laya2d 与 cad 之间的坐标转换
坐标系基本概念 直角坐标系可分为左手坐标系与右手坐标系,cad 中用到的是右手坐标系, Laya2D 中用到的是左手坐标系, Laya3D 中使用右手坐标系. 那么如何判断二维直角坐标系是左手还是右手 ...
- js作用域链和预编译
js引擎运行分为两步,预解析 代码执行 (1)预解析: js引擎会拿js里面所有的var还有 function 提升到当前作用域的最前面 (2)代码执行:按照代码书写的顺序从上往下执行 预解析分为:变 ...
- Facebook的早期历史
Facemash:谁更有吸引力?Facebook的起源 2003年,当时扎克伯格还是一名哈佛大学的二年级学生,他编写了一个名为Facemash的网站.他利用黑客技术入侵了学校管理部门的网站,并从中 ...
- Python|队列Queue
一 前言 本文算是一次队列的学习笔记,Queue 模块实现了三种类型的队列,它们的区别仅仅是队列中元素被取回的顺序.在 FIFO 队列中,先添加的任务先取回.在 LIFO 队列中,最近被添加的元素先取 ...
- 一文道尽JavaScript 20年的发展史
作者介绍:Andrew Montalenti是Parse.ly的CTO, 一个长期的Python爱好者,以及初创公司和其他项目的创始人. 原文链接:https://amontalenti.com/ ...
- unity_数据结构(常见数据结构及适用场景)
常见的数据结构: 1.Array: 最简单的数据结构 特点:数组存储在连续的内存上.数组的内容都是相同类型.数组可以直接通过下标访问.优点:由于是在连续内存上存储的,所以它的索引速度非常快,访问一个元 ...
- js 快速排序算法
Array.prototype.quickSort = function() { var len = this.length; if(len < 2) return this; var left ...