[升级版][Java作业]创建PC对象展示cpu速度和硬盘容量
//注意:本篇既包含了实现题目要求,但又运用了swing组件将显示内容做了升级,简单几个操作让你在同学间脱颖而出。但是基本逻辑代码还是一样的。
题目如图:
本题主要考察由UML图创建类及基本调用,让新学者掌握抽象类并代码实现。
包的整体结构如图:
先完成基本逻辑代码:(也就是先完成题目)
根据UML图,我们得先创建CPU类,并且该类有speed属性,还有setSpeed()、getSpeed()方法。
public class CPU {//可以先写属性,再用快捷键(ALT+Shift+Insert)里的get和set直接创建方法,后面的也一样private int speed;//给CPU类中的speed属性赋值public void setSpeed(int speed){//将形参赋值给成员变量(CPU类中的速度)this.speed = speed ;}//将CPU类中的speed属性返回给调用它的方法public int getSpeed(){return this.speed;}
}
再创建HardDisk类,该类下有amount属性,需实现的方法有 setAmount()、getAmount().
public class HardDisk {//容量属性private int amount;//设置硬盘的容量public void setAmount(int amount){//this 可指代当前类, .调用它的属性和方法this.amount = amount ;}//返回硬盘容量public int getAmount(){return this.amount;}
最后是我们的PC类,该类有 cpu 和 HD 属性,还有set、get、show 等方法。
public class PC {//CPU类型的属性(因为在一个包下,IDEA能自动识别,就不用自动导包)private CPU cpu;//HardDisk类型的属性private HardDisk HD;//设置cpu属性的值public void setCpu(CPU cpu){//给当前类中属性赋值this.cpu = cpu;}//设置HD属性的值public void setHardDisk(HardDisk hardDisk){this.HD = hardDisk;}//就是将两个 getcpu 和 getHD 结合起来并输出public void show(){//之前写cpu时speed属性是 private 私密类型,所以需要写 set,get 改变和获取他的值System.out.println("当前PC的cpu速度为"+this.cpu.getSpeed());System.out.println("当前PC的硬盘容量为"+this.HD.getAmount());}
}
最后根据题目要求在主类中创建对象,调用他们的方法。
public class Main {public static void main(String[] args) {PC pc = new PC();//创建一个CPU,并给他的属性赋值CPU cpu = new CPU();cpu.setSpeed(2200);//将赋值后的CPU当成参数传给pcpc.setCpu(cpu);//创建一个硬盘,并给他的属性赋值HardDisk HD = new HardDisk();HD.setAmount(200);//再将赋值好后的硬盘传给pc,当成pc的属性pc.setHardDisk(HD);//最后使用show()方法查看是否赋值成功pc.show();}
}
运行结果如下:
本题题目到这已经结束了,但老师是不会注意到你滴!这时候就需要一个亮眼的窗口了。
Swing组件大部分老师是不会教的,当然以后实际开发中也不会使用到,这里使用仅仅是 秀
将主程序中的实现代码先复制再全部干掉,我们要在窗口类中去实现了。
主程序代码:
public class Main {public static void main(String[] args) {new Dialog1();}
}
new的这个是我们自己创建的类,可以看作是窗口。所以接下来我们要去写 Dialog1 这个类。
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;public class Dialog1 extends JFrame {//构造函数构造一个窗口,因为我们在主函数new这个对象时会执行构造函数public Dialog1(){JFrame frm = new JFrame();//设置面板的显示位置和大小frm.setBounds(200,100,400,300);frm.setTitle("pc查看器");JButton jButton = new JButton("查看cpu");jButton.setBounds(50,150,120,60);//点击查看cpu按钮则显示查看cpu页面jButton.addActionListener(new AbstractAction() {@Overridepublic void actionPerformed(ActionEvent e) {new Dialog3();}});//创建查看硬盘按钮JButton jButton1 = new JButton("查看硬盘");jButton1.setBounds(250,150,120,60);//点击显示查看硬盘页面jButton1.addActionListener(new AbstractAction() {@Overridepublic void actionPerformed(ActionEvent e) {new Dialog2();}});//像容器添加两个按钮frm.add(jButton);frm.add(jButton1);//将面板设置为可见frm.setVisible(true);//设置布局方式frm.setLayout(new FlowLayout(FlowLayout.LEADING,60,60));//设置关闭按钮frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}
效果如下:
我们点击 查看cpu 按钮时,会执行 new Dialog3(); 所以我们显示 cpu速度 的逻辑代码要在 Dialog3的构造函数中写。
import javax.swing.*;
import java.awt.*;//查看cpu速度
public class Dialog3 {public Dialog3(){JFrame jFrame = new JFrame();jFrame.setBounds(50, 50, 600, 300);jFrame.setLayout(new GridLayout(4,3,10,10));/*实际代码块(之前写在main方法里的)*///实例化一个PCPC pc = new PC();//创建一个CPU,并给他的属性赋值CPU cpu = new CPU();cpu.setSpeed(2200);//将赋值后的CPU当成参数传给pcpc.setCpu(cpu);//创建一个硬盘,并给他的属性赋值HardDisk HD = new HardDisk();HD.setAmount(200);//再将赋值好后的硬盘传给pc,当成pc的属性pc.setHardDisk(HD);JLabel text = new JLabel("当前PC的CPU运行速度为"+pc.getCpu().getSpeed());text.setSize(80,80);text.setLocation(20,150);//设置字体text.setFont(new Font("微软雅黑", Font.BOLD, 40));jFrame.add(text);jFrame.setVisible(true);}
}
由于这里是分开展示的,所以得在pc类中补充getCpu()方法,直接使用快捷键即可
下面的原因也要一并补充getHD()方法。
接下来是Dialog2,和上面差不多
import javax.swing.*;
import java.awt.*;public class Dialog2 {public Dialog2(){JFrame jFrame = new JFrame();jFrame.setBounds(50, 50, 600, 300);jFrame.setLayout(new GridLayout(4,3,10,10));/*实际代码块*///实例化一个PCPC pc = new PC();//创建一个CPU,并给他的属性赋值CPU cpu = new CPU();cpu.setSpeed(2200);//将赋值后的CPU当成参数传给pcpc.setCpu(cpu);//创建一个硬盘,并给他的属性赋值HardDisk HD = new HardDisk();HD.setAmount(200);//再将赋值好后的硬盘传给pc,当成pc的属性pc.setHardDisk(HD);JLabel text = new JLabel("当前PC的硬盘容量为"+pc.getHD().getAmount());text.setSize(80,80);text.setLocation(20,150);//设置字体text.setFont(new Font("微软雅黑", Font.BOLD, 40));jFrame.add(text);jFrame.setVisible(true);}
}
运行结果:
完成!
[升级版][Java作业]创建PC对象展示cpu速度和硬盘容量相关推荐
- java动态创建代理对象
代理模式在开发过程中有着众多好处,现在我先给大家首先介绍什么是代理模式,以及java的中代理模式的使用,最后再看代理模式的概念作用等自然就会明白了 1.动态创建代理对象 >>>> ...
- Java快速创建大量对象_3分钟 快速理解JVM创建对象的步骤!
原标题:3分钟 快速理解JVM创建对象的步骤! 我们平时创建一个对象只需要new.然而我们知道对象的创建到底经历了哪些呢?实际上只不过仅仅的3步就完成了.先来看看完整的创建过程,再来一步一步的分析. ...
- java的创建管理员对象_java--更改管理员密码,请列位帮忙看看有没有更好的实现方式...
需求说明:输入旧的用户名和密码,如果正确,方有权限更新,从键盘获取新密码,进行更新 实现思路:1.创建管理员类的对象:2.利用while实现循环执行 import java.util.Scanner; ...
- java 获取cup序列号_Qt获取CPU编号和硬盘序列号
windows下执行命令除了用cmd之外,还有个东西叫WMIC,非常强大,可以通过他获取很多信息,包括硬件信息. QString frmMain::getWMIC(const QString & ...
- java 获取对象方法有哪些方法有哪些方法有哪些_Java中创建String 对象的方法有哪些...
Java中创建String 对象的方法有哪些 发布时间:2020-11-25 16:45:30 来源:亿速云 阅读:71 作者:Leah 这篇文章将为大家详细讲解有关Java中创建String 对象的 ...
- java创建的对象存储到什么地方?
java中创建的对象存储于堆中,但对于基本类型 java不是用new来创建变量的,而是创建一个并非引用的自动变量.这个变量直接存储"值",并存储于堆栈中. 程序运行时,对象是怎么进 ...
- 【JAVA程序设计】用类描述计算机中CPU的速度和硬盘的容量。
用类描述计算机中CPU的速度和硬盘的容量.要求Java应用程序有4个类,名字分别是PC,CPU和HardDisk和Test,其中Test是主类. PC类与CPU和HardDisk类关联的UML图( ...
- java获取windows系统信息(CPU,内存,文件系统,硬盘大小)
Java怎么获取windows系统信息,如CPU,内存,文件系统,硬盘大小? java实现这些功能的确有点麻烦,没有C语言方便.java在windows这方还是弱了一点.不过麻烦是麻烦点,针对这些功能 ...
- java 作业 老师与教员信息 类与对象
java 作业 老师与教员信息 类与对象 需求 逻辑图 学生类 public class Student {int age; // 年龄String className; // 班级名称String ...
最新文章
- .NET Remoting Basic(6)-配置文件
- web.xml中load-on-startup的作用
- 人声处理_10款免费的人声处理工具
- bpmn如何查看代码 idea_提高程序员效率的IDEA插件推荐(五大神器)
- vue取数据第一个数据_我作为数据科学家的第一个月
- html5 自动保存 提示,html5+ SQLite提示数据表不存在
- effective C++ 条款 11:在operator= 处理‘自我赋值’
- idea部署项目com.intellij.javaee.oss.admin.jmx.JmxAdminException-未使用最新版本的war包
- CentOs6.6安装Python3
- java实现文件上传下载功能_java文件上传下载功能实现代码
- Vue经典开源项目汇总
- 影视观影神器:ZY Player for Mac使用教程
- 1_数据分析应掌握的Python基础
- 计算机网络之应用层(DNS域名系统)
- vue3+ts+vite 路径别名配置
- C#语言实例源码系列-实现屏幕放大器和取色
- IE 浏览器中不能使remove删除节点的解决方法
- 「AI芯片公司」比特大陆的路线图上,除了四款TPU还有在这三个产业落地的野心
- Maven assembly打包文件被覆盖问题
- 哈工大软件构造课程知识点总结(二)