JAVA例题8

合集下载

JAVA编程实例大全及详解答案(50例)

JAVA编程实例大全及详解答案(50例)

JA V A编程实例大全及详解答案(50例)【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?//这是一个菲波拉契数列问题public class lianxi01 {public static void main(String[] args) {System.out.println("第1个月的兔子对数: 1");System.out.println("第2个月的兔子对数: 1");int f1 = 1, f2 = 1, f, M=24;for(int i=3; i<=M; i++) {f = f2;f2 = f1 + f2;f1 = f;System.out.println("第" + i +"个月的兔子对数: "+f2);}}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

public class lianxi02 {public static void main(String[] args) {int count = 0;for(int i=101; i<200; i+=2) {boolean b = false;for(int j=2; j<=Math.sqrt(i); j++){if(i % j == 0) { b = false; break; }else { b = true; }}if(b == true) {count ++;System.out.println(i );}}System.out.println( "素数个数是: " + count);}}【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

java考试试题及答案

java考试试题及答案

java考试试题及答案一、选择题1.以下关于Java的说法,哪个是正确的?A. Java是一种编程语言B. Java只能在Windows系统上运行C. Java只用于游戏开发D. Java不能用于Web开发答案:A2.下面哪个关键字用于定义一个类?A. classB. publicC. staticD. void答案:A3.Java中的基本数据类型有哪些?A. int, float, char, booleanB. Integer, Float, Character, BooleanC. String, Double, BooleanD. int, double, String, boolean答案:A4.以下哪个不是Java的访问修饰符?A. publicB. protectedC. privateD. final答案:D5.以下哪种循环结构在未知条件的情况下会被循环执行?A. for循环B. while循环C. do-while循环D. switch语句答案:C二、填空题1.Java中用于接收用户输入的类是__Scanner__。

2.Java中String类的equals()方法用于比较两个字符串的__内容__。

3.在Java中,用于创建对象的关键字是__new__。

4.Java中的集合类是位于__java.util__包下的。

5.Java中的逻辑与运算符是__&&__,逻辑或运算符是__||__。

三、简答题1.请简要介绍Java的特点及优势。

Java是一种跨平台的编程语言,具有以下特点和优势:- 简单易学:Java语法相对简单,与C++相比更容易上手。

- 面向对象:Java支持面向对象编程,具有封装、继承和多态的特性。

- 平台无关性:Java通过虚拟机实现跨平台,只需编写一次代码即可在不同操作系统上运行。

- 安全性:Java有严格的访问控制和内存管理机制,可防止非法访问和内存泄漏。

JAVA习题题目及答案

JAVA习题题目及答案

第1章问答题及作业题第1章问答题1、发明Java语言的原因是什么?发明Java语言的主要贡献者是谁?2、“Java编译器将源文件编译生成的字节码是机器码”,这句话正确吗?3、Java程序的主类必须含有怎样的方法?4、“Java应用程序必须含有一个类是public类”,这句话正确吗?5、“Java Applet程序的主类必须是public类”,这句话正确吗?6、请叙述Java源文件的命名规则。

7、源文件生成的字节码在运行时都加载到内存中吗?8、怎样编写加载运行Java Applet的简单网页?9、编译器使用“-source”参数的作用是什么?“-source”参数的默认取值是什么?第1章作业题1.参照例1-1编写一个Java应用程序,程序能在命令行中输出“早上好,Good Morning”。

2.参照例1-2编写一个Java Applet程序,程序能在浏览器中显示“你好,Hello”。

第2章问答题及作业题第2章问答题1、什么是标识符?标识符的规则是什么?2、什么是关键字?请说出5个关键字。

3、Java的基本数据类型是什么?4、下列哪些语句是错误的?int x=120;byte b=120;b=x;5、下列哪些语句是错误的?float x=12.0;float y=12;double d=12;y=d;6、下列两条语句的作用是等价的吗?char x=97;char x=’a’;7、下列语句输出的结果是什么?int a=97;byte b1=(byte)128;byte b2=(byte)-129;System.out.printf(“%c,%d,%d”,a,b1,b2);8、数组是基本数据类型吗?怎样获取一维数组的长度?9、假设有两个int类型数组:int[] a=new int[10];int[] b=new int[8];b=a;a[0]=100;b[0]的值一定是100吗?10、下列两条语句的作用等价吗?int[] a={1,2,3,4,5,6,7,8};int[] a=new int[8];}第2章作业题1.参照例2-1编写一个Java应用程序,输出俄文字母表。

java8集合非空的写法

java8集合非空的写法

java8集合非空的写法题目:Java 8集合非空的写法目录:1. 引言2. 初始集合3. 第一种方法:使用if条件判断3.1. 传统的if条件判断3.2. 使用Java 8的Optional类4. 第二种方法:使用Stream流4.1. 使用stream().anyMatch()4.2. 使用stream().findFirst().isPresent()4.3. 使用stream().collect(Collectors.toList()).isEmpty()5. 总结1. 引言在Java 8中,集合非常常见且广泛使用。

然而,有时候我们需要判断一个集合是否为空,以便在代码中做出相应的处理。

本文将介绍两种常见的方式,以帮助你在Java 8中判断集合是否为空。

2. 初始集合我们首先需要创建一个初始的集合,以便进行判断。

在这里,我们创建一个名为"list"的ArrayList作为示例:javaList<String> list = new ArrayList<>();3. 第一种方法:使用if条件判断这是一种常见的方法,只需要使用if语句来判断集合是否为空。

3.1. 传统的if条件判断javaif (list != null && !list.isEmpty()) {集合非空,进行相关操作} else {集合为空,进行相关操作}这是一种传统的方式,先判断集合是否为null,然后再判断集合是否为空。

3.2. 使用Java 8的Optional类Java 8引入了Optional类,它可以帮助我们更好地处理空值。

使用Optional类,我们可以将上述if条件判断简化为以下代码:javaOptional<List<String>> optionalList = Optional.ofNullable(list); if (optionalList.isPresent() && !optionalList.get().isEmpty()) { 集合非空,进行相关操作} else {集合为空,进行相关操作}Optional类提供了ofNullable()方法,可以将一个可能为空的引用包装为Optional对象。

习题答案8-Java面向对象程序设计(第3版)-赵生慧-清华大学出版社

习题答案8-Java面向对象程序设计(第3版)-赵生慧-清华大学出版社

第八章【练习8.1】1.A2.A3.B4. 组件是GUI程序的基本组成元素,任何一个GUI就是由若干组件对象构成的。

Swing是在AWT基础之上构建的一套新的Java图形界面库,其不再依赖操作系统的本地代码而是自己负责绘制组件的外观,因此也被称为轻量级(Light-weight)组件,这是它与AWT组件的最大区别。

Swing中几乎所有的类都直接或间接继承自AWT中的类,另一方面,Swing的事件模型也是完全基于AWT的,因此,AWT和Swing并非两套彼此独立的Java图形库。

5. 容器组件指那些能够“容纳”组件的特殊组件,如窗口、面板、对话框等。

容器可以嵌套,即容器中又包含容器。

Swing提供的常用容器组件有窗口、面板、可滚动面板、分割面板、分页面板等。

6.①顶层容器:指GUI程序中位于“最上层”的容器,其不能被包含到别的容器中,如窗口、对话框等。

②非顶层容器:位于顶层容器之下的容器,如面板、内部窗口等。

7. JLabel(标签)用于显示文字或图片,不能接受用户的输入。

JTextField (文本框) 可以接受用户输入或编辑单行文本。

JTextArea(文本区) 接受用户输入或编辑多行文本。

JPasswordField(密码输入框) 是JTextField 的子类,两者的主要区别是JPasswordField 不会显示出用户输入的内容,而只会显示出程序指定的一个固定字符,比如'*'。

8. 将多个单选按钮加入到同一个ButtonGroup群组对象中构成一组,保证该组按钮任一时刻只能有一个单选按钮被选中。

【练习8.2】1.C2.D3.D4.D5.//BasicSwingComponent.java1 import java.awt.FlowLayout;2 import java.awt.event.ItemEvent;3 import java.awt.event.ItemListener;45 import javax.swing.JButton;6 import javax.swing.JCheckBox;7 import javax.swing.JComboBox;8 import javax.swing.JFrame;9 import javax.swing.JLabel;10 import javax.swing.JList;11 import javax.swing.JPanel;12 import javax.swing.JPasswordField;13 import javax.swing.JRadioButton;14 import javax.swing.JScrollPane;15 import javax.swing.JTextArea;16 import javax.swing.JTextField;1718 public class BasicSwingComponent {1920 public static void main(String[] args) {21 JFrame win = new JFrame("JFrame");22 win.setSize(300, 300);23 win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);24 win.setLayout(new FlowLayout());2526 JPanel jp1 = new JPanel();27 JPanel jp4 = new JPanel();28 JLabel label1 = new JLabel("用户名:");29 jp1.add(label1);30 JTextField textField = new JTextField(10);31 jp1.add(textField);32 jp4.add(new JLabel("口令:"));33 JPasswordField pfd = new JPasswordField(10);34 pfd.setEchoChar('*');35 jp4.add(pfd);3637 JPanel panel2 = new JPanel();38 JLabel label12 = new JLabel("性别:");39 panel2.add(label12);40 JRadioButton radio = new JRadioButton("男");41 radio.setSelected(true);42 panel2.add(radio);43 JRadioButton radio2 = new JRadioButton("女");44 panel2.add(radio2);4546 JPanel panel3 = new JPanel();47 JLabel label3 = new JLabel("爱好:");48 panel3.add(label3);49 JCheckBox check = new JCheckBox("运行");50 panel3.add(check);51 JCheckBox check2 = new JCheckBox("音乐");52 check2.setSelected(true);53 panel3.add(check2);54 JCheckBox check3 = new JCheckBox("网络");55 panel3.add(check3);5657 JPanel panel4 = new JPanel();58 JLabel label4 = new JLabel("JComboBox:");59 panel4.add(label4);60 String[] majors = { "软件工程", "计算机", "物联网", "大数据" };61 JComboBox cbxMajor = new JComboBox(majors);62 cbxMajor.addItemListener(new ItemListener() {6364 @Override65 public void itemStateChanged(ItemEvent e) {66 String selection=(String)e.getItem();//获取选择项67 if(e.getStateChange()==ItemEvent.SELECTED )68 System.out.println(selection);6970 }});71 panel4.add(cbxMajor);7273 JPanel panel5 = new JPanel();74 panel5.add(new JLabel("JList:"));75 JList lst = new JList(majors);76 panel5.add(lst);7778 JTextArea ta = new JTextArea();79 ta.setText("此处为简介 \n第二行\n第三行\n第四行");80 ta.setRows(3);81 ta.setColumns(10);82 JScrollPane scp = new JScrollPane(ta);8384 JPanel panel6 = new JPanel();85 JButton button = new JButton("提交");86 panel6.add(button);8788 win.add(jp1);89 win.add(jp4);90 win.add(panel2);91 win.add(panel3);92 win.add(scp);93 win.add(panel6);9495 win.setVisible(true);96 }97 }【练习8.3】1. D2. A3.①事件源(Event Source):事件的产生者或来源。

java编程训练题目

java编程训练题目

java编程训练题目用途:本文旨在提供一些Java编程训练题目,帮助读者熟悉和掌握Java编程语言,并提高其编程能力。

一、题目一: 计算圆的面积请编写一个Java程序,计算输入半径后输出相应圆的面积。

```javaimport java.util.Scanner;public class CircleArea {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("请输入圆的半径:");double radius = sc.nextDouble();double area = Math.PI * radius * radius;System.out.printf("半径为%.2f的圆的面积为%.2f", radius, area);sc.close();}}```二、题目二: 求矩形的周长和面积请编写一个Java程序,给定矩形的长和宽,计算并输出其周长和面积。

```javaimport java.util.Scanner;public class Rectangle {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("请输入矩形的长:");double length = sc.nextDouble();System.out.print("请输入矩形的宽:");double width = sc.nextDouble();double perimeter = 2 * (length + width);double area = length * width;System.out.printf("矩形的周长为%.2f,面积为%.2f", perimeter, area);sc.close();}}```三、题目三: 判断是否素数请编写一个Java程序,输入一个整数n,判断它是否为素数。

50道java经典练习题

50道java经典练习题

50道java经典练习题Java是一门广泛使用的编程语言,许多程序员在学习和实践中都会遇到各种各样的问题和挑战。

为了提高自己的编程技能,解决问题的能力和代码的质量,有一些经典的Java练习题非常值得一试。

在本文中,我们将介绍50道Java经典练习题,希望能够对你的学习和实践有所帮助。

1. 编写一个程序,输入两个整数,求它们的和。

2. 编写一个程序,用循环结构输出1到100之间的所有奇数。

3. 编写一个程序,使用递归计算n的阶乘。

4. 编写一个程序,找出一个整数数组中的最大值。

5. 编写一个程序,将一个字符串反转输出。

6. 编写一个程序,判断一个字符串是否是回文。

7. 编写一个程序,将一个整数转换为二进制表示的字符串。

8. 编写一个程序,实现冒泡排序算法对一个整数数组进行排序。

9. 编写一个程序,将两个有序数组合并为一个有序数组。

10. 编写一个程序,计算一个字符串中每个字符出现的次数。

11. 编写一个程序,判断一个整数是否是素数。

12. 编写一个程序,生成斐波那契数列前n个数字。

13. 编写一个程序,找出一个整数数组中的前k个最大值。

14. 编写一个程序,计算一个整数数组的平均值。

15. 编写一个程序,判断一个字符串是否是有效的括号序列。

16. 编写一个程序,将一个整数翻转输出。

17. 编写一个程序,计算两个整数的最大公约数。

18. 编写一个程序,找出一个字符串中最长的连续子串。

19. 编写一个程序,找出一个字符串中出现次数最多的字符。

20. 编写一个程序,将一个整数数组循环右移k位。

21. 编写一个程序,计算一个浮点数的平方根。

22. 编写一个程序,将一个字符串按单词逆序输出。

23. 编写一个程序,判断一个字符串是否是有效的回文字符串。

24. 编写一个程序,计算两个浮点数的最大公约数。

25. 编写一个程序,找出一个整数数组中的前k个最小值。

26. 编写一个程序,判断两个字符串是否互为变位词。

27. 编写一个程序,将一个整数数组按奇偶分成两个数组。

Java程序设计单元测试八与答案

Java程序设计单元测试八与答案

一、单选题1、容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变?( )A.CardLayoutB.GridLayoutC.Border LayoutD.FlowLayout正确答案:D2、如果希望所有的控件在界面上均匀排列,应使用下列那种布局管理器?()A.BoxLayoutB.GridLayoutC.BorderLayoutD.FlowLouLayout正确答案:B3、下列不属于Swing中组件的是( )。

A.JPanelB.JTableC.JMenuD.JFrame正确答案:C4、对于Swing基本控件单选框,若要使两个单选框对象之间具有相互排斥的关系,需要( )。

A.创建两个单选框对象时定义相同的对象名B.将两个单选框对象放在同一个面板上C.定义一个ButtonGroup对象group,将两个单选框对象加到group 中D.让两个单选框排成一行或一列正确答案:C5、在基于Swing的图形用户界面设计中,面板属于( )。

A.顶层容器B.中间级容器C.窗格D.原子组件正确答案:B6、以下对框架的描述不正确的是()。

A.框架是Swing的顶级容器组件B.框架是一个图形界面程序的主窗口C.框架一般包括标题栏、最小化最大化关闭按钮以及边框等D.一个图形界面程序只能有一个框架正确答案:D7、在Swing中,下列出的面板的作用中,错误的是()。

A.放置并排列组件B.显示背景图案C.接收事件D.显示面板的边框正确答案:C8、在Swing中,如何设置组件的边框?()A.通过根窗格的setBorder函数设置某各组件的边框B.通过内容窗格的setBorder函数设置某各组件的边框C.通过组件的setBorder函数设置D.通过框架的setBorder函数设置某各组件的边框正确答案:C9、以下关于框架和其他窗口之间的关系中,错误的是()。

A.对话框必须依附于某个框架B.当框架最小化时,所有依附于它的窗口也会最小化C.框架是一个程序的主窗口,每个具有图形界面的程序都至少要有一个框架D.内部框架也是顶级容器组件正确答案:D10、JWindow是宣示屏上独立的本机窗口,它独立于其它容器,JWindow的两种形式是()。

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

例8-1 使用接口实现多态本例定义立体物体接口Solid,规定具备计算自己的表面积和体积的方法。

Cube立方体类实现了Solid,具体描述了立方体表面积和体积的计算过程;Sphere球体类实现了Solid,具体描述了球体表面积和体积的计算过程。

这两个类可用来创建对象并使用。

interface Solid{double getArea();double getVolume();}class Cube implements Solid{private double width,height,depth;Cube(double w,double h,double d){width = w;height = h;depth = d;}public double getArea(){return (width*height+width*depth+height*depth)*2;}public double getVolume(){return width*height*depth;}}class Sphere implements Solid{private double radius;Sphere(double r){radius = r;}public double getArea(){return 4*Math.PI*radius*radius;}public double getVolume(){return 4.0/3*Math.PI*radius*radius*radius;}}public class InterfaceDemo{public static void main(String[] args) {Cube c = new Cube(3,4,5);System.out.println("立方体的表面积是"+c.getArea());System.out.println("立方体的体积是"+c.getVolume());Sphere s = new Sphere(1);System.out.println("球的表面积是"+s.getArea());System.out.println("球的体积是"+s.getVolume());}}例8-2 抽象类及抽象方法的使用定义抽象父类Shape用来描述形状,其中的getArea()方法为抽象方法。

圆形类Circle和矩形类Rectangle继承了Shape类,并各自覆盖了getArea()方法实现了相应功能。

这两个子类是可以用来创建对象进行应用的类。

abstract class Shape { //抽象类Shapeprotected String color; //颜色Shape (){ } //无参构造方法,无执行语句Shape( String col ){ //有参构造方法color = col ;}abstract public double getArea(); //抽象方法getArea()public String toString(){ //得到描述信息字符串return "颜色是" + color;}}class Circle extends Shape { //Shape的子类圆类double radius; //半径public Circle( String c ,double r ){ //构造方法super( c ); //调用父类有参构造方法radius = r;}public double getArea(){ //实现父类的抽象方法,求圆面积return Math.PI * radius * radius ;}public String toString(){ //覆盖父类的同名方法return "圆的面积是: " + getArea() + super.toString();}}class Rectangle extends Shape { //Shape的子类矩形类protected double wid,len; //长,宽public Rectangle( String c,double w,double l ){ //构造方法super(c);wid = w;len = l;}public double getArea(){ //实现父类的抽象方法,求长方形面积 return wid * len ;}public String toString(){ //覆盖父类的同名方法return "长方形的面积是: " + getArea()+ super.toString(); }}class TestShape{public static void main(String[] args){Rectangle rect = new Rectangle(“蓝色” ,10.0 , 20.0);Circle cir = new Circle(“绿色” , 10.0);System.out.println(rect.toString());System.out.println(cir.toString());}}例8-3 薪酬接口的定义interface ISalary{double rate = 0.15; //税率int taxBase = 2000; //个税起征值double getSalary();DecimalFormat df = new DecimalFormat("0.00");}例8-4 薪酬接口实现举例使用前面的ISalary接口,根据不同岗位的薪酬结构,实现薪酬计算功能。

程序员薪酬结构是:基础薪酬3500元,每工作1年工资涨15%;销售薪酬结构是:基本工资1500元,加上业绩奖金。

import java.text.DecimalFormat;interface ISalary{ //薪酬接口double rate = 0.15; //税率int taxBase = 2000; //个税起征值DecimalFormat df = new DecimalFormat("0.00"); //用来保留两位小数double getSalary(); //计算工资的抽象方法}class Programmer implements ISalary{ //程序员类,实现薪酬接口private double pay = 3500; //基本薪酬private int year; //工作年限Programmer(int y){ //构造方法year = y;}public double getSalary(){ //实现接口中计算工资的方法double money = pay*Math.pow(1.15,year);return money - (money- taxBase)*rate;}void printInfo(){ //显示信息System.out.println("程序员:工作"+year+"年,目前月薪"+df.format(getSalary())+"元");}}class Seller implements ISalary{ //销售人员类,实现薪酬接口private double pay = 1500; //基本工资private double reward; //业绩奖金Seller(double r){ //构造方法reward = r;}public double getSalary(){ //实现接口中计算工资的方法double money = pay+reward;return money - (money- taxBase)*rate;}void printInfo(){ ////显示信息System.out.println("销售人员:业绩奖金"+reward+"元,目前月薪"+df.format(getSalary())+"元");}}public class SalaryDemo1 {public static void main(String[] args) {Programmer p1 = new Programmer(5);p1.printInfo();Seller s1 = new Seller(5000);s1.printInfo();}}例8-5补充例8-4,实现类的继承与接口的使用同时进行定义Employee类,能够描述员工工作岗位、姓名、年龄,包含相关的构造方法和输出信息方法。

让程序员类和销售人员类继承Employee类,同时实现ISalary接口。

import java.text.DecimalFormat;class Employee{ //员工类private String name; //姓名private int age; //年龄private String position; //职位Employee(String n, int a,String p){ //构造方法name = n;age = a;position = p;}void printInfo(){ //显示信息System.out.println(name+"今年"+age+"岁"+"职位是"+position);}}interface ISalary{ //薪酬接口double rate = 0.15; //税率int taxBase = 2000; //个税起征值DecimalFormat df = new DecimalFormat("0.00");double getSalary();}//程序员类继承自员工类,并实现了薪酬接口class Programmer extends Employee implements ISalary{private double pay = 3500; //基本薪酬private int year; //工作年限Programmer(String n,int a,String p,int y){super(n,a,p);year = y;}public double getSalary(){double money = pay*Math.pow(1.15,year);return money - (money-taxBase)*rate;}void printInfo(){super.printInfo();System.out.println("工作了"+year+"年,目前月薪"+df.format(getSalary())+"元");}}//销售人员类继承自员工类,并实现了薪酬接口class Seller extends Employee implements ISalary{private double pay = 1500; //基本工资private double reward; //业绩奖金Seller(String n,int a,String p,double r){super(n,a,p);reward = r;}public double getSalary(){double money = pay+reward;return money - (money-taxBase)*rate;}void printInfo(){super.printInfo();System.out.println("业绩奖金"+reward+"元,目前月薪"+df.format(getSalary())+"元");}}public class SalaryDemo2 {public static void main(String[] args) {Programmer p1 = new Programmer("张三",26,"程序员",5);p1.printInfo();Seller s1 = new Seller("李四",30,"销售人员",5000);s1.printInfo();}}例8-6 抽象类做方法参数体现多态abstract class Person{ //抽象类Personprivate String name; //姓名private int age; //年龄private boolean married; //婚姻状况Person(String n, int a, boolean m){ //构造方法name = n;age = a;married = m;}abstract void work(); //抽象方法工作void printInfo(){ //显示信息的方法if(married)System.out.println("我叫"+name+",今年"+age+",已婚!");elseSystem.out.println("我叫"+name+",今年"+age+",未婚~");}}class Programmer extends Person{ //实现了抽象类Person的子类程序员类Programmer(String n, int a, boolean m){ //构造方法super(n,a,m);}void work(){ //实现父类的work抽象方法System.out.println("我是程序员,今天遍了5000行代码!");}}class Teacher extends Person{ //实现了抽象类Person的子类教师类Teacher(String n, int a, boolean m){ //构造方法super(n,a,m);}void work(){ //实现父类的work抽象方法System.out.println("我是教师,今天上了10节课!");}}class Architect extends Person{ //实现了抽象类Person的子类建筑师类Architect(String n, int a, boolean m){ //构造方法super(n,a,m);}void work(){ //实现父类的work抽象方法System.out.println("我是建筑师,今天把图纸改了30次!");}}public class PersonDemo {public static void main(String[] args) {Programmer p1 = new Programmer("张三",25,false);showPerson(p1);Teacher p2 = new Teacher("李四",35,true);showPerson(p2);Architect p3 = new Architect("王五",30,true);showPerson(p3);}static void showPerson(Person p){ //显示人员信息的方法p.printInfo();p.work();}}例8-7 接口做方法参数体现多态interface USB{ //定义USB接口void connect(); //抽象方法用来描述连接void transfer(); //抽象方法用来描述传输}class Keyboard implements USB{ //实现USB接口的键盘类Keyboard public void connect(){ //实现接口里用来描述连接的方法System.out.println("键盘通过USB接口连接电脑。

相关文档
最新文档