类和接口习题
- 格式:doc
- 大小:22.50 KB
- 文档页数:8
1.1 习题一、填空题1、Java的三大体系分别是______、______、______。
2、Java程序的运行环境简称之为______。
3、编译Java程序需要使用______命令。
4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的______目录下。
5、______环境变量用来存储Java的编译和运行工具所在的路径,而______环境变量则用来保存保存Java虚拟机要运行的“.class”文件路径。
二、判断题1、通过Java虚拟机可以在不同的操作系统上运行Java程序,从而实现跨平台特性。
2、JRE中又包含了Java基础类库、JVM和开发工具。
3、Java中的包是专门用来存放类的,通常功能相同的类存放在相同的包中。
4、java.util:包含Java中大量工具类、集合类等,例如Arrays、List、Set等。
5、Java语言和C语言一样,是面向过程的语言。
三、选择题1、以下选项中,哪些属于JDK工具?(多选)A、Java编译器B、Java运行工具C、Java文档生成工具D、Java打包工具2、Java属于以下哪种语言?A、机器语言B、汇编语言C、高级语言D、以上都不对3、下面哪种类型的文件可以在Java虚拟机中运行?A、.javaB、.jreC、.exeD、.class4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?A、Java文档制作工具B、Java解释器C、Java编译器D、Java启动器5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?A.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d:\jre;四、简答题1、简述Java的特点。
2、简述JRE与JDK的区别。
3、简述Java的运行机制。
接口的练习题接口是面向对象编程中的一个重要概念,它定义了类与类之间的协议。
在Java语言中,接口通过关键字“interface”来定义,可以理解为一种抽象的类,它只包含常量和抽象方法的声明。
接口的作用是实现多重继承,让一个类可以同时拥有多个接口的特性。
接下来,我们将通过一些练习题来深入理解接口的使用。
1. 定义一个接口Shape,包含一个计算面积的抽象方法getArea()和一个计算周长的抽象方法getPerimeter()。
```public interface Shape {double getArea();double getPerimeter();}```2. 创建一个矩形类Rectangle,实现Shape接口。
```public class Rectangle implements Shape {private double width;private double height;public Rectangle(double width, double height) { this.width = width;this.height = height;}@Overridepublic double getArea() {return width * height;}@Overridepublic double getPerimeter() {return 2 * (width + height);}}```3. 创建一个圆形类Circle,实现Shape接口。
```public class Circle implements Shape {private double radius;public Circle(double radius) {this.radius = radius;}@Overridepublic double getArea() {return Math.PI * radius * radius;}@Overridepublic double getPerimeter() {return 2 * Math.PI * radius;}}```4. 创建一个测试类Test,用于测试Rectangle和Circle类的功能。
(一)一、选择题1、软件开发过程中,最困难的一个环节是()A、程序语言的学习B、详细设计C、需求分析D、编码设2、若将活动状态比作方法,那么动作状态即()A、方法名B、方法返回值C、方法体中的每一条语句D、方法的可见性3、UML提供了一系列的图支持面向对象的分析与设计,其中()给出系统的静态设计视图;()对系统的行为进行组织和建模是非常重要的;()和()都是描述系统动态视图的交互图,其中()描述了以时间顺序组织的对象之间的交互活动,()强调收发消息的对象的组织结构。
A、状态图B、用例图C、顺序图D、部署图E、通信图F、类图G、时序图4、在一个订单输入子系统中,创建新订单和更新订单都需要检查用户帐号是否正确。
那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是()关系A.包含(include)B.扩展(extend)C.分类(classification)D.聚集(aggregation)5、Innovation公司正在为Rose开发插入件,使得Rose可以把OOA、OOD模型以各种图形格式导出,如JPEG 格式、BMP格式、GIF格式等。
在导出时,会根据不同的算法来生成相应的图形文件,这些算法很复杂。
为了描述这些算法,如下图中,那个最适合()A. 活动图B. 状态图C. 类图D. 用例图二、简答题1、找出并说明下面类图中的错误。
Class C1{C2 c2 = new C2();public void f1(){ c2.f2(); }}Class C2{public void f2(){ f2(); }}4、请找出下面类图中存在的错误并画出正确的类图。
5、对于如下类图,请写出OCL约束:(1)、对于一个班级而言,只有注册人数大于25人方可开课并且由于教室大小的约束,人数又不能超过80人。
(2)每个学生必须经注册后方能听课6、请解释下面两个活动图(图1和图2)的执行流程,并讨论它们的区别。
Job1-11【填空题】Sun公司于年正式对外公布Java语言。
正确答案:第一空:19952【填空题】2007年11月,Google公司宣布推出基于Linux的开源智能手机操作系统,它使用Java 语言来开发应用程序,使用类似的Dalvik虚拟机来运行程序,这给了Java一个新的发展和推广机遇。
(英文单词请注意大小写,英文缩写全部大写)正确答案:第一空:Android;安卓第二空:JVM;jvm;Java虚拟机3【填空题】JVM是英文单词的缩写;JDK是英文单词的缩写,由JRE和编译、运行、调试Java应用程序的各种工具和资源包构成。
如果我们只想运行别人开发的Java程序,只需要安装即可JRE( ) 英文即可。
(英文单词之间只允许一个空格,首字母大写)正确答案:第一空:Java Virtual Machine 第二空:Java Development Kit第三空:Java Runtime Environment4【填空题】Java分为三个版本:、和。
(英文单词不加空格,注意大小写)正确答案:第一空:JavaEE 第二空:JavaME 第三空:JavaSE5【填空题】Java采用_____________和_______________合,实现了执行效率和可移植性的双重提高。
正确答案:第一空:编译第二空:解释6【填空题】Java程序运行的五个步骤:_______________、_______________、_______________、_______________、_____________。
(汉字)正确答案:第一空:编辑第二空:编译第三空:加载第四空:验证第五空:运行7【填空题】请列出Java程序的各种形态:_______________、______________、JSP/Servlet和JavaBean。
(英文单词首字母应大写)正确答案:第一空:Application 第二空:Applet8【填空题】一个Java源文件中可定义多个_____________和_____________,但public class/interface如果有的话只能定义一个,并且其类名与Java源文件名必须相同。
接口编程练习题在软件开发中,接口编程是一项非常重要的技能。
通过接口编程,我们可以实现不同模块之间的通信和交互,提高代码的可复用性和可维护性。
为了帮助大家熟悉接口编程,我将给出一些接口编程的练习题,供大家实践和探索。
练习题一:接口定义请定义一个名为"Shape"的接口,具有计算面积和计算周长的两个方法。
这个接口可以被不同的图形类实现,比如圆形、正方形等。
每个图形类都需要实现这两个方法,并根据具体的形状计算出相应的面积和周长。
练习题二:接口的实现请创建一个圆形类"Circle",实现上述"Shape"接口,并根据半径计算圆形的面积和周长。
具体的计算公式可以自行选择。
练习题三:多态性应用请创建一个方法"printShapeInfo",接收一个"Shape"类型的参数,并打印该图形的面积和周长信息。
在方法内部,借助接口的多态性,可以接收不同形状的图形对象,并调用对应的方法。
练习题四:接口的扩展请思考并设计一个扩展"Shape"接口的子接口或实现类,增加计算体积的方法。
然后创建一个相应的图形类,实现该接口,并实现计算体积的方法。
练习题五:接口的应用场景请思考并描述在实际项目中,接口编程可以带来哪些好处和应用场景。
举例说明接口编程在实践中的应用情景,以及通过接口编程实现的功能和效果。
通过以上的练习题,我们可以初步了解和掌握接口编程的基本概念和用法。
接口编程的灵活性和可扩展性使得我们可以更好地进行模块化开发和代码复用,提高项目的开发效率和质量。
在实际的软件开发中,合理地运用接口编程可以帮助我们更好地组织和管理代码,提高系统的可维护性和可拓展性,是一个非常重要的编程技能。
希望大家通过这些接口编程的练习题,能够更加深入地理解和应用接口编程的思想和方法,为自己的软件开发能力提升打下坚实的基础。
希望大家能够在实践中不断探索和学习,不断提高自己的编程水平。
MCS-51单片机原理及接口技术习题参考答案第一章绪论1-1解答:第一台计算机的研制目的是为了计算复杂的数学难题。
它的特点是:计算机字长为12位,运算速度为5 000次/s,使用18 800个电子管,1 500个继电器,占地面积为150 m2,重达30 t,其造价为100多万美元。
它的诞生,标志着人类文明进入了一个新的历史阶段。
1-2解答:单片微型计算机简称单片机。
一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。
1-3解答:单片机的发展大致经历了四个阶段:第一阶段(1970—1974年),为4位单片机阶段;第二阶段(1974—1978年),为低中档8位单片机阶段;第三阶段(1978—1983年),为高档8位单片机阶段;第四阶段(1983年至今),为8位单片机巩固发展阶段及16位单片机、32位单片机推出阶段。
1-4解答:Intel公司的MCS-48系列、MCS-51系列、MCS-96系列产品;Motorola公司的6801、6802、6803、6805、68HC11系列产品;Zilog公司的Z8、Super8系列产品;Atmel公司的AT89系列产品;Fairchild公司的F8和3870系列产品;TI公司的TMS7000系列产品;NS公司的NS8070系列产品;NEC公司的μCOM87(μPD7800)系列产品;National公司的MN6800系列产品;Hitachi公司的HD6301、HD63L05、HD6305。
1-5解答:(1)8031/8051/8751三种型号,称为8051子系列。
8031片内没有ROM,使用时需在片外接EPROM。
8051片内含有4KB的掩模ROM,其中的程序是生产厂家制作芯片时烧制的。
8751片内含有4KB的EPROM,用户可以先用紫外线擦除器擦除,然后再利用开发机或编程器写入新的程序。
(2)8032A/8052A/8752A是8031/8051/8751的增强型,称为8052子系列。
选择题:能将程序补充完整的选项是()。
Class Person{Private int a;Public intchange(int m){return m;}}Public class Teacher extends Person{publicint b;public static void main (String[]args)//主函数{person p=new person();Teacher t=new Teacherinti;;}}A.i=mB.i=bC.i=p.aD.i=p.change(50)简答题类中的实例变量在什么时候会被分配内存空间?答:当用new关键字创建对象时就给类中的实例变量分配了内存空间,然后执行构造方法中的语句。
如果成员变量在声明时没有指定初值,所使用的构造方法也没有对成员变量进行初始化操作,那么对于整型的成员变量,默认值是0;对于浮点型变量,默认值是0.0;对于布尔型变量,默认值是false;对于引用型变量,默认值是null。
编程题设计一个teacher类,包含有三个私有字段name、teacherID、address,以及供外部访问这三个私有字段的对应方法getName、setname、getTeacherID、getAdress、setAdress。
同时Teacher 类还有一个能按查询条件字符串(qryString)查询老师授课课程的方法queryCourse,queryCourse返回字符串类型的课程名称。
请编写出Teacher类的定义代码。
解:public class Teacher{private String name ;privateintteacherID;private String address;public Teacher(){}public String getName(){return name;}public void setName (String nam ){name=nam;}publicintgetTeacherID(){returnteacherID;}public void setTeacherID( int id){teacherID=id;}public String getAddress(){return address;}publicvoid setAddress(String add){address=add}public String query Course(String qryString){return “”}}选择题1.若一个域能被这个类的所有代码访问,能被与这个类在同一个包中的所有类访问,能被任何一个包中的所有类访问,则这个类域属于()。
1.下列说法(B )是正确的(A)创建对象一定要用new// Calendar rightNow = Calendar.getInstance();(B)类变量可以是简单变量,也可以是一个对象(C)类变量必须是简单变量(D)对象中必有变量和方法2.关于实例方法和类方法,正确的是(D )(A)实例成员方法只能访问实例成员变量(B)类方法既可以访问类变量,也可以访问实例成员变量(C)类方法只能通过类名来调用(D)实例成员变量只能通过对象来调用3.关于接口的定义和实现,以下描述正确的是(A)(A)接口定义中的方法都只有定义没有实现(B)接口定义中的变量都必须写明final和static(C)如果接口由多个类来实现,则这些类在实现该接口中的方法时应采用统一代码(D)如果一个类实现一个接口,则必须实现该接口中的所有方法,但方法未必声明为public4.下列描述正确的是(B )(A)Java的源程序必须是以.java或.jav扩展名保存(B)JVM可以是软件也可以是硬件(C)Java使用编辑器执行代码(D)用高级语言编写的代码可以让计算机直接理解并执行他们5.下列关于注释语句描述正确的是(C )(A)以/ / 开始的是多行注释语句(B)以/ *开始,* /结束的是单行注释语句(C)以/ **开始,* /结束的是可以用于生成帮助文档的注释语句(D)以/ **开始,* /结束的是单行注释语句6.下列说法中,不正确的是( B )(A) 一个java源程序经过编译后,得到的文件的扩展名一定是.class。
(B) 一个java源程序编译通过后,得到的结果文件数也只有一个。
(C)一个java源程序只能有一个public class类定义,且源文件的名字与public class的类名相同,扩展名必须是.java。
(D)一个java源程序可以包含多个class类。
7、给出如下代码:public class Example{public static void main(String args[]){static int x[] = new int[15];System.out.println(x[5]);}}以下哪个说法是正确的?(A )(A) 有错,不能通过编译(B) 编译通过,但运行时有错(C)输出0(D)输出null8、以下哪个接口的定义是正确的?(BD )(A) interface B{ void print() { } ;}(B) abstract interface B{ void print() ;}(C) abstract interface B extends A1,A2 //A1、A2为已定义的接口{ abstract void print(){ };}(D) interface B{ void print();}9、编译并运行以下程序(命令:java A 0),关于运行结果的描述以下哪个选项是正确的(A)class A{public static void main(String [ ] args){long i=1;switch(i){case 0: System.out.println("0");case 1: System.out.println("1");default : System.out.println("default");}}}(A)编译出错(B)打印出“0”(C)打印出“1”(D)打印出“default”10. 一个包含Java类A,B,C的源程序A.Java,编译产生的类文件是(B)A.A.class B.A.class,B.class,C.class C.A.class,B$.class,C$.class D.A$.class,B$.class,C$.class11. 分析以下程序:public class Foo{public static void main (String args[ ]){String s;System.out.println (“s =” + s);}}该程序的执行结果是(C )。
面向对象编程基本知识练习一、判断题1.不需要定义类,就能创建对象。
()2.构造方法用于给类的private 实例变量赋值。
()3.对象一经声明就可以立即使用。
()4.在定义变量和方法时,必须清楚地在其面前标上访问权限修饰符。
()5.Java 程序中的参数传递都是把参数值传递给方法定义中的参数。
()6.在类定义中,成员访问权限修饰符不能多次出现。
()7.new 操作符动态地为对象按其指定的类型分配内存,并返回该类型的一个引用。
()8.类的方法通常设为public,而类的实例变量一般也设为public。
()9.构造方法在创建对象时被调用。
()10.通过点运算符与类对象的引用相连,可以访问此类的成员。
()11.声明为protected 的类成员只能被此类中的方法访问。
()12.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间。
()13.类的成员变量可以放在类体的任意位置。
()14.声明为protected 的类成员可以被此类作用域中的任何对象访问。
()15.没有返回值的方法可以用void 来表示,也可以不加。
()二、选择题1. 下面对对象概念描述错误的是:( )A 操作是对象的动态属性B 任何对象都必须有继承性C 对象间的通讯靠消息传递D 对象是属性和方法的封装体2.编译并运行下面的程序,运行结果为:( )public class A{public static void main(String[] args){A a=new A();a.method(8);}void method(int i){System.out.println(“int:“+i);}void method(long i){System.out.println(“long:“+i);}}A 程序可以编译运行,输出结果为int:8B 程序可以编译运行,输出结果为long:8C 程序有编译错误,因为两个method()方法必须定义为静态(static)的D 程序可以编译运行,但没有输出3.下面关于类的说法不正确的是:()A 类是Java 语言中的一种复合数据类型B 类中不包含数据变量和方法C 类是对所有具有一定共性的对象的抽象D Java 语言的类只支持单继承4.能作为类及其成员的修饰符是:()A interfaceB classC protectedD public5.设x、y 均为已定义的类名,下列声明对象x1 的语句不可能正确的是:()A public x xl=new y();B public y xl=new x();C x xl=new x();D x xl=x();6.面向对象程序设计技术的特点是:()A 可重用性B 可维护性C 表示方法的一致性D 可重用性、可维护性、表示方法的一致性7.下列方法定义中,方法头不正确的是:()A public static x(double a){…}B public static int x(double y){…}C void x(double d)D public int x(){…}8.设已声明了一个类A 的两个对象al、a2,为了初始化a1 和a2,下面语句正确的是:()A al=new(); a2=new();B al=A new(); a2=A new();C al,a2=new A();D al=new A(); a2=new A();9.构造方法何时被调用?()A 类定义时B 使用对象的变量时C 调用对象方法时D 创建对象时10.下列哪个类声明是正确的?()A public abstract class Car{…}B abstract private move(){…}C protected private number;D abstra ct final class Hl{…}11.下列不属于面向对象程序设计的基本特征的是:()B 封装C 继承D 静态12.请看下面的程序段class Person {String name,department;int age;public Person(String n) { name = n; }public Person(String n,int a) { name = n; age = a; }public Person(String n,String d,int a) {//doing the same as two arguments version of constructer//including assignment name=n,age=a}}下面那一选项可以添加到“//doing the same……”处:()A Person(n,a)B this(Person(n,a))C this(n,a)D this(name.age)13.()是一个特殊的方法,用于对类的实例变量进行初始化。
java面向对象编程练习题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?A. structB. classC. interfaceD. enum2. Java中的继承是:A. 多重继承B. 单一继承C. 无继承D. 可选继承3. 以下哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. 所有选项都是4. 以下哪个不是Java对象的三个基本特征?A. 封装B. 继承C. 多态D. 线程5. 以下哪个方法用于获取对象的内存地址?A. hashCode()B. equals()C. getClass()D. toString()二、简答题1. 解释Java中的封装是什么,并给出一个封装的例子。
2. 描述Java中的继承是如何工作的,并给出一个继承的例子。
3. 解释Java中的多态性,并给出一个多态性的例子。
三、编程题1. 创建一个名为`Car`的类,它具有以下属性:- 品牌(String)- 型号(String)- 年份(int)并为这些属性提供getter和setter方法。
2. 创建一个名为`ElectricCar`的类,它继承自`Car`类,并添加以下属性:- 电池电量(int)实现`ElectricCar`类,并重写`toString()`方法,以显示电动汽车的详细信息。
3. 创建一个名为`VehicleTest`的类,它包含`main`方法。
在`main`方法中,创建`Car`和`ElectricCar`的实例,并打印它们的状态。
四、代码分析题1. 阅读以下Java代码片段,并解释它的作用:```javapublic class Person {private String name;private int age;public Person(String name, int age) { = name;this.age = age;}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}```2. 阅读以下Java代码片段,并指出可能的错误:```javapublic class Animal {public void speak() {System.out.println("The animal makes a sound");}}public class Dog extends Animal {@Overridepublic void speak() {System.out.println("The dog barks");}}public class Cat extends Animal {@Overridepublic void speak() {System.out.println("The cat meows");}}public class TestAnimals {public static void main(String[] args) {Animal myDog = new Dog();Animal myCat = new Cat();myDog.speak();myCat.speak();}}```五、论述题1. 论述Java面向对象编程中接口与抽象类的区别,并给出使用场景。
1.{
它的一个方法用于判断学生是否符合录取条件。
2.编写一个录取类,
其中录取条件为:
综合成绩在录取分数线之上,或体育成绩在96分以上并综合成绩大于300分。
该类中的main方法建立若干个学生对象,对符合录取条件的学生,输出其信息“被录取”.
class Luqu
{
int fenshu;
int sport;
void tiaojian()
%
{
if(fenshu>=450 || (sport>96 && fenshu>300))
{
"被录取");
}
else
{
"没有被录取");
$
}
}
void Luqu(int a,int b)
{
fenshu=a;
|
sport=b;
}
}
public class ex1
,
{
public static void main(String args[]) {
Luqu zhang3=new Luqu ();
(301,97);
();
\
Luqu li4=new Luqu ();
(500,50);
();
}
}
<
2. 要求有一个abstract类,类名为Employee. Employee的子类是YearWorer,MonthWorker和
WeekWorker. YearWorker对象按年龄领取薪水,MonthWorker对象按月领薪水,WeekWorker对象按周领薪水,Employee类有一个abstract方法:
Public abstract earning();
子类必须重写父类earning()方法,给出各自领取报酬的具体方式。
abstract class Employee。
{
public abstract void earning();
}
class YearWoker extends Employee {
public void earning()
{
"按年龄领取薪水");
》
}
}
class MonthWoker extends Employee {
public void earning()
{
"按月领薪水");
}
、
}
class WeekWorer extends Employee {
public void earning()
{
"按周领薪水");
}
$
}
public class ex2
{
public static void main(String args[])
{
YearWoker yw=new YearWoker();
MonthWoker mw=new MonthWoker();
~
WeekWorer ww=new WeekWorer();
();
();
();
}
}
3.学校有学生和老师两类人,,而在职的研究生既是老师又是学生,
对学生的管理和对老师的管理在他们身上都有体现。
(1)设计两个信息管理接口StudentInterface和TeacherInterface.其中StudentInterface接口包括setFee方法和getFee方法,分别用于设置和获取学生的学费;
TeacherInterface接口包括setPay方法和getPay方法,分别用于设置和获取教师的工资。
>
(2)定义一个研究生类Graduate,实现StudentInterface接口和TeacherInterface接口,它定义的成员变量有name(姓名)、sex(性别)、age(年龄)、fee(每学期学费)、pay(工资)。
(3)创建一个姓名为“zhangsan”的研究生,统计他的年收入和学费,如果收入减去学费不足2000元,则输出“provide a loan”(需要贷款)信息。
interface StudentInterface
{
public void setFee();
public void getFee();
}
interface TeacherInterface
}
{
public void setPay();
public void getPay();
}
class Graduate implements StudentInterface,TeacherInterface
{
String name;
String sex;
;
short age; //or int
double fee;
double pay;
public void setFee()
{
}
public void getFee()
{
{
"学费为:"+fee);
}
public void setPay()
{
}
public void getPay()
;
{
"工资为:"+pay);
}
public void setDaikuan()
{
if((pay-fee)<2000)
{
"provide a loan");
}
}
}
public class ex3
{
public static void main(String args[]) {
Graduate zhangsan=new Graduate();
=;
=;
();
}
}。