实验八 内部类,匿名类

实验内容:

(一)内部类、匿名类(必做)
1、三大体育媒体互联网平台,由于资源独占,有些类别的运动只能在某个平台上进行独播;
2、足球赛事只能在平台A上进行独播,篮球赛事只能在平台B上进行独播,排球赛事只能在平台C上进行独播,其他赛事可以在几个平台上进行直播;
3、要求:
(1)三个体育直播平台EA、EB、EC设计为三个类
(2)设计一个体育赛事的类 SportsGame
(3)设计足球赛事,篮球赛事,排球赛事为体育赛事的三个子类,并分别作为三个平台的内部类
(4)其他羽毛球、乒乓球等赛事设计为普通的类,继承自体育赛事
(5)可以根据不同赛事的特点,为其设计内部的成员变量和成员函数
(6)利用匿名类新增其他的体育赛事
(7)在main函数中进行测试
(8)增加比赛规则接口 IRule,令所有的体育赛事实现该接口,重新制定各自的比赛规则
(二)图形化界面设计
1、实现如下图所示的布局
2、产生N个随机整数,并可以对随机数进行升序和降序操作(选做)

内容一代码:

// lsy
package java_experiments;public class eight_one {public static void main(String[] args) {EA ea = new EA();EA.Football football = ea.new Football(22, "李铁");football.game();// 匿名类new SportsGame(8) {@Overridepublic void rule() {System.out.println("比赛规则为用时最短者胜出!\n");}public void game() {System.out.println(getSportsman() + "人参加短跑运动");rule();}}.game();}}abstract class SportsGame implements IRule {int sportsman;public SportsGame() {}public SportsGame(int sportsman) {this.sportsman = sportsman;}public int getSportsman() {return sportsman;}public abstract void game();
}class EA {EA() {System.out.println("欢迎观看A平台直播...");}class Football extends SportsGame {String coach;Football(int sportsman, String coach) {super(sportsman);this.coach = coach;}public void game() {System.out.println(getSportsman() + "人参加足球赛事");rule();strategy();}public void setCoach(String coach) {this.coach = coach;}public void strategy() {System.out.println("教练" + coach + "正在商量策略\n");}@Overridepublic void rule() {System.out.println("比赛规则为进球多的队伍获胜!");}}class EB {EB() {System.out.println("欢迎观看B平台直播...");}class Basketball extends SportsGame {Basketball(int sportsman) {super(sportsman);}public void game() {System.out.println(getSportsman() + "人参加篮球赛事");rule();}@Overridepublic void rule() {System.out.println("比赛规则为得分高的选手胜出!\n");}}}class EC {EC() {System.out.println("欢迎观看C平台直播...");}class Baseball extends SportsGame {Baseball(int sportsman) {super(sportsman);}public void game() {System.out.println(getSportsman() + "人参加排球赛事");rule();}@Overridepublic void rule() {System.out.println("比赛规则为得分高的队伍胜出!\n");}}}
}class Badminton extends SportsGame {Badminton(int sportsman) {super(sportsman);}public void game() {System.out.println(getSportsman() + "人参加羽毛球赛事");rule();}@Overridepublic void rule() {System.out.println("比赛规则为得分高的选手胜出!\n");}
}class Pingpong extends SportsGame {Pingpong(int sportsman) {super(sportsman);}public void game() {System.out.println(getSportsman() + "人参加乒乓球赛事");rule();}@Overridepublic void rule() {System.out.println("比赛规则为分数高的选手胜出!\n");}
}interface IRule {void rule();
}

实验结果

内容二代码:

// lsy
package java_experiments;import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Random;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;public class eight_two extends JFrame {public eight_two() {ArrayList<JTextField> jtfs = new ArrayList<>();// 用于保存文本框Container c = this.getContentPane();JPanel jp = new JPanel();int row = 9;// 行数int col = 2;// 列数int[] array = new int[8];jp.setLayout(new GridLayout(row, col, 5, 5));JLabel jtf1 = new JLabel("排序前数值序列");JLabel jtf2 = new JLabel("排序后数值序列");jp.add(jtf1);jp.add(jtf2);for (int i = 0; i < 16; i++) {JTextField jtf = new JTextField("");jtf.setEditable(false);// 不允许编辑表格jtfs.add(jtf);jp.add(jtf);}c.add(jp);JPanel jp1 = new JPanel();final JButton jb = new JButton("随机生成");final JButton jbOut = new JButton("排序");Dimension preferredSize = new Dimension(150, 30); // 设置尺寸jb.setPreferredSize(preferredSize);jbOut.setPreferredSize(preferredSize);jp1.add(jb);jp1.add(jbOut);c.add(jp1, BorderLayout.SOUTH);jb.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {Random random = new Random();// 创建随机数对象for (int i = 0; i < array.length; i++) {// 初始化数组元素array[i] = random.nextInt(50);// 生成50以内的随机数}int i = 0;// 将i重置为0for (int a = 0; a < jtfs.size(); a++) {if (a % 2 == 0) {jtfs.get(a).setText(array[i] + "");i++;}}}});jbOut.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int temp;// 根据角标进行比较,for (int i = 0; i < array.length; i++) {// j是数组的最后一个角标for (int j = array.length - 1; j > i; j--) {if (array[j] < array[j - 1]) {// 从后往前进行比较,小数往前,一轮之后最小数就在最前面了temp = array[j - 1];array[j - 1] = array[j];array[j] = temp;}}}int i = 0;// 将i重置为0for (int a = 0; a < jtfs.size(); a++) {if (a % 2 != 0) {jtfs.get(a).setText(array[i] + "");i++;}}}});this.setBounds(160, 250, 330, 350);this.setTitle("主窗体");this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true);}public static void main(String[] args) {new eight_two();}
}

实验结果

java实验八 内部类,匿名类相关推荐

  1. JAVA---事件适配器----用内部类,匿名类实现事件处理

    JAVA---事件适配器----用内部类,匿名类实现事件处理 1.事件适配器--EventAdapter 下例中采用了鼠标适配器: import java.awt.*; import java.awt ...

  2. java实验四云南大学_云南大学软件学院JAVA实验八

    云南大学软件学院 实验报告 姓名:王增伟学号:20111120083 班级:软件工程日期:2014.11.11成绩: JAVA实验八 一.实验目的: 熟悉图形化界面编程,学会用程序画简单的图形.书写文 ...

  3. Java高级语法笔记-匿名类(Anonymous Class)

    匿名类(Anonymous Class) 匿名内部类,简称匿名类:是内部类的一种化简写法. 基本写法如下: BaseType obj=new BaseType(){ //类的定义 } Java项目中匿 ...

  4. Java实验实现一个circle类,java实验报告-类的定义.doc

    java实验报告-类的定义 南京理工大学泰州科技学院 实验报告书 课程名称: <JAVA面向对象程序设计> 实验题目: 实验三 类的定义 班 级: 09计算机(2) 学 号: 090903 ...

  5. Effective Java~42. Lambda 优于匿名类

    在 Java 8 中,添加了函数式接口, lambda 表达式和方法引用,以便更容易地创建函数对象.下面是一段代码片段,按照字符串长度顺序对列表进行排序,使用匿名类创建排序的比较方法 (强制排序顺序) ...

  6. Java实验实现一个circle类_Java实验报告四

    Java实验报告四 一.题目 1.根据下面的要求实现圆类Circle. 1).圆类Circle的成员变量:radius表示圆的半径. 2).圆类Circle的方法成员: Circle():构造方法,将 ...

  7. Java学习笔记:匿名类

    匿名类就是一个子类,由于无名可用,所以不能用匿名类声明对象,却可以直接使用匿名类创建对象. Output.java package NotNameClass; abstract class Outpu ...

  8. Java内部抽象类的匿名类初始化

    说在前面的话,以前写过一次这个变态代码,后来重构,把那个new的语法简化了,最近又要整,差点都想不起来了,留个文档把 1.下面这个案例更变态,抽象类还有一个个泛型类:首先内部抽象类的定义: /* * ...

  9. Java 8:将匿名类转换为Lambda表达式

    将匿名类(实现一种方法)重构为lambda表达式,可使您的代码更简洁明了. 例如,这是Runnable及其lambda等效项的匿名类: // using an anonymous class Runn ...

最新文章

  1. 大数据之Linux常用命令
  2. 使用CreateFile函数打开COM10及以上串行口
  3. Oracle查询慢的原因总结
  4. 关于msbuild 编译.net 4.5新语法错误的解决方法
  5. c 语言 json序列化,C#中json字符串的序列化和反序列化 – 万能的聪哥 – 博客园...
  6. 35岁的程序员如果不转行,从事哪些细分行业比较好?
  7. 倒计时 5 天!年度开发者盛会 Unite Shanghai 2019 全日程揭晓(附表)
  8. 计算机图形学(七)——画一个可以由鼠标键盘控制的立方体
  9. freemarker的recurse示例代码
  10. go语言的字符串长度
  11. 复杂句变简单句 java_【SAT写作】简单句如何变为复杂句?10招教你快速转变
  12. 汇编语言(第四版)(个人复习点)
  13. 如何注册企业邮箱,联系人邮箱是什么?
  14. THUSC2018 (北京4日游)
  15. 啃碎并发(一):Java线程总述与概念
  16. 聚类方法:DBSCAN算法研究(1)--DBSCAN原理、流程、参数设置、优缺点以及算法
  17. 打破ViT的实际应用限制!沈春华老师团队提出无需解码器的目标检测器DFFT
  18. 经典例题:十六进制转换十进制详解 适合初学者
  19. Kafka详解(五)Kafka副本机制
  20. [若有所悟]一年又一年

热门文章

  1. Web前端攻击方式及防御措施
  2. 如何禁用Windows Media Player指南
  3. raid0 raid1 raid5 raid6 raid10的优缺点
  4. 学习就是这么被逼出来的
  5. 关于阿里妈妈淘宝客定向协议的问题
  6. 智能淘宝客系统架构图
  7. 线上升级Redis纪实
  8. 教你自动化测试执行用例报告
  9. 儿童上网时间管控软件_GreenSurfOnline V0.1 使用说明 (以Windows后台服务形式存在,安装需要有一定电脑操作基础)...
  10. 漫话:为什么生僻字计算机上打不出来,或者打出来也无法显示呢?