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

更新时间:2023-12-01 03:24:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验三 字符串与文本

(上课被教师验收的同学不用提交实验结果,并注意在教师处签名。未完成的同学请提交实验结果,即将程序直接粘贴至本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() { }

public Object pop() {

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

}

return o;

public void push(Object 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++) { }

System.out.println(\逆序输出为 : \); while(mystack.peek() != null) }

System.out.print(mystack.pop() + \); o[i] = input.next(); mystack.push(o[i]);

this.add(o);

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 = \;

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(\ + 0));

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

}

}

p1.add(new JButton(\)); p1.add(new JButton(\)); p1.add(new JButton(\)); p1.add(new JButton(\)); p1.add(new JButton(\));

JPanel p2 = new JPanel(new BorderLayout()); p2.add(p1, BorderLayout.CENTER);

add(p2, BorderLayout.EAST);

add(new JButton(\), BorderLayout.CENTER);

public static void main(String[] args) { }

Calculator calculator = new Calculator(); calculator.setTitle(\简易计算\); calculator.setSize(300,400);

calculator.setLocationRelativeTo(null);

calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); calculator.setVisible(true);

}

}

p1.add(new JButton(\)); p1.add(new JButton(\)); p1.add(new JButton(\)); p1.add(new JButton(\)); p1.add(new JButton(\));

JPanel p2 = new JPanel(new BorderLayout()); p2.add(p1, BorderLayout.CENTER);

add(p2, BorderLayout.EAST);

add(new JButton(\), BorderLayout.CENTER);

public static void main(String[] args) { }

Calculator calculator = new Calculator(); calculator.setTitle(\简易计算\); calculator.setSize(300,400);

calculator.setLocationRelativeTo(null);

calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); calculator.setVisible(true);

本文来源:https://www.bwwdw.com/article/iqft.html

Top