郑州大学现代远程教育JAVA程序设计课程考核要求
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
郑州大学现代远程教育《JAVA程序设计》
课程考核要求
说明:本课程考核形式为提交作业,完成后请保存为WORD 2003格式的文档,登陆学习平台提交,并检查和确认提交成功(能够下载,并且内容无误即为提交成功)。
一.作业要求
1.请独立自主完成作业。
二.作业内容
1.简答题
1)描述面向对象的三个重要特性(封装性、继承性、多态性)。
答:
1.封装性:封装是面向对象的特征之一,是对象和类概念的主要特性。
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
封装保证了模块具有较好的独立性,使得程序维护修改较为容易。
对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。
2.继承性:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
继承性很好的解决了软件的可重用性问题。
3. 多态性:多态性是指允许不同类的对象对同一消息作出响应。
多态性包括参数化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
2)描述java的流的分类以及相应的基类。
答:
1.根据数据流动的方向,可分为输入流和输出流。
输入流:只能从中读取数据,而不能向其写出数据
输出流:只能向其写出数据,而不能从中读取数据
2.根据处理数据的单位划分,可分为字符流和字节流
字节流:以字节为单位进行数据传输,每次传送一个或多个字节
字符流:以Unicode字符为单位进行数据传输,每次传送一个或多个字符3.根据数据流所关联的是数据源还是其他数据流,可分为节点流和处理流。
节点流:直接从指定的位置(如磁盘文件或内存区域)读或写;处理流:对一个巳存在的流的连接和封装,通过对所封装的流的功能调用实现数据的读/写功能,处理流并不直接连接到数据流。
java 中所有的I/O流都基于四个基类:
输入流:InputStream ,Reader
输出流: OutputStream,Writer
InputStream 和OutputStream是面向字节的,Reader和Writer是面向
Unicode字符的。
从字节流到字符流的转换:
例如:InputStream istream = new ("C:/temp.txt");
InputStreamReader isr = new InputStreamReader(istream);
同理,从字符流到字节流的转换:
从字符流中获取char[]数组,转换为String,然后调用String的API函数getBytes() 获取到byte[]。
3)举例说明监听器方式的事件处理机制。
答:
Java事件处理机制- 事件监听器的四种实现方式:
自身类作为事件监听器
外部类作为事件监听器
匿名内部类作为事件监听器
内部类作为事件监听器
自身类作为事件监听器:
Java代码复制代码收藏代码
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
*Java事件处理机制:自身类作为事件监听器
*@author Winty()
*@version 2008-12-3
*/
class ThisClassEvent extends JFrame implements ActionListener{ 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 (ActionEvent 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 Winty()
*@version 2008-12-3
*/
class ThisClassEvent extends JFrame implements ActionListener{ 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 (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 Winty()
*@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.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;
}
public void actionPerformed(ActionEvent e){
Container c=oce.getContentPane();
c.setBackground(Color.red);
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*Java事件处理机制:外部类作为事件监听器
*@author Winty()
*@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.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;
}
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 Winty()
*@version 2008-12-3
*/
class AnonymousEvent extends JFrame{
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(Color.red);
}
}
);
/***************************************/
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 Winty()
*@version 2008-12-3
*/
class AnonymousEvent extends JFrame{
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(Color.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 Winty()
*@version 2008-12-3
*/
class 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);
}
/*内部类*********************************/
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)程序P erson,要求注释带标号1,2,3,4等的句子,并给出程
序的运行结果。
class Person{//1. 定义Person 类
int age;
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[] args) {
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 characteris 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);
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[] 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。
课程的属性包括课
名、编号、先修课号;方法包括设置课程名、设置编号以及获取课程名、获取编号。
创建Course类的对象,设置并打印输出该对象的课程名、编号。
(要求:写3个重载的构造方法)。
答:
p ublic 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 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 cNumber;
protected String cName;
protected int cUnit;
public Cource(String cNumber,String cName,int cUnit)
{ ame=cName;
umber=cNumber;
this.cUnit=cUnit; }
public void setNumber(String number)
{cNumber=number;<br _extended="true"> }
public void setName(String name)
{cName=name; }
public void setUnit(int unit)
{ cUnit=unit; }
public 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(String[] 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{
//给这个类取名为HelloEducation
public void paint(Graphics g){
//paint( )方法是类Applet的一个成员方法
g.drawString(“我是一个Applet程序”,25,25);
//在坐标为(25,25)的位置显示字符串“我是一个Applet程序”
}
}。