1、郑州大学现代远程教育JAVA程序设计课程考核要求说明:本课程考核形式为提交作业,完成后请保存为WORD 2003格式的文档,登陆学习平台提交,并检查和确认提交成功(能够下载,并且内容无误即为提交成功)。一 作业要求1.请独立自主完成作业。二 作业内容1. 简答题1) 描述面向对象的三个重要特性(封装性、继承性、多态性)。答:1.封装性:封装是面向对象的特征之一,是对象和类概念的主要特性。封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。封装保证了模块具有较好的独立性,使得程序维护修改较为容易。对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。2.继承性
2、:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。继承性很好的解决了软件的可重用性问题。3. 多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。2) 描述java的流的分类以及相应的基类。答:1.根据
3、数据流动的方向,可分为输入流和输出流。输入流:只能从中读取数据,而不能向其写出数据输出流:只能向其写出数据,而不能从中读取数据2.根据处理数据的单位划分,可分为字符流和字节流字节流:以字节为单位进行数据传输,每次传送一个或多个字节字符流:以Unicode字符为单位进行数据传输,每次传送一个或多个字符3.根据数据流所关联的是数据源还是其他数据流,可分为节点流和处理流。节点流:直接从指定的位置(如磁盘文件或内存区域)读或写;处理流:对一个巳存在的流的连接和封装,通过对所封装的流的功能调用实现数据的读/写功能,处理流并不直接连接到数据流。java 中所有的I/O流都基于四个基类: 输入流:Input
4、Stream ,Reader 输出流: OutputStream,WriterInputStream 和 OutputStream是面向字节的,Reader和Writer是面向Unicode字符的。从字节流到字符流的转换:例如:InputStream istream = new FileInputStream(C:/temp.txt); InputStreamReader isr = new InputStreamReader(istream);同理,从字符流到字节流的转换: 从字符流中获取char数组,转换为String,然后调用String的API函数getBytes() 获取到byte。
5、3) 举例说明监听器方式的事件处理机制。答:Java事件处理机制- 事件监听器的四种实现方式 :自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: Java代码 复制代码 收藏代码import javax.swing.*; import java.awt.*; import java.awt.event.*; /* *Java事件处理机制:自身类作为事件监听器 *author) *version 2008-12-3 */ class ThisClassEvent extends JFrame implements ActionLi
6、stener JButton btn; public ThisClassEvent() super(Java事件监听机制); setLayout(new FlowLayout(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton(点击); btn.addActionListener(this); getContentPane().add(btn); setBounds(200,200,300,160); setVisible(true); /*/ public void actionPerformed (Actio
7、nEvent e) Container c=getContentPane(); c.setBackground(Color.red); /*/ public static void main(String args) new ThisClassEvent(); import javax.swing.*;import java.awt.*;import java.awt.event.*;/* *Java事件处理机制:自身类作为事件监听器 *author) *version 2008-12-3 */class ThisClassEvent extends JFrame implements Act
8、ionListener JButton btn; public ThisClassEvent() super(Java事件监听机制); setLayout(new FlowLayout(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton(点击); btn.addActionListener(this); getContentPane().add(btn); setBounds(200,200,300,160); setVisible(true); /*/ public void actionPerformed (
9、ActionEvent e) Container c=getContentPane(); c.setBackground(Color.red); /*/ public static void main(String args) new ThisClassEvent(); 外部类作为事件监听器: Java代码 复制代码 收藏代码import java.awt.*; import java.awt.event.*; import javax.swing.*; /* *Java事件处理机制:外部类作为事件监听器 *author) *version 2008-12-3 */ class OuterCl
10、assEvent extends JFrame JButton btn; public OuterClassEvent() super(Java事件监听机制); setLayout(new FlowLayout(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton(点击); btn.addActionListener(new OuterClass(this); getContentPane().add(btn); setBounds(200,200,300,160); setVisible(true); publi
11、c static void main(String args) new OuterClassEvent(); /*外部类*/ class OuterClass implements ActionListener OuterClassEvent oce; public OuterClass(OuterClassEvent oce) this.oce = oce; public void actionPerformed(ActionEvent e) Container c=oce.getContentPane(); c.setBackground(Color.red); import java.a
12、wt.*;import java.awt.event.*;import javax.swing.*;/* *Java事件处理机制:外部类作为事件监听器 *author) *version 2008-12-3 */class OuterClassEvent extends JFrame JButton btn; public OuterClassEvent() super(Java事件监听机制); setLayout(new FlowLayout(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton(点击); btn
13、.addActionListener(new OuterClass(this); getContentPane().add(btn); setBounds(200,200,300,160); setVisible(true); public static void main(String args) new OuterClassEvent(); /*外部类*/class OuterClass implements ActionListener OuterClassEvent oce; public OuterClass(OuterClassEvent oce) this.oce = oce;
14、public void actionPerformed(ActionEvent e) Container c=oce.getContentPane(); c.setBackground(Color.red); 匿名内部类作为事件监听器: Java代码 复制代码 收藏代码import java.awt.*; import java.awt.event.*; import javax.swing.*; /* *Java事件处理机制:匿名内部类作为事件监听器 *author) *version 2008-12-3 */ class AnonymousEvent extends JFrame JBut
15、ton btn; public AnonymousEvent() super(Java事件监听机制); setLayout(new FlowLayout(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton(点击); /*匿名内部类*/ btn.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) Container c=getContentPane(); c.setBackground(Color.re
16、d); ); /*/ getContentPane().add(btn); setBounds(200,200,300,160); setVisible(true); public static void main(String args) new AnonymousEvent(); import java.awt.*;import java.awt.event.*;import javax.swing.*;/* *Java事件处理机制:匿名内部类作为事件监听器 *author) *version 2008-12-3 */class AnonymousEvent extends JFrame
17、JButton btn; public AnonymousEvent() super(Java事件监听机制); setLayout(new FlowLayout(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton(点击); /*匿名内部类*/ btn.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) Container c=getContentPane(); c.setBackground(Colo
18、r.red); ); /*/ getContentPane().add(btn); setBounds(200,200,300,160); setVisible(true); public static void main(String args) new AnonymousEvent(); 内部类作为事件监听器: Java代码 复制代码 收藏代码import java.awt.*; import java.awt.event.*; import javax.swing.*; /* *Java事件处理机制:内部类作为事件监听器 *author) *version 2008-12-3 */ cl
19、ass InnerClassEvent extends JFrame JButton btn; public InnerClassEvent() super(Java事件监听机制); setLayout(new FlowLayout(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton(点击); btn.addActionListener(new InnerClass(); getContentPane().add(btn); setBounds(200,200,300,160); setVisible(true)
20、; /*内部类*/ class InnerClass implements ActionListener public void actionPerformed (ActionEvent e) Container c=getContentPane(); c.setBackground(Color.red); /*/ public static void main(String args) new InnerClassEvent(); 2. 读程序题1) 程序Person,要求注释带标号1,2,3,4等的句子 ,并给出程序的运行结果。class Person/1. 定义Person 类int a
21、ge; public Person() /2. 空的构造方法 public Person(int age) this.age = age /3. 实例化对象,当创建出来一个对象,那么这个对象age属性就等于形参age void shout() /4. Shout是类的才成员方法System.out.println(“oh,my god! I am “ + age); 答:由于this.age = age后面没有分号,所以此程序运行的结果是: 编译出错2) 读下面程序,并分析出程序运行结果。public class String1 public static void main(String a
22、rgs) char aChar = t; / 声明一个char类型变量,变量名为aChar,并对其赋值t if (Character.isUpperCase(aChar) /判断aChar是否为大写字母 System.out.println (The character + aChar+ is upper case.);/ 如果是大写字母,输出此字符串 else System.out.println (The character + aChar+ is lower case.); / 如果不是大写字母,输出此字符串 答:运行结果:因为t是个小写字母,所以输出结果为:The characteri
23、s lower case.3) 读下面程序,写出程序的主要功能。import java.io.*;public class StandardIO public static void main(String args)String s;BufferedReader in = new BufferedReader(new InputStreamReader(System.in);System.out.println(Please input : );try s = in.readLine(); while(!s.equals(exit) System.out.println( read: +s)
24、; s = in.readLine();System.out.println(End of Inputing.);in.close();catch(IOException e)e.printStackTrace(); 答: 用BufferedReader将数据嵌套在输入流中,然后从用户标端(标准输入端)进行读入,读完后,将读入的内容逐步读出,再进行判断,并显示在屏幕上。3.程序设计题目(要求适当加上程序注释。)1) 用while预计复制字符串copyFromMe到字符串copyToMe中。答:public class String3 public static void main(String
25、 args) String copyFromMe = “Copy this string until you encounter StringBuffer copyToMe = new StringBuffer(); int i = 0; char c = copyFromMe.charAt(i); while (c != g) copyToMe.append(c); c = copyFromMe.charAt(+i);System.out.println(copyToMe)2) 编写程序片段,定义表示课程的类Course。课程的属性包括课名、编号、先修课号;方法包括设置课程名、设置编号以及获
26、取课程名、获取编号。创建Course类的对象,设置并打印输出该对象的课程名、编号。(要求:写3个重载的构造方法)。答:public class course public String Classname;/ 课程名public int num;/ 编号public String FirstClass;/ 先修课程名public int Fnum;/ 先修课程编号public String getClassname() return Classname;public void setClassname(String classname) Classname = classname;public
27、 int getNum() return num;public void setNum(int num) this.num = num;public String getFirstClass() return FirstClass;public void setFirstClass(String firstClass) FirstClass = firstClass;public int getFnum() return Fnum;public void setFnum(int fnum) Fnum = fnum;public class Cource protected String cNu
28、mber;protected String cName;protected int cUnit;public Cource(String cNumber,String cName,int cUnit) this.cName=cName;this.cNumber=cNumber;this.cUnit=cUnit; public void setNumber(String number)cNumber=number; public void setName(String name)cName=name; public void setUnit(int unit) cUnit=unit; publi
29、c String getNumber()return cNumber; public String getName()return cName;public int getUnit()return cUnit;public void printCourceInfo()System.out.println(学科编号:+cNumber);System.out.println(学科名称:+cName);System.out.println(学科学分:+cUnit);package javaapplication4;public class Main public static void main(S
30、tring args)Cource java=new Cource(070401,java程序设计,4);java.printCourceInfo(); 3) 编写Applet,在坐标(25,25)处显示一个字符串“我是一个Applet程序”。答:import java.awt.*; import java.applet.*;public class HelloEducationApplet extends Applet/给这个类取名为HelloEducationpublic void paint(Graphics g)/paint( )方法是类Applet的一个成员方法 g.drawString(“我是一个Applet程序”,25,25);/在坐标为(25,25)的位置显示字符串“我是一个Applet程序”