201209学期JAVA语言与面向对象程序设计作业2
第4章-Java语言与面向对象作业习题与答案

第4章 Java语言与面向对象作业习题与答案一、简答题1.什么是对象?什么是类?对象是一种抽象数据类型。
它包含了事物的静态特征(属性)和动态特征(行为)两大特征。
类是一组同种对象的集合与抽象。
即是具有相同属性和方法的一组对象集合。
2.Java语言的单继承是指什么?一个类可以派生出多个子类,但子类只允许有一个父类,而不允许存在多个父类。
3.在一个共有类中的数据成员与方法成员的访问控制符为缺省,则这个类可供什么样的包引用?当一个类的访问控制符为public共有时,说明这个类作为整体对其它类是可见和可引用的;但其数据成员和方法成员访问控制符为缺省时,它们只能被包中类(含当前类)引用。
4.抽象类的用途(1)设计在更高的层次上进行,不考虑具体对象,从而大大简化了处理问题的复杂性;(2)设计出的类也具有更加良好的可扩展性。
5.什么是非静态的成员变量?非静态成员即为实例成员变量(没有加static修饰的变量)。
6.异常Exception和错误Error有什么不同?Java如何处理它们?答:错误通常是指程序本身存在非法情形,常常是因为代码存在问题而引起的,如造成系统崩溃、虚拟机粗错、动态失败等,这一类错误无法恢复或不可能捕获,并将导致应用程序中断。
异常表示另外一种“非同寻常”的错误。
这种错误通常是不可预测,但可以被捕获且可以恢复。
常见的异常情况包括存不足、找不到所需文件等。
对于错误,编程人员可以通过对程序进行更仔细的检查,以避免这种错误。
对于异常,可以使用捕获机制进行捕获,再编写出相应的处理程序。
7.简单述Java的异常处理机制。
答:Java采取“抛出—捕获”的方式,一旦一个异常想象产生,Runnable环境和应用程序会抛出各种标准类型和自己定义的异常,系统就可以捕获这些异常,并一定有相应的机制来处理它,确保不会产生司机、死循环或其它对操作系统的损害,从而保证了整个程序运行的安全性。
8.简单述throw语句和throws关键字之间的差别。
面向对象程序设计技术-作业2

作业二一、写出下列程序运后的输出结果1. #include<iostream.h>void SB(char ch){switch(ch){case 'A':case 'a':cout<<"well!";break;case 'B':case 'b':cout<<"good!";break;case 'C':case 'c':cout<<"pass!";break;default:cout<<"bad!";break;} }void main(){char a1='b',a2='C',a3='f';SB(a1);SB(a2);SB('A');cout<<endl; }======== 屏幕输出如下 ======== Xuehao: xxxx name: xxxxgood!pass!well!Press any key to continue_===============================2. #include<iostream.h>#include<stdlib.h>double SD(int a,int b,char op){ double x;switch(op){case '+':x=double(a)+b;break;case '-':x=double(a)-b;break; case '*':x=double(a)*b;break; case '/': if (b) x=double(a)/b;else exit(1);break;default:exit(1); }return x; }void main(){int x=20,y=12;cout<<SD(x,y,'-')<<' ';cout<<SD(x,y,'*')<<' ';cout<<SD(x+y,y-2,'/')<<endl; } ======== 屏幕输出如下 ======== Xuehao: xxxx name: xxxx8 240 3.2Press any key to continue_===============================3. #include<iostream.h>void main(){int s=0;for(int i=1;i<6;i++)s+=i*i;cout<<"s="<<s<<endl; }======== 屏幕输出如下 ======== Xuehao: xxxx name: xxxxs=55Press any key to continue_===============================4. #include <iostream.h>void main(){int s=0;for( int i=1;;i++){if(s>50)break;if(i%3==0)s+=i; }cout<<"i,s="<<i<<","<<s<<endl; } ======== 屏幕输出如下 ======== Xuehao: xxxx name: xxxxi,s=19,63Press any key to continue_===============================5. #include <iostream.h>void main(){int s1=0,s2=0;for(int i=0;i<10;i++)if(i%2)s1+=i;else s2+=i;cout<<s1<<' '<<s2<<endl; }======== 屏幕输出如下 ======== Xuehao: xxxx name: xxxx25 20Press any key to continue_===============================6. #include <iostream.h>void main(){int n=10,y=1;while(n--){y++;++y;}cout<<"y*y="<<y*y<<endl; }======== 屏幕输出如下 ========Xuehao: xxxx name: xxxxy*y=441Press any key to continue_===============================二、写出下列每个函数的功能1. #include <iostream.h>int SA(int a,int b){if(a>b)return 1;elseif(a==b) return 0;else return -1; }功能:判断a和b,如果a>b返回1;a=b返回0;a<b返回-12. #include <iostream.h>int SC(int a,int b,int c){if(a>=b && a>=c) return a;if(b>=a && b>=c) return b;if(c>=a && c>=b) return c; }功能:返回a,b,c三个数中的最大数3. int SE(int n){int x;cin>>x;if(n==1) return x; int m=x;while(--n){cin>>x;m+=x; }return m; }功能:计算n个数的累加和4. double SF(double x,int n){double p=1,s=1;for(int i=1;i<=n;i++){p*=x;s+=p/(i+1); }return s; }功能:计算1+X/2+X2/3…+X n/(n+1) 5. #include <math.h>bool SG(int x){int a=int(sqrt(x));int i=2;while(i<=a){if(x%i==0) break;i++; }if (i<=a) return 0;else return 1; }功能:判断X是否为素数,若是素数返回1,不是素数返回06. float FH(){float x,y=0,n=0;cin>>x;while(x!=-100){n++;y+=x;cin>>x; }if(n==0) return y;else return y/n; }功能:输入N个数,返回N个数的平均值,如果N=0,返回0,当输入值为-100时结束输入开始计算。
Java语言与面向对象程序设计作业2

Java语言与面向对象程序设计作业2单项选择题第1题下列语句序列执行后,b的值是()。
int a=2,b=4; if(a<--b)a*=a;A、5B、3C、15D、10答案:B第2题下列程序段执行后b3的结果是()。
boolean b1=true,b2=true,b3; b3=!b2?b2:!b2;A、0B、1C、trueD、false答案:D第3题为了使包sos中的所有类在当前程序中可见,可以使用的语句是()。
A、import sos.*;B、package sos.*;C、sos import;D、sos package;答案:A第4题下列关于修饰符混用的说法,错误的是()。
A、abstract不能与final并列修饰同一个类B、abstract类中不可以有private的成员C、abstract方法必须在abstract类中D、staic方法中能处理非static的属性答案:D第5题执行下面程序段后,b,x,y的值分别是()。
int x=6,y=8;boolean b;b=x>y&&++x==--y;A、true,6,8B、false,7,7C、true,7,7D、false,6,8答案:D第6题在Java中,开发图形用户界面的程序需要使用一个系统提供的类库,这个类库就是()包。
A、java.ioB、java.awtC、java.appletD、java.awt.event答案:D第7题下例操作的结果是什么?()System.out prinln(4|3);A、6B、0C、1D、7答案:D第8题为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为()。
A、static void method( )B、public void method( )C、final void method( )D、abstract void method( )答案:A第9题通过调用new List(10,false)创建一个列表,关于该列表的几个说法哪项是错误的()。
java面向对象程序设计 习题答案

java面向对象程序设计习题答案Java面向对象程序设计习题答案Java是一种广泛应用于软件开发的编程语言,而面向对象程序设计(Object-Oriented Programming,简称OOP)则是一种常用的编程范式。
在学习Java的过程中,习题是非常重要的一部分,通过解答习题可以帮助我们巩固所学的知识,并提升编程能力。
本文将为大家提供一些Java面向对象程序设计习题的答案,希望能对大家的学习有所帮助。
1. 编写一个Java类,实现一个简单的计算器功能。
该计算器应该具有加、减、乘、除四种基本运算功能,并能够接受用户输入的两个操作数和运算符。
在计算结果后,将结果输出给用户。
```javaimport java.util.Scanner;public class Calculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个操作数:");double num1 = scanner.nextDouble();System.out.print("请输入第二个操作数:");double num2 = scanner.nextDouble();System.out.print("请输入运算符(+、-、*、/):"); String operator = scanner.next();double result = 0;switch (operator) {case "+":result = num1 + num2;break;case "-":result = num1 - num2;break;case "*":result = num1 * num2;break;case "/":result = num1 / num2;break;default:System.out.println("无效的运算符!");return;}System.out.println("计算结果为:" + result);}}```2. 编写一个Java类,实现一个简单的学生管理系统。
java语言与面向对象程序设计形考2-0002

11.(3分)
下面哪一个是正确的类的声明?
A、public void HH{…}
B、public class Move(){…}
C、public class void number{}
D、public class Car{…}
12.(3分)
System类位于以下哪个包中?
D、Outer.Inner in = new Outer().new Inner();
3.(3分)
下列哪一种叙述是正确的?
A、abstract修饰符可修饰字段、方法和类
B、抽象类可以实例化
C、声明抽象方法,大括号可有可无
D、声明抽象方法不可写出大括号
4.(3分)
以下声明合法的是?
A、default String s;
java语言与面向对象程序设计形考2-0002
试卷总分:100
单选题(共15题,共45分)
开始说明:
结束说明:
1.(3分)
有如下代码段: 1) 2) { if(unsafe()){//do something…} 3) else if(safe()){//do the other…} 4) } 其中,方法unsafe() 将抛出IOException, 请问可将以下哪项填入第1行?
下面哪些可以使用static关键字修饰?
A、成员变量
B、局部变量
C、成员方法
D、成员内部类
判断题(共15题,共45分)
开始说明:
结束说明:
21.(3分)
构造函数用于创建类的实例对象,构造函数名应与类名相同,在类中必须定义构造函数,且只能定义一个构造函数。
A、public IOException methodName()
java面向对象程序设计 习题答案

java面向对象程序设计习题答案《Java面向对象程序设计习题答案》在Java编程语言中,面向对象程序设计是一种重要的编程范式,它通过将现实世界中的事物抽象成对象和类的形式,来实现程序的设计和开发。
为了帮助大家更好地理解和掌握面向对象程序设计的知识,下面我们将通过一些习题来讲解相关的答案。
1. 什么是面向对象程序设计?面向对象程序设计是一种以对象为基础的程序设计方法,它将程序中的数据和操作封装在对象中,通过对象之间的交互来实现程序的功能。
面向对象程序设计具有封装、继承和多态等特性,能够提高程序的可维护性和扩展性。
2. 什么是类和对象?类是一种用来描述对象的模板,它定义了对象的属性和行为。
而对象则是类的实例,它具体描述了类的属性和行为。
在Java中,通过关键字“class”来定义类,通过关键字“new”来创建对象。
3. 什么是封装?封装是面向对象程序设计的一个重要特性,它指的是将数据和操作封装在对象内部,对外部隐藏对象的内部实现细节。
通过封装,可以保护对象的数据不被外部直接访问和修改。
4. 什么是继承?继承是面向对象程序设计的另一个重要特性,它指的是一个类可以派生出子类,子类可以继承父类的属性和行为。
通过继承,可以实现代码的重用和扩展。
5. 什么是多态?多态是面向对象程序设计的另一个重要特性,它指的是同一个操作对不同对象有不同的行为。
通过多态,可以实现接口的统一和灵活的程序设计。
通过以上习题的答案,我们可以更好地理解和掌握面向对象程序设计的知识。
希望大家在学习Java编程语言的过程中,能够加强对面向对象程序设计的理解和应用,提高自己的编程能力。
java面向对象程序设计课后习题答案

java面向对象程序设计课后习题答案Java面向对象程序设计课后习题答案在学习Java面向对象程序设计课程时,课后习题是巩固知识、提高能力的重要方式。
通过完成习题,我们可以加深对Java面向对象编程的理解,掌握相关知识和技能。
下面就让我们来看一些常见的Java面向对象程序设计课后习题答案。
1. 编写一个Java程序,实现一个简单的学生类,包括学生的姓名、年龄、性别等属性,以及学生的基本操作方法(比如说,设置姓名、获取年龄等)。
这个习题可以让我们练习如何定义类、属性和方法,以及如何使用类的实例。
```javapublic class Student {private String name;private int age;private String gender;public void setName(String name) { = name;}public String getName() {return name;}public void setAge(int age) {this.age = age;}public int getAge() {return age;}public void setGender(String gender) {this.gender = gender;}public String getGender() {return gender;}}```2. 编写一个Java程序,实现一个简单的图书类,包括图书的名称、作者、价格等属性,以及图书的基本操作方法(比如说,设置价格、获取作者等)。
这个习题可以让我们练习如何定义类、属性和方法,以及如何使用类的实例。
```javapublic class Book {private String title;private String author;private double price;public void setTitle(String title) {this.title = title;}public String getTitle() {return title;}public void setAuthor(String author) {this.author = author;}public String getAuthor() {return author;}public void setPrice(double price) {this.price = price;}public double getPrice() {return price;}}```通过完成这些习题,我们可以逐渐掌握Java面向对象程序设计的基本原理和技巧,为以后的学习和实践打下坚实的基础。
java《面向对象程序设计》作业

课后作业第一章Java语言基础知识1.程序设计语言发展的历程答案:机器语言、汇编语言、高级语言、面向对象的语言2.面向对象语言的基本特征答案:抽象和封装、继承性、多态性3.Java语言的特点答案:java语言是一种卓越的程序设计语言,它具有以下特点。
1.面向对象2.简单性3.可移植性4.稳定性和安全性5.高性能6.分布性4. 为什么Java语言是跨平台的?答案:因为Java程序的最终实现需要经过编译和解释两个步骤,Java语言的编译器生成可执行的字节码,这种代码是由Java虚拟机生成的,它与任何硬件平台无关。
当生成字节码后,再使用Java解释器来执行字节码,这也就意味着只要有安装Java解释器的机器Java程序都可以运行,所以它是跨平台的面向对象的程序设计语言。
5. Java2的SDK是什么?答:Java2的SDK指Software Development Kit 软件开发工具集6. Java开发工具中的javac.exe和java.exe的功能是什么?答案:Javac.exe是Java编译器,用来将java程序编译成字节码。
Java.exe是Java解释器,执行已经转换成Bytecode的java应用程序。
7. Java集成开发环境有哪些?答案:Java集成开发环境主要有:Eclipse、netBeans、Jcreator LE、BorlandJbuilder、Microsoft Visual J++、IBM : Visual Age for Java、Sun ONE Studio 8.Java程序编译执行的过程答案:Java语言源程序的变异过程主要进行两件工作:1.通过编译程序检查Java源程序中是否有语法错误,如果发现错误,便报告已发现的错误,修改后再编译,直到未发现错误时才生成字节码文件。
2.通过编译来引入Java类库中已编好的模块,为了方便编程,Java类库中有若干个包,每个包中有若干个模块,每个模块是一个具有某种功能的类,它们都是字节码形式的程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
201209学期JAVA语言与面向对象程序设计作业2
单项选择题
第1题以下标识符中哪项是不合法的()。
A、BigMeaninglessName
B、$int
C、1 st
D、$1
答案:C
第2题以下变量均已正确定义并赋值,下面复合java语言语法的赋值语句是()。
A、m=n>5;
B、m=k%c=h+y;
C、j=t+%100;
D、j=y>2=x+3;
答案:A
第3题已定义a为int类型的变量。
以下选项中,合法的赋值语句是()。
A、a+1==2;
B、a+=a*6;
C、a==8.8f;
D、int a=8;
答案:B
第4题现有一变量声明为boolean aa;下面赋值语句中正确的是()。
A、aa=false;
B、aa=False;
C、aa="true";
D、aa=0;
答案:A
第5题下述有关try, catch和finally的命题中哪一个是错误的? ()
A、try语句后面必须要跟有catch语句
B、try语句后面可以跟有catch语句或finally语句,或者两者都有
C、一个catch语句总需要与一个try语句相关联
D、一个finally语句不能独立存在,总要与try语句相关联
答案:A
第6题下面语句执行后,i的值是()。
for(int i=0,j=1;j<5;j+=3)i=i+j;
A、4
B、5
C、6
D、7
答案:B
第7题下面语句序列执行后,a的值是()。
int a=13; a%=a/5;
A、3
B、13
C、169
D、1
答案:D
第8题下面哪种方法可以获得一个applet的init()方法在网页中的宽度?
A、int width = this.getY();
B、int width = this.getSize().w;
C、int width = getSize();
D、int width = setSize().w;
答案:B
第9题下面类定义中哪一个给出了合法的抽象类的定义?()
A、abstract Animal {abstract void growl();}
B、class abstract Animal {abstract void growl();}
C、abstract class Animal {abstract void growl();}
D、abstract class Animal {abstract void growl() {System.out.println("growl");}} 答案:C
第10题下面类定义中哪一个定义了一个不允许有子类的类?()
A、class Key {}
B、abstract final class Key {}
C、class Key {final;}
D、final class Key {}
答案:D
多项选择题
第11题下面哪个事件监听器在Java中有事件适配器?
A、MouseListener
B、KeyListener
C、ActionListener
D、ItemListener
E、WindowListener
答案:A|B|E
第12题下面哪个语句是创建数组的正确语句?
A、float f[][] = new float[6][6];
B、float []f[] = new float[6][6];
C、float f[][] = new float[][6];
D、float [][]f = new float[6][6];
E、float [][]f = new float[6][];
答案:A|B|C|D
第13题对于构造函数,下列哪个叙述是正确的?
A、构造函数也允许重载
B、子类无条件地继承父类的无参构造函数
C、子类不允许调用父类的构造函数
D、在同一个类中定义的重载构造函数可以相互调用
答案:A|B|D
第14题下面哪几个函数是public?void?example(){...}的重载函数?
A、public void example( int m){...}
B、public int example(){...}
C、public void example2(){...}
D、public int example ( int m, float f){...}
答案:A|D
第15题已知如下的命令执行java MyTest a b c 请问哪个语句是正确的?
A、args[0] = "MyTest a b c"
B、args[0] = "MyTest"
C、args[0] = "a"
D、args[1]= 'b'
答案:C|D
第16题如下哪个方法可以从WindowEvent获取事件源?
A、getFrame()
B、getID()
C、getSource()
D、getWindow()
答案:C|D
判断题
第17题Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关。
答案:正确
第18题Vector类中的对象不能是简单数据类型。
答案:正确
第19题Java是不区分大小写的语言。
答案:错误
第20题Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。
答案:正确。