一、填空
1.软件开发具有多种程序设计方法,其中__________________和面向对象程序设计是最具代表性的。
2.面向对象程序设计的四个特性是:抽象性、_________、_________、多态性。
3.根据程序结构和运行环境的不同,Java源程序分为两类,即_________和_________。 4.JVM的中文含义是____________,它的作用是____________________。 5.Java语言中,流程控制语句包括顺序结构、___________、___________。 6.在Java程序中,整数类型包含byte、______、int和long等四种类型。 7.在Java程序中,通过____ __的定义可以实现多继承。 8.Java中访问限定符有public、protected、private、 。
9.如果用final修饰一个类,表明此类不可____________。如果用final修饰一个变量,表明此变量____________。
10.接口是一种只含有______或常量的一种特殊的抽象类。
11.每个应用程序(Application)可以包括许多方法,但必须且只能有一个______方法。
12.Java源文件中只能有一个______类,其他类的个数不限。 13.面向对象的软件开发过程包括四个阶段: 、面向对象设计、 、面向对象测试。
14、String s = new String(\"xyz\");创建了 _______个字符串对象。
二、选择
1.Java语言是以( )为程序的基本单位。
A. 类 B. 对象 C. 实体 D. 方法 2.下列说法中,不正确的是( )。
A. Java 类可以有多个直接父类 B. Java是区分大小写的 C. Java支持多线程
D. Java 程序具有跨平台性 3.下列语句的输出结果为( )。
int a=10, b=6; boolean c=true;
System.out.println((a>b)&&(!c))
A. 1 B. 0 C. true D. false 4.下列的变量定义语句中,合法的是()。
A. float $_*9=8.4f
B. double d=Double.MAX_VALUE; C. int i=3214L D. byte b=12345;
5.指出下列是面向对象的程序设计语言()。 A. C
B. BASIC C. C++ D. Pascal
6.按照见名知义的原则,String型变量address的一种规范的命名应该是( )。
A. StrAddress B. straddress C. stringAddress D. strAddress 7.为了实现信息隐藏和访问,设计类的成员时,访问属性可以设置为( )。
A. 属性是public,方法是public B. 属性是public,方法是private C. 属性是private,方法是public D. 属性是private,方法是private 8.Java源程序文件的扩展名为( )。
A. .class B. .java C. .html D. .exe 9. Java语言创建包的关键字是( )。
A. package B. import C. implements D. synchronized 10.在Java程序中,处理异常不经过如下哪个阶段( )。
A. 抛出异常 B. 捕获异常 C. 处理异常 D. 退出异常 三、简答题
1.为什么说Java语言程序是“一次编译,处处运行”的? 2.简述类、继承、多态的概念。
3.简述构造方法的特殊性以及它的主要作用。 4.什么是成员方法的覆盖?它有什么作用?
5.子类继承了父类的哪些成员?子类可以直接访问父类的哪些成员? 6.什么是包?包有什么用途? 四、程序分析题
阅读程序,回答问题: class Person { private String name; private int age; private static int numberOfPersons; static {numberOfPersons=0;} Person( ){this(\"\ Person(String n,int a) { name = n; age = a ; numberOfPersons++;} setName(String n) { name = n;} void setAge(int a) { age = a;} String getName( ) { return name;} int getAge () { return age;} static int getNumberOfPersons( ){return numberOfPersons;} }
请回答:
1)在Person类中,哪些是属性,哪些是方法?不考虑构造方法,哪些是实例成员,哪些是静态成员?哪些是实例属性,它们是怎样初始化的?哪些是静态属性,它们是怎样初始化的?哪些是静态方法,静态方法的作用是什么? 2)Person类中哪些方法实现了重载?
3)指出程序中this(\"\的含义。
4)numberOfPersons的作用是什么?指出把它设置为类属性的好处。 五、程序设计题:
设计一个抽象图形类Shape, 属性为x和y,表示图形Shape的中心在平面中的坐标,并设计一个计算面积的方法area( ) ;在Shape类的基础上设计子类,分别是圆Circle和正方形Square,其属性分别为半径r和边长l。设计一个测试类Test,创建Circle和Square的对象c和s,使c的半径为5,s的边长为10,坐标任选,以多态的形式求出面积。
练习答案
一、填空题:
1. 结构化程序设计 2. 封装性 继承性 3. 应用程序(Application) 小应用程序(Applet) 4. Java虚拟机 执行Java字节码代码 5. 分支结构 循环结构 6. short 7. 接口 8. 默认 9. 作为父类(被继承)值不可被修改(为常量) 10. 抽象方法 11. main 12. public 13. 面向对象分析 面向对象程序设计 14. 一个 二、单选题:
1. A 2. A 3. D 4. B 5. C 6. D 7. C 8. B 9. A 10. D 三、简答题:
1. ①Java语言源程序编译完成之后生成与环境无关的中间字节码文件.
②对于生成的字节码文件通过JVM(JAVA虚拟机)解释执行,只要将JAVA虚拟机安装在计算机上就可以解释执行字节码文件.
2. ①类,是一种引用型数据类型,是现实世界具有共性实体的抽象描述,主要包含属性及作用在属性之上的行为。②继承,一个类的定义基于另外一个已存在的类,是另外一个类原有内容的扩充,实现代码的重用。③多态,对于同一个消息不同类的对象产生不同的效果。
3. 构造方法的特殊性在于:该方法没有返回数据类型,创建对象时系统自动调用。该方法的作用:为创建的对象分配存储空间,为对象的属性赋初始值。
4. 子类中定义的成员方法与父类中某个成员方法签名完全相同时,就会将父类对应的成员方法隐藏起来,这种现象称为覆盖。(2)覆盖的作用是对父类相应成员方法功能的补充与增强或对父类相应成员方法的重新定义,实现多态功能。
5. 子类继承父类中的所有成员。在同一包中子类可以访问父类中除具有private访问属性之外的所有成员。在不同包中子类可以访问父类中具有public,protected访问属性的成员。
6. 包,是类和接口的集合,通过创建目录实现。用途为,①便于将若干已存在的类或接口整体加载到程序代码中②避免类名冲突的现象。 四、程序分析题:
1.在person类中name,age,numberOfPersons为类的属性,构造方法和setName,setAge,getName,getAge,getNumberOfPersons是成员方法。在类的成员中除numberOfPersons属性和getNumberOfPersons方法之外都属于实例成员。name,age属实例属性,一般在构造方法当中初始化。numberOfPersons属静态属性,通过类变量初始化器进行初始化。getNumberOfPersons为静态方法,该方法的作用是访问静态变量。 2. Person类中构造方法实现了重载。
3. this(“”,0)代表有参构造方法---Person(String n,int a),对类中的成员属性进行初始化。
4.NumberOfPersons的作用是记录创建的Person类对象个数。 五、程序设计题: abstract class Shape{ private float x; private float y; Shape(){x=0;y=0;} Shape(float x0,float y0){x=x0;y=y0;} void setXY(float x0,float y0){x=x0;y=y0;} float getX(){return x;} float getY(){return y;} abstract double area(); }
class Circle extends Shape { private float r;
Circle(){;}
Circle(float radium){r=radium;}
Circle(float x0,float y0,float radium){super(x0,y0);r=radium;} void setR(float r0){ r=r0;} float getR(){return r;}
double area(){ return 3.142*r*r;}; }
class Square extends Shape { private float l;
Square(){;}
Square(float longth){l=longth;} void setL(float longth){l=longth;} float getL(){return l;}
double area(){return l*l;}; }
public class Test{ public static void main (String[] args){ Shape c,s; double areaOfCircle,areaOfSquare; c=new Circle(5); areaOfCircle=c.area();
}
System.out.println(\"The circle area is \"+areaOfCircle);
s=new Square(10); areaOfSquare=s.area();
System.out.println(\"The square area is \"+areaOfSquare); }
因篇幅问题不能全部显示,请点此查看更多更全内容