当前位置:文档之家› 实验三 继承、多态和图形用户界面

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

实验三字符串与文本
(上课被教师验收的同学不用提交实验结果,并注意在教师处签名。

未完成的同学请提交实验结果,即将程序直接粘贴至本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));
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(" 2 + 7 = "), 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);
}
}。

相关主题