实验三 继承、多态和图形用户界面

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三字符串与文本

(上课被教师验收的同学不用提交实验结果,并注意在教师处签名。未完成的同学请提交实验结果,即将程序直接粘贴至本DOC文件,并在邮件名的标题中注明:学号+姓名+实验三)

1.给出下面程序的输出:

2.直接给出下面程序的运行结果:

“B’s constructor is invoked”

“A’s constructor is invoked”

2. 下面的说法对的注明“True”,错的注明“False”

(1)子类是父类的一个子集。(f)(2)当从子类调用一个构造函数时,它的父类的无参构造方法总是被调用。(f)(3)可以覆盖定义在父类中的私有方法。( f) (4)可以覆盖定义在父类中的静态方法。( f)

(5) 如果子类中的一个方法和它的父类中的方法具有完全相同的方法头,但返回值

类型不同,也可以构成覆盖。( f)

(6) 可以给面板添加一个框架。( f)

(7) 可以给框架添加一个面板。( t )

3. 指出下面程序中的问题:

有四处错误

给radius和length赋值要用this.

调用父类的构造方法Circle()和getArea()前需要加上关键字super

4.下面的程序是要在框架中显示一个按钮,但是什么也没有显示出来。这个程序有什么问

题?

Test()中没有创建实例对象

将new javax.swing.JFrame() 改成new Test()

5.填空:

(1)在类上使用default修饰符,才能使同一个包中的类可以访问它,而不同包中的类不能访问它。

(2)在类上使用protected 修饰符,才能使不同包中的类不能访问这个类,而任何包中的子类可以访问它。

6. 在程序清单11-9中,MyStack是用组合实现的,现请扩展ArrayList,利用继承来实现MyStack。编写一个测试程序,提示用户输入五个字符串,然后以逆序显示这些字符串。

package Test03;

public class MyStack extends java.util.ArrayList {

public Object peek() {

return this.get(size() - 1);

}

public Object pop() {

Object o = this.get(size() - 1);

this.remove(size() - 1);

return o;

}

public void push(Object o) {

this.add(o);

}

public static void main(String[] args) {

java.util.Scanner input = new java.util.Scanner(System.in);

System.out.println("请输入5个字符串: ");

String[] o = new String[5];

MyStack mystack = new MyStack();

for(int i = 0; i < 5; i++) {

o[i] = input.next();

mystack.push(o[i]);

}

System.out.println("逆序输出为: ");

while(mystack.peek() != null)

System.out.print(mystack.pop() + " ");

}

}

7.编写程序,创建一个ArrayList,然后向这个线性表中添加一个Object对象、一个Date

对象、一个字符串、一个JFrame对象,然后使用循环调用对象的toString( )方法,来显示线性表中所有的元素。

package Test03;

import javax.swing.JFrame;

import java.util.ArrayList;

import java.util.Date;

public class Test {

public static void main(String[] args) {

ArrayList mylist = new ArrayList();

Object object = new Object();

Date date = new Date();

String s = "mylist";

JFrame frame = new JFrame();

mylist.add(object);

mylist.add(s);

mylist.add(date);

mylist.add(frame);

for(int i = 0; i < mylist.size(); i++) { System.out.println(mylist.get(i));

}

}

}

8. 编写程序,显示如下计算器的界面。

package Test03;

import java.awt.*;

import javax.swing.*;

public class Calculator extends JFrame { public Calculator() {

JPanel p1 = new JPanel();

p1.setLayout(new GridLayout(5,3));

for(int i = 1; i <= 9; i++) {

p1.add(new JButton("" + i));

}

p1.add(new JButton("" + 0));

相关文档
最新文档