郑州大学现代远程教育JAVA程序设计课程考核要求.docx
《郑州大学现代远程教育JAVA程序设计课程考核要求.docx》由会员分享,可在线阅读,更多相关《郑州大学现代远程教育JAVA程序设计课程考核要求.docx(18页珍藏版)》请在冰点文库上搜索。
郑州大学现代远程教育JAVA程序设计课程考核要求
郑州大学现代远程教育《JAVA程序设计》
课程考核要求
说明:
本课程考核形式为提交作业,完成后请保存为WORD2003格式的文档,登陆学习平台提交,并检查和确认提交成功(能够下载,并且内容无误即为提交成功)。
一.作业要求
1.请独立自主完成作业。
二.作业内容
1.简答题
1)描述面向对象的三个重要特性(封装性、继承性、多态性)。
答:
1.封装性:
封装是面向对象的特征之一,是对象和类概念的主要特性。
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
封装保证了模块具有较好的独立性,使得程序维护修改较为容易。
对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。
2.继承性:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
继承性很好的解决了软件的可重用性问题。
3.多态性:
多态性是指允许不同类的对象对同一消息作出响应。
多态性包括参数化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
2)描述java的流的分类以及相应的基类。
答:
1.根据数据流动的方向,可分为输入流和输出流。
输入流:
只能从中读取数据,而不能向其写出数据
输出流:
只能向其写出数据,而不能从中读取数据
2.根据处理数据的单位划分,可分为字符流和字节流
字节流:
以字节为单位进行数据传输,每次传送一个或多个字节
字符流:
以Unicode字符为单位进行数据传输,每次传送一个或多个字符
3.根据数据流所关联的是数据源还是其他数据流,可分为节点流和处理流。
节点流:
直接从指定的位置(如磁盘文件或内存区域)读或写;处理流:
对一个巳存在的流的连接和封装,通过对所封装的流的功能调用实现数据的读/写功能,处理流并不直接连接到数据流。
java中所有的I/O流都基于四个基类:
输入流:
InputStream,Reader
输出流:
OutputStream,Writer
InputStream和OutputStream是面向字节的,Reader和Writer是面向Unicode字符的。
从字节流到字符流的转换:
例如:
InputStreamistream =new("C:
/temp.txt");
InputStreamReaderisr=newInputStreamReader(istream);
同理,从字符流到字节流的转换:
从字符流中获取char[]数组,转换为String,然后调用String的API函数getBytes()获取到byte[]。
3)举例说明监听器方式的事件处理机制。
答:
Java事件处理机制-事件监听器的四种实现方式:
自身类作为事件监听器
外部类作为事件监听器
匿名内部类作为事件监听器
内部类作为事件监听器
自身类作为事件监听器:
Java代码复制代码收藏代码
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
/**
*Java事件处理机制:
自身类作为事件监听器
*@authorWinty()
*@version2008-12-3
*/
classThisClassEventextendsJFrameimplementsActionListener{
JButtonbtn;
publicThisClassEvent(){
super("Java事件监听机制");
setLayout(newFlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn=newJButton("点击");
btn.addActionListener(this);
getContentPane().add(btn);
setBounds(200,200,300,160);
setVisible(true);
}
/**************************************/
publicvoidactionPerformed(ActionEvente){
Containerc=getContentPane();
c.setBackground(Color.red);
}
/**************************************/
publicstaticvoidmain(Stringargs[]){
newThisClassEvent();
}
}
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
/**
*Java事件处理机制:
自身类作为事件监听器
*@authorWinty()
*@version2008-12-3
*/
classThisClassEventextendsJFrameimplementsActionListener{
JButtonbtn;
publicThisClassEvent(){
super("Java事件监听机制");
setLayout(newFlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn=newJButton("点击");
btn.addActionListener(this);
getContentPane().add(btn);
setBounds(200,200,300,160);
setVisible(true);
}
/**************************************/
publicvoidactionPerformed(ActionEvente){
Containerc=getContentPane();
c.setBackground(Color.red);
}
/**************************************/
publicstaticvoidmain(Stringargs[]){
newThisClassEvent();
}
}
外部类作为事件监听器:
Java代码复制代码收藏代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
/**
*Java事件处理机制:
外部类作为事件监听器
*@authorWinty()
*@version2008-12-3
*/
classOuterClassEventextendsJFrame{
JButtonbtn;
publicOuterClassEvent(){
super("Java事件监听机制");
setLayout(newFlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn=newJButton("点击");
btn.addActionListener(newOuterClass(this));
getContentPane().add(btn);
setBounds(200,200,300,160);
setVisible(true);
}
publicstaticvoidmain(Stringargs[]){
newOuterClassEvent();
}
}
/*外部类*********************************/
classOuterClassimplementsActionListener{
OuterClassEventoce;
publicOuterClass(OuterClassEventoce){
this.oce=oce;
}
publicvoidactionPerformed(ActionEvente){
Containerc=oce.getContentPane();
c.setBackground(Color.red);
}
}
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
/**
*Java事件处理机制:
外部类作为事件监听器
*@authorWinty()
*@version2008-12-3
*/
classOuterClassEventextendsJFrame{
JButtonbtn;
publicOuterClassEvent(){
super("Java事件监听机制");
setLayout(newFlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn=newJButton("点击");
btn.addActionListener(newOuterClass(this));
getContentPane().add(btn);
setBounds(200,200,300,160);
setVisible(true);
}
publicstaticvoidmain(Stringargs[]){
newOuterClassEvent();
}
}
/*外部类*********************************/
classOuterClassimplementsActionListener{
OuterClassEventoce;
publicOuterClass(OuterClassEventoce){
this.oce=oce;
}
publicvoidactionPerformed(ActionEvente){
Containerc=oce.getContentPane();
c.setBackground(Color.red);
}
}
匿名内部类作为事件监听器:
Java代码复制代码收藏代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
/**
*Java事件处理机制:
匿名内部类作为事件监听器
*@authorWinty()
*@version2008-12-3
*/
classAnonymousEventextendsJFrame{
JButtonbtn;
publicAnonymousEvent(){
super("Java事件监听机制");
setLayout(newFlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn=newJButton("点击");
/*匿名内部类******************************/
btn.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEvente){
Containerc=getContentPane();
c.setBackground(Color.red);
}
}
);
/***************************************/
getContentPane().add(btn);
setBounds(200,200,300,160);
setVisible(true);
}
publicstaticvoidmain(Stringargs[]){
newAnonymousEvent();
}
}
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
/**
*Java事件处理机制:
匿名内部类作为事件监听器
*@authorWinty()
*@version2008-12-3
*/
classAnonymousEventextendsJFrame{
JButtonbtn;
publicAnonymousEvent(){
super("Java事件监听机制");
setLayout(newFlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn=newJButton("点击");
/*匿名内部类******************************/
btn.addActionListener(
newActionListener(){
publicvoidactionPerformed(ActionEvente){
Containerc=getContentPane();
c.setBackground(Color.red);
}
}
);
/***************************************/
getContentPane().add(btn);
setBounds(200,200,300,160);
setVisible(true);
}
publicstaticvoidmain(Stringargs[]){
newAnonymousEvent();
}
}
内部类作为事件监听器:
Java代码复制代码收藏代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
/**
*Java事件处理机制:
内部类作为事件监听器
*@authorWinty()
*@version2008-12-3
*/
classInnerClassEventextendsJFrame{
JButtonbtn;
publicInnerClassEvent(){
super("Java事件监听机制");
setLayout(newFlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn=newJButton("点击");
btn.addActionListener(newInnerClass());
getContentPane().add(btn);
setBounds(200,200,300,160);
setVisible(true);
}
/*内部类*********************************/
classInnerClassimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
Containerc=getContentPane();
c.setBackground(Color.red);
}
}
/**************************************/
publicstaticvoidmain(Stringargs[]){
newInnerClassEvent();
}
}
2.读程序题
1)程序Person,要求注释带标号1,2,3,4等的句子,并给出程序的运行结果。
classPerson{//1.定义Person类
intage;
publicPerson(){}//2.空的构造方法
publicPerson(intage){
this.age=age//3.实例化对象,当创建出来一个对象,那么这个对象age属性就等于形参age
}
voidshout(){//4.Shout是类的才成员方法
System.out.println(“oh,mygod!
Iam“+age);
}
}
答:
由于this.age=age后面没有分号,所以此程序运行的结果是:
编译出错
2)读下面程序,并分析出程序运行结果。
publicclassString1{
publicstaticvoidmain(String[]args){
charaChar='t';//声明一个char类型变量,变量名为aChar,并对其赋值't'
if(Character.isUpperCase(aChar)){//判断aChar是否为大写字母
System.out.println("Thecharacter"+aChar+"isuppercase.");//如果是大写字母,输出此字符串
}else{
System.out.println("Thecharacter"+aChar+"islowercase.");//如果不是大写字母,输出此字符串
}
}
}
答:
运行结果:
因为t是个小写字母,所以输出结果为:
Thecharacterislowercase.
3)读下面程序,写出程序的主要功能。
importjava.io.*;
publicclassStandardIO{
publicstaticvoidmain(String[]args){
Strings;
BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));
System.out.println("Pleaseinput:
");
try{
s=in.readLine();
while(!
s.equals("exit")){
System.out.println("read:
"+s);
s=in.readLine();
}
System.out.println("EndofInputing.");
in.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
答:
用BufferedReader将数据嵌套在输入流中,然后从用户标端(标准输入端)进行读入,读完后,将读入的内容逐步读出,再进行判断,并显示在屏幕上。
3.程序设计题目(要求适当加上程序注释。
)
1)用while预计复制字符串copyFromMe到字符串copyToMe中。
答:
publicclassString3{
publicstaticvoidmain(String[]args){
StringcopyFromMe=“Copythisstringuntilyouencounter
StringBuffercopyToMe=newStringBuffer();
inti=0;
charc=copyFromMe.charAt(i);
while(c!
=‘g’){
copyToMe.append(c);
c=copyFromMe.charAt(++i);
}
System.out.println(copyToMe)
}
}
2)编写程序片段,定义表示课程的类Course。
课程的属性包括课名、编号、先修课号;方法包括设置课程名、设置编号以及获取课程名、获取编号。
创建Course类的对象,设置并打印输出该对象的课程名、编号。
(要求:
写3个重载的构造方法)。
答:
publicclasscourse{
publicStringClassname;//课程名
publicintnum;//编号
publicStringFirstClass;//先修课程名
publicintFnum;//先修课程编号
publicStringgetClassname(){
returnClassname;
}
publicvoidsetClassname(Stringclassname){
Classname=classname;
}
publicintgetNum(){
returnnum;
}
publicvoidsetNum(intnum){
this.num=num;
}
publicStringgetFirstClass(){
returnFirstClass;
}
publicvoidsetFirstClass(StringfirstClass){
FirstClass=firstClass;
}
publicintgetFnum(){
returnFnum;
}
publicvoidsetFnum(intfnum){
Fnum=fnum;
}
}
publicclassCource{
protectedStringcNumber;
protectedStringcName;
protectedintcUnit;
publicCource(StringcNumber,StringcName,intcUnit)
{this.cName=cName;
this.cNumber=cN