Java实验报告 - 副本
- 格式:doc
- 大小:521.50 KB
- 文档页数:39
实验一开发环境的搭建及使用一实验要求1、进行Java开发环境的配置;2、编写简单的Java Application程序,调试、编译并运行程序。
二实验内容1、安装JDK并配置环境变量,在下面写出如何判断环境变量是否配置成功;安装Eclipse 集成开发环境。
Jdk安装成功后,打开DOS,输入javac,若出现则环境变量设置成功!2、使用Eclipse编写Java Application其功能都是显示字符串“Hello World!”,源代码写在下面的空白处。
package helloworld;public class Hello {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("Hello world!");}}三实验内容中遇到的问题、解决方法和体会。
第一步:安装jdk,在安装jdk的时候我把jre安装到了jdk目录下了,导致jdk安装失败了,后来又重新安装了一下,把jre单独拉出来过后就好了。
第二步:在配置环境变量的时候,很容易忽略路径前面的,;,所以导致环境变量配置失败!第三步:编写代码,忘记了hello world 后面的!和类名Hello的首字母忘记大写了!还有就是这Eclipse是全英文的,真的搞伤的了,回去我要研究研究中文的破解包怎么安装进去!这次实验初步了解了java在运行程序时的基本步骤和容易出现的问题!后面需要多多实验,多搞些程序过来试试!(资料素材和资料部分来自网络,供参考。
可复制、编制,期待你的好评与关注)。
实验一熟悉Java开发环境(验证性2学时)一、实验目的与要求:1 掌握Java Application程序的开发过程并编写第一个Java Application程序*2 掌握Java Applet程序的开发过程并编写第一个Java Applet程序。
*3 练习简单的HTML文件配合Java Applet使用。
4 熟悉jdk的使用二、实验内容:1 编写一个Java Application程序,在屏幕上显示”This is my first java program!”.*2 编写第一个Java Applet 程序,在屏幕上显示”This is my first Java Applet!”三、实验步骤:1、jdk的使用jdk开发工具包可以从网站下载,jdk不是集成编译环境,须手动运用命令行程序进行编译和解释执行1)编辑.java文件可以在记事本或其他纯文本编辑器中编辑,保存时把文件扩展名定为.java即可,当然要注意文件名命名的要求2)编译生成.class文件进入dos系统进行编译(如图1.1所示),格式如javac MyFirstApplication.java,要注意图1.1进入命令行看javac.exe的路径并且MyFirstApplication.java文件路径和javac.exe路径一样。
编译成功后就能在浏览器中看见多了一个MyFirsApplication.class或更多的.class文件。
如图1.2所示图1.2使用jdk编译MyFirstApplication.java文件3)解释执行Application程序:同样是在dos系统下解释执行,格式如java MyFirstApplication,注意.class后缀别加,如图1.3所示。
图1.3解释执行MyFirstApplication.class程序* applet程序进入dos系统进行编译,格式如javac MyFirstApplet.java,要注意看javac.exe的路径并且MyFirstApplet.java文件路径和javac.exe路径一样。
java多线程实验报告一、实验目的本次实验旨在探究Java多线程编程的原理和技巧,以及如何应用多线程编写高效、稳定、可靠的多线程应用程序。
二、实验环境本次实验使用的环境为:硬件:Intel Core i5 2.5 GHz处理器,8GB内存,256GB SSD硬盘软件:Windows 10操作系统,JDK 1.8开发工具三、实验步骤1. 编写并运行多线程程序2. 对程序进行分析、调试和优化3. 测试程序的效率和稳定性4. 记录实验过程和实验结果5. 撰写实验报告四、实验过程1. 编写并运行多线程程序本次实验编写的多线程程序是一个简单的计时器,程序的主要功能是在控制台上输出1-100的数字,并在输出每一个数字之前暂停一段时间,以模拟实际应用中的处理等待。
具体代码如下:public class MyThread extends Thread {private int delay;private int count;public MyThread(int delay, int count) {this.delay = delay;this.count = count;}@Overridepublic void run() {for (int i = 1; i <= count; i++) {try {Thread.sleep(delay);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(i);}}}public class Main {public static void main(String[] args) {MyThread thread1 = new MyThread(100, 100); MyThread thread2 = new MyThread(50, 100); thread1.start();thread2.start();}}2. 对程序进行分析、调试和优化在程序分析、调试和优化的过程中,我遇到了以下几个问题和解决方法:问题1:程序多次运行时,会出现线程执行顺序不同的情况;解决方法:使用Thread.sleep和yield方法来控制线程执行顺序。
南京信息工程大学实验(实习)报告实验(实习)名称micaps基本功能练习实验(实习)日期得分指导老师马利系专业班级姓名学号实验目的:通过使用eclipse上机环境,熟悉面板构造,达到熟练编程的目的实验内容:一、主面板1.创建窗口import ;import ;import ;import ;public class MainFrame {public static void main(String[] args) {new MicapsFrame();}}class MicapsFrame extends JFrame{JDesktopPane desktopPane;public MicapsFrame(){//设置窗体属性,采用默认的绝对布局super();// 设定窗体出现在屏幕的正中// 获取屏幕的大Dimension scrnDim = Toolkit.getDefaultToolkit().getScreenSize();setBounds(200,100,(int)((1000.0/1280)*scrnDim.getWidth()),(int)((800.0/1024)*scrnDim.get Height())); //设置窗体大小和位置setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//设置窗体关闭方式setTitle("MICAPS3");//给窗体命名setVisible(true); //一定要设置窗体可见c=getContentPane();//窗体其实就是一个容器,获取该容器desktopPane=new JDesktopPane();//创建桌面面板desktopPane.setBounds(0,50,this.getSize().width,this.getSize().height-50);//设置桌面面板大小和位置c.setLayout(null);//设置布局属性为空,即默认的绝对布局方式}}2.添加菜单栏按钮JMenuBar menuBar;//给窗体添加菜单组件menuBar=new JMenuBar();//设置菜单栏的属性menuBar.setBounds(0,0,this.getSize().width,20);//将菜单栏添加到容器中c.add(menuBar);3.添加菜单栏按钮---实现一个实例JMenu menuFile=new JMenu("文件");//将菜单栏的选项添加到菜单栏中menuBar.add(menuFile);4.添加工具栏按钮JToolBar toolBar;//添加工具栏toolBar=new JToolBar();//设置工具栏不可移动toolBar.setFloatable(false);//将工具栏添加到容器中toolBar.setBounds(0,20,this.getSize().width,30);c.add(toolBar);5.添加工具栏按钮------实现一个实例JButton btn_1=new JButton(new ImageIcon("res/新建.png"));//给按钮添加提示信息btn_1.setToolTipText("新建交互层");//将按钮添加到工具栏中toolBar.add(btn_1);6.添加主面板控件JTabbedPane paneLeft;JPanel panel;panel=new JPanel();panel.setBounds(0,0,(int) ((200.0/1000)*this.getSize().width),this.getSize().height-50);panel.setLayout(null);//在桌面面板左边添加选项卡面板paneLeft=new JTabbedPane(JTabbedPane.LEFT);paneLeft.setBounds(0,0,(int)((200.0/1000)*this.getSize().width),this.getSize().height-50);panel.add(paneLeft);desktopPane.add(panel);c.add(desktopPane);7.添加左侧分裂面板JTabbedPane paneLeft;JPanel panel;JSplitPane splitLeft;panel=new JPanel();panel.setBounds(0,0,(int) ((200.0/1000)*this.getSize().width),this.getSize().height-50);panel.setLayout(null);//在桌面面板左边添加选项卡面板paneLeft=new JTabbedPane(JTabbedPane.LEFT);paneLeft.setBounds(0,0,(int)((200.0/1000)*this.getSize().width),this.getSize().height-50);panel.add(paneLeft);desktopPane.add(panel);c.add(desktopPane);//图层数据控制面板splitLeft=new JSplitPane(JSplitPane.VERTICAL_SPLIT);splitLeft.setDividerLocation(300);JTabbedPane leftJPanel=new JTabbedPane(JTabbedPane.TOP);JScrollPane scrollTuzu=new JScrollPane();JPanel scrollPane=new JPanel(new GridLayout(0,5));leftJPanel.addTab("图组",scrollTuzu);leftJPanel.addTab("工具箱",scrollPane);splitLeft.setTopComponent(leftJPanel);/*splitLeft.setBottomComponent(leftJTabbedPane); */paneLeft.addTab("",new ImageIcon("res/图层数据属性控制.png"),splitLeft);二、地面资料统计1、单选框ButtonGroup bg;bg = new ButtonGroup();JRadioButton radiobutton6=new JRadioButton("大于等于",true);radiobutton6.setBounds(250, 50, 110, 30);radiobutton6.setFont(font);Panel.add(radiobutton6);bg.add(radiobutton6);JComboBox comboBox1=new JComboBox(new MyComboBox1());comboBox1.setBounds(370, 50, 80, 30);Panel.add(comboBox1);JRadioButton radiobutton7=new JRadioButton("等于",false);radiobutton7.setBounds(250, 80, 80, 30);radiobutton7.setFont(font);Panel.add(radiobutton7);bg.add(radiobutton7);JRadioButton radiobutton8=new JRadioButton("小于等于",false);radiobutton8.setBounds(250, 110, 110, 30);radiobutton8.setFont(font);Panel.add(radiobutton8);bg.add(radiobutton8);2、下拉框JComboBox comboBox1=new JComboBox(new MyComboBox1());comboBox1.setBounds(370, 50, 80, 30);Panel.add(comboBox1);public class MyComboBox1 extends AbstractListModel implements ComboBoxModel{ String[] test={"全国","省份","城市"};String selecteditem=test[0];public Object getElementAt(int index){return test[index];}public int getSize(){return test.length;}public void setSelectedItem(Object item){selecteditem=(String)item;}public Object getSelectedItem(){return selecteditem;}public int getIndex(){for(int i=0;i<test.length;i++){if(test[i].equals(getSelectedItem()))return i;break;}return 0;}}三、三线图1、创建三线图面板setBounds(100,100,1000,700);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);setTitle("三线图");2、添加分裂面板private JSplitPane mySplitPane;private JPanel labelLeft;private JLabel lab_color_change;mySplitPane = new JSplitPane();labelLeft = new JPanel();labelLeft.setLayout(null);JTabbedPane myTabbedPane;myTabbedPane = new JTabbedPane();lab_color_change = new JLabel("颜色改变实例");lab_color_change.setBounds(50,37,200,50);labelLeft.add(lab_color_change);mySplitPane.setRightComponent(labelLeft);JPanel lab_tuxingcaozuo = new JPanel();//选项卡之一:图形操作JPanel lab_beijingshezhi = new JPanel();//选项卡二:背景设置myTabbedPane.addTab("图形操作", lab_tuxingcaozuo);lab_tuxingcaozuo.setLayout(null);myTabbedPane.addTab("背景设置", lab_beijingshezhi);mySplitPane.setLeftComponent(myTabbedPane);getContentPane().add(mySplitPane);mySplitPane.setDividerLocation((this.getSize().width)/5*1); 3、添加左侧面板基本内容JTextPane textPane = new JTextPane();textPane.setBounds(37, 10, 106, 84);lab_tuxingcaozuo.add(textPane);JButton btnNewButton_2 = new JButton("隐现");btnNewButton_2.setBounds(21, 117, 70, 23);lab_tuxingcaozuo.add(btnNewButton_2);JButton btnNewButton_3 = new JButton("标签");btnNewButton_3.setBounds(101, 117, 70, 23);lab_tuxingcaozuo.add(btnNewButton_3);JButton btn_color = new JButton("颜色");btn_color.setBounds(21, 160, 70, 23);lab_tuxingcaozuo.add(btn_color);JButton btnNewButton_5 = new JButton("宽度");btnNewButton_5.setBounds(101, 160, 70, 23);lab_tuxingcaozuo.add(btnNewButton_5);ButtonGroup myButtonGroup = new ButtonGroup();JRadioButton rdbtnNewRadioButton = new JRadioButton("时间轴向左",true);rdbtnNewRadioButton.setBounds(37, 214, 121, 23);myButtonGroup.add(rdbtnNewRadioButton);;lab_tuxingcaozuo.add(rdbtnNewRadioButton);JRadioButton rdbtnNewRadioButton_1 = new JRadioButton("时间轴向右",false);rdbtnNewRadioButton_1.setBounds(37, 256, 121, 23);myButtonGroup.add(rdbtnNewRadioButton_1);lab_tuxingcaozuo.add(rdbtnNewRadioButton_1);JLabel lblNewLabel = new JLabel("时间间隔");lblNewLabel.setBounds(31, 313, 60, 15);lab_tuxingcaozuo.add(lblNewLabel);textField = new JTextField();textField.setBounds(94, 310, 33, 21);lab_tuxingcaozuo.add(textField);textField.setColumns(10);JLabel lblNewLabel_1 = new JLabel("小时"); lblNewLabel_1.setBounds(138, 313, 43, 15);lab_tuxingcaozuo.add(lblNewLabel_1);JCheckBox chckbxNewCheckBox = new JCheckBox("只填风"); chckbxNewCheckBox.setBounds(37, 354, 103, 23);lab_tuxingcaozuo.add(chckbxNewCheckBox);JLabel lblNewLabel_2 = new JLabel("开始时间"); lblNewLabel_2.setBounds(37, 399, 106, 15);lab_tuxingcaozuo.add(lblNewLabel_2);textField_1 = new JTextField();textField_1.setBounds(37, 424, 106, 23);lab_tuxingcaozuo.add(textField_1);textField_1.setColumns(10);JLabel lblNewLabel_3 = new JLabel("结束时间"); lblNewLabel_3.setBounds(37, 464, 106, 15);lab_tuxingcaozuo.add(lblNewLabel_3);textField_2 = new JTextField();textField_2.setColumns(10);textField_2.setBounds(37, 489, 106, 23);lab_tuxingcaozuo.add(textField_2);JButton btnNewButton = new JButton("存图"); btnNewButton.setBounds(21, 580, 70, 23);lab_tuxingcaozuo.add(btnNewButton);JButton btnNewButton_1 = new JButton("退出");btnNewButton_1.setBounds(101, 580, 70, 23);lab_tuxingcaozuo.add(btnNewButton_1);4、设置面板起始位置在屏幕正中间。
第三次Java实验报告实训1》:1.实训目的:(1).了解Java中数组的定义。
(2).掌握不同类型数组的声明方法及其应用。
(3).掌握一维和二维数组的创建及其使用方法。
2.实训内容:编写一个Java程序,用随机生成一维字符数组,然后先按正序再按反序输出它们。
3.实训步骤:1》.在包“su”中创建可视类“sujian”.2》.添加组件:Lable和Button更改其属性和Text。
3》.添加事件响应代码:对“确定”选择Events- widgetSelected并将代码改为:char[] s=new char[15];for(int i=0;i<s.length;i++){int k=(int)(Math.random()*26+97);s[i]=(char)k;}String str="随机字符";String str1="反向输出";for(int i=0;i<s.length;i++){str=str+Character.toString(s[i]);str1=str1+Character.toString(s[s.length-i-1]);}label.setText(str);label1.setText(str1);运行结果为:实训2》.1.实训内容:编写一个Java程序,用二维数组实现奇数阶的魔方矩阵:规律为:1.数1放在第一行的正中一列,2.从2起{每个数所在的行数比前一数的行数减1,列数加1。
如果行数超过下界(上界)则改为上界(下界),3.如果数为n 的倍数,则其后的数所在位置列数不变,行数加1}2.实训步骤:(1).在包中创建一个sujian1可视类(2).添加组件:Lable和Button更改其属性和Text。
(3).添加事件响应代码:对“确定”选择Events- widgetSelected 并将代码改为:MessageBox box=new MessageBox(sShell,SWT.ICON_WARNING|SWT.OK);int n=Integer.parseInt(text.getText()==""?"-1":text.getText());if(n>9||n<1||n%2==0){box.setMessage("输入一个不超过9的正奇数:");}else{box.setText(n+"阶魔方阵");String[][] f=new String[n+1][n+1];String str="";int i=1,j=(n+1)/2;f[i-1][j-1]="1";for(int k=2;k<=n*n;k++){if((k-1)%n==0){i++;}else{i=(i==1)?n:i-1;j=(j==n)?1:j+1;}if(k<10){f[i-1][j-1]=""+Integer.toString(k);}else f[i-1][j-1]=Integer.toString(k);}for(i=0;i<n;i++){for(j=0;j<n;j++){str=str+f[i][j]+" ";}str=str+"\n";}box.setMessage(str);}box.open();text.selectAll();text.setFocus();运行结果为:。
一.实验目的实现学生信息管理系统,学生登录身份验证,信息的录入和信息的查询。
并在实验的过程中熟练掌握网页设计的各种工具,如Dreamwawer,tomcat等,提高网页设计的能力。
二.实验过程1.实现基本页面的设计,使用的工具:Dreamwawer。
2.实现服务器端程序设计,对页面数据进行处理。
3.与数据库进行连接,实现对学生数据的操作,如查询,存储,修改等。
4.进一步完善系统,如页面的美化等等。
本系统有三个模块组成,学生登录模块,学生信息数据库模块,出错处理模块,学生登录以后输入相应的学号,密码,登陆学生信息界面,队学生的成绩等基本信息进行查询,若学号或密码出错,或者不符合,弹出相应的出错界面。
本系统采用Jsp+JavaBean+SQL2000设计方式,其中JavaBean担当数据库连接以及逻辑控制,这样在Jsp就省去了繁琐的数据库连接,以及复杂的逻辑控制,使Jsp成为表示逻辑。
三.运用软件Windows环境下的Tomcat7.0,SQL2000。
四.过程截图:1.学生登录界面的设计:2.与数据库系统的连接:3.实现对学生数据的操作:4.对学生数据的保护的完善。
1,验证学生身份:Student:import java.sql.*;public class student {private String name;private String password;private String id;private String jiguan;private String sex;private String dep;public void setDep(String s){dep=s;}public String getDep(){return dep;}public void setSex(String s){sex=s;}public String getSex(){return sex;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public String getPassword() {return password;}public void setPassword(String password) { this.password = password;}public String getJiguan() {return jiguan;}public void setJiguan(String jiguan) {this.jiguan = jiguan;}public boolean hasLogin(){ //检查该学生是否已经注册boolean f=true;String sql="select id from student where id ='"+id+"'";sqlBean db =new sqlBean();try{ResultSet rs=db.executeQuery(sql);if(rs.next()){ f=false;}else{ f=true;}}catch(Exception e){ e.getMessage();}return f;}public ResultSet getStudent(){String sql="select * from student ";sqlBean db= new sqlBean();ResultSet rs = db.executeQuery(sql);return rs;}public void updateStudent(){String sql="update student "+" set name='"+name+"',sex='"+sex+"',department='"+dep+"', "+"password='"+password+"',jiguan='"+jiguan+"' "+" where id='"+id+"' ";sqlBean db= new sqlBean();db.executeInsert(sql);}public void deleteStudent(){String sql="delete from student where id ='"+id+"' ";sqlBean db= new sqlBean();db.executeDelete(sql);}public void addStudent() {String sql="insert into student(name,password,id,sex,department,jiguan) "+"VALUES('"+name+"','"+password+"','"+id+"','"+sex+"','" +dep+"','"+jiguan+"')";sqlBean db =new sqlBean();db.executeInsert(sql);}}2.登陆界面:public class login {private String id;private String password;private String kind;private int flag=0;public int getFlag(){if(kind.equals("student")) flag=1;if(kind.equals("teacher")) flag=2;if(kind.equals("admin")) flag=3;return flag;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getKind() {return kind;}public void setKind(String kind) {this.kind = kind;}}3.出错处理:import java.sql.*;import java.io.*;public class marking {String tea_id;String coursename;String score;String stu_id;public void setStu_id(String id){this.stu_id=id;}public String getStu_id(){return stu_id;}public void setScore(String sc){this.score=sc;}public String getScore(){return score;}public void setTea_id(String id){this.tea_id=id;}public String getTea_id(){return tea_id;}public void setCoursename(String c){this.coursename=c;}public String getCoursename(){return coursename;}public ResultSet getStudents(){String sql=" select stu_id "+"from enrol "+"where accept=1 "+"and class_id IN( "+"select classes.id "+"from classes ,course "+"where course.id=classes.cour_id "+"and ='"+coursename+"' "+"and classes.tea_id='"+tea_id+"') ";sqlBean db = new sqlBean();ResultSet rs=db.executeQuery(sql);return rs;}public void addmark(){int mark=0;int mark1=0;String sql="select mark from student where id='"+stu_id+"' ";sqlBean db = new sqlBean();try{ResultSet rs = db.executeQuery(sql);if(rs.next()) { mark = rs.getInt("mark");}}catch(SQLException ex){System.err.println("学生成绩查询有错误:"+ex.getMessage() );System.out.print("学生成绩查询有错误:"+ex.getMessage());//输出到客户端}sql="select mark from course where name='"+coursename+"' ";try{ResultSet rs=db.executeQuery(sql);if(rs.next()){ mark1=rs.getInt("mark"); }}catch(SQLException ex){System.err.println("成绩查询有错误:"+ex.getMessage() );System.out.print("成绩查询有错误:"+ex.getMessage());//输出到客户端}mark = mark+mark1;sql="update student set mark='"+mark+"' where id='"+stu_id+"' ";db.executeInsert(sql);}public void updatemark(){int temp=0;try{temp = Integer.parseInt(score) ;}catch(NumberFormatException e){System.err.println("成绩输入有错误:"+e.getMessage() );System.out.print("成绩输入有错误:"+e.getMessage());//输出到客户端}if(temp>60){addmark();}String sql="update enrol set score='"+temp+"' "+ "where stu_id='"+stu_id+"' "+"and class_id IN( "+"select classes.id "+"from classes,teacher,course "+"where classes.tea_id='"+tea_id+"' "+"and course.id=classes.cour_id "+"and ='"+coursename+"' ) ";sqlBean db = new sqlBean();db.executeInsert(sql);}4,连接到sql数据库:import java.sql.*;public class determin{String sql="";String stu_id="";String tea_id="";String coursename="";public String accept(){sql="update enrol set accept=1 "+"where stu_id='"+stu_id+"' "+"and class_id IN ( "+"select classes.id "+"from classes,course "+"where ='"+coursename+"' "+ "and classes.tea_id='"+tea_id+"' and course.id=classes.cour_id) ";sqlBean sqlbean= new sqlBean() ;sqlbean.executeInsert(sql);return stu_id;}public void setTea_id(String id){this.tea_id=id; }public String getTea_id(){return tea_id;}public void setStu_id(String ss) {this.stu_id=ss;}public String getStu_ids(){return stu_id;}public void setCoursename(String ss){this.coursename = ss;}public String getCoursename(){return coursename;}public ResultSet getStudent(String id){sql="select * from student where id='"+id+"'";sqlBean sqlbean = new sqlBean();ResultSet rs = sqlbean.executeQuery(sql);return rs; }public ResultSet getStu_id(){sql="select enrol.stu_id "+" from enrol ,classes,course "+"where classes.cour_id=course.id "+"and enrol.class_id=classes.id "+"and( enrol.accept='0' or enrol.accept=null )"+" and ='"+coursename+"' "; sqlBean sqlbean = new sqlBean();ResultSet rs = sqlbean.executeQuery(sql);return rs;}}六.心得体会:通过这次实验,让我深刻体会到java所具有的强大的功能,以及java开发web的技术servlet和jsp技术有着和其他在这方面的技术的先进之处。
Java编程基础实验报告编制教师唐春兰审定代伟(适用于计算机科学学院专业学生)2016至2017学年第一学期计算机科学学院实验名称:Java语言基础指导教师:唐春兰实验仪器:计算机实验日期:2016 年12 月2 日实验地点:第三实验楼209 实验目的:1、了解Java 的数据类型;2、掌握各种变量的声明方式;3、理解运算符的优先级;4、掌握JAVA基本数据类型、运算符与表达式、数组的使用方法;5、理解JAVA程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法;6、通过以上内容,掌握JAVA语言的编程规则。
实验内容及基本要求:1、读下列程序,理解不同数据类型变量的声明,写出其输出结果并上机运行验证。
public class SHIYAN2_1 {public static void main(String[] args) {byte b=0x55;short s=0x55ff;int i=1000000;long l=0xffffL;char c='a';float f=0.23F;double d=0.7E-3;boolean B=true;String S="这是字符串类数据类型";System.out.println("字节型变量 b = "+b);System.out.println("短整型变量 s = "+s);System.out.println(" 整型变量 i = "+i);System.out.println("长整型变量 l = "+l);System.out.println("字符型变量 c = "+c);System.out.println("浮点型变量 f = "+f);System.out.println("双精度变量 d = "+d);System.out.println("布尔型变量 B = "+B);System.out.println("字符串类对象 S = "+S);}}2、分析下列程序,了解变量的使用范围,修改程序使之能成功运行。
java接口实验报告-回复Java接口实验报告[Java接口]的使用及实验结果写一篇1500-2000字文章,一步一步回答一、引言Java是一种面向对象的编程语言,它提供了丰富的特性来支持面向对象的编程。
其中一个最重要的特性之一就是接口。
接口在Java中扮演着连接不同类之间的桥梁,它定义了一组方法的签名,规定了其他类必须遵循的接口。
在本次实验中,我们将探索Java接口的使用,并通过编写简单的实验来进一步理解其工作原理。
二、理论基础2.1 接口的定义在Java中,接口是一种抽象的定义,它定义了一组可以被其他类实现的方法。
接口可以看作是一种约定,它规定了实现它的类必须提供的方法。
接口中的方法只有签名,没有实现,是完全抽象的。
接口使用`interface`关键字来定义。
2.2 接口的实现一个类可以同时实现多个接口,通过`implements`关键字来实现接口。
一个类实现了一个接口,就必须提供该接口中定义的所有方法。
接口的实现通过关键字`implements`来实现。
2.3 接口的优势接口在Java中扮演着重要的角色,它具有以下几个优势:1. 定义了一组可以被其他类实现的方法,提供了一种规范。
2. 实现多态性,不同的类可以实现同一个接口,实现类的实例可以通过接口的引用来访问。
3. 提高了代码的灵活性和可维护性,实现类可以随时更改。
4. 提供了一种解耦合的方式,降低了类之间的依赖性。
三、实验过程3.1 实验目标本次实验的目标是通过创建一个简单的接口和实现类,理解接口的概念和使用方法。
3.2 实验准备首先,我们需要创建一个Java项目来进行实验。
打开[Java IDE],创建一个新的Java项目,并命名为"InterfaceExperiment"。
3.3 实验步骤步骤1:创建接口在项目中,创建一个新的Java类,并命名为"Animal"。
在类中定义一个抽象方法,例如`void sound()`。
东北石油大学学生实验报告实验课程名称_______________实验一 java 概述一、 实验目的1. 掌握如何下载Java 安装软件包并了解和使用JDK 环境;2. 熟悉JDK 集成环境的基本命令、功能和基本用法,并学会配置Java 环境变量;3. 简述JDK, JRE 的区别并简述path 和classpath 环境变量的作用;4. 学习并熟练掌握使用JDK 环境进行Java 程序开发的全过程(包括:源程序的编 辑、编译、调试、运行和结果查看);二、实验内容 1. JDK 开发包的下载与安装(JDK 版本可选); 2. 根据要求写出统环境变量的配置; 3. 编写一个JAVA 程序进行调试,掌握在JDK 开发包支持下编译和运行的过程; 三、 实验记录1. JDK 开发包的下载与安装(1)从Oracle 官网下载安装包安装,安装路径:C:\Program Files\Javagpa SE D<*volo|^m<*r>r Kit 8 LJpdRo* 131 (G-4QX 立0 M 丘人E H B I. WRn 皿"MIK ■内毛F. OVW1 您 心 9 MK Mteg *31变星值CV):2.配置系统环境变量path和classpath3. 编写java 程序,并编译、运行: 程序如下:public class Students{public static void main(String[] args){System, out. printin(,z 这是我编写的第一个Java 程序! “);}}运行结果:变里名(N):变重值(V):实验二运算符、流程控制语句}运行结果:2.课堂案例2:键盘录入x的值,计算出y的并输出x>=3, y二2*x +l;-l〈x〈3, y 二 2 *x; x<=-l , y 二 2 * x - 1程序如下:import java. util. Scanner; class ExamplelO{public static void main(String[] args){Scanner sc=ncw Scanner (Systom. in); System, out. print In (〃请输入x 的值:〃);int x二sc. nextlnt ();int y=0;if (x>3) {y二2*x+l;}else if (x>~l){y二2*x;}else {y二2*x-l;}System, out. printIn (〃y二〃+y);}}3.实验题1:编程实现1! +2! +3!+・・・..+10!的结果并输出结果。
Java继承与多态实验报告.doc
Java的继承与多态实验报告
本报告致力于分析Java继承与多态的概念、原理和作用,以及相关实验过程及其结果。
继承,又称为分类,是Java面向对象程序设计语言中定义类之间关系的重要技术。
它使一个类可以使用另一个基类中定义的方法和属性,在基类中已经定义了一些功能,子
类可以对基类功能进行拓展与定制。
《Java技术手册》得出结论,继承可以有效提高软件的复用性、可维护性和可重用性,使大型的、复杂的程序有条理层次。
多态是Java中一种特殊的程序结构,允许不同类的对象对相同的消息作出不同的响应,由程序的消息而不是对象的类型来决定对象的行为。
它是Java多态性的基础,使程
序能够在不同对象上进行操作,统一实现。
从实验中,可以明显看出Java继承与多态之间的联系:多态必须依赖于继承,当子
类被创建时,它继承了母类的方法以及特性,这样,它才能以逐渐上升的方式处理所有消息,而多态给了子类独特-->性的功能。
同时,多态也方便了代码重用,因为子类会继承
母类的方法和属性。
此外,结果表明,多态的优点使程序可以提高可重用性,它也减少了代码的重复编写,同时允许特定类之外的类可以得到适用。
它促进了软件不断更新,因为多态给开发人员提
供了以对象层次组织代码的方法。
本练习涉及到Java继承与多态概念的整体概述和实现细节,为完全理解多态的概念
打下了坚实的基础。
它提供了一个理解和使用这些概念的有用方式和指导。
实验名称:综合图形界面程序设计实验目的和要求:学习和理解JAVA SWING中的容器,部件,布局管理器和部件事件处理方法。
通过编写和调试程序,掌握JAVA图形界面程序设计的基本方法。
实验环境:PC微型计算机系统,Microsoft Windows操作系统,SUN Java Development Kit开发工具包,NetBeans开发工具实验内容:设计和编写一个用于将人民币转换为等值的美元的程序,界面要求可以输入人民币的金额并可以得到转换后的结果。
实验代码://该实验是一个除法运算,按汇率将人民币转换为美元,就是以现有的人民币数目,除以汇率,代码如下import javax.swing.JFrame;import java.awt.Button;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import javax.swing.JOptionPane;import java.text.DecimalFormat;public class Test1111 extends JFrame{public Test1111(){this.setLayout(null);Button btn = new Button("开始输入人民币");btn.setBounds(150, 110, 100, 30);btn.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){sort();}});this.add(btn);this.setBounds(300, 300, 400, 290);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}private void sort(){//3个元素的字符串数组,存放输入的数String[] numberStrs = new String[1];for (int i=0; i<numberStrs.length; i++){//如果输入时按了取消按钮,则继续提示输入while(numberStrs[i] == null){numberStrs[i] = JOptionPane.showInputDialog("请输入人民币数"); }}//定义3个元素的double型数组,存放转换后的值double[] numbers = new double[1];try{for (int j=0; j<numbers.length; j++){numbers[j] = Double.parseDouble(numberStrs[j]);}}catch(NumberFormatException e){JOptionPane.showMessageDialog(null, "输入的不是数字!", "ERROR", JOptionPane.ERROR_MESSAGE);System.exit(1);}String result = "";DecimalFormat df1 = new DecimalFormat("0.0000");//System.out.println(df1.format(789.123456789456));double dolar = (numbers[0]/6.3064);result += "人民币:"+numbers[0]+"\n"+"转换为美元为(汇率6.3064):"+df1.format(dolar);//输出结果JOptionPane.showMessageDialog(null, result, "结果", JOptionPane.PLAIN_MESSAGE);}public static void main(String[] args){new Test1111();}}实验结果:实验小结:1、通过该实验掌握了java基本的除法运算。
Java课程设计实验报告实验题目:打字游戏小程序专业: 计算机科学与技术系班级: 1202班成员:Java 课程设计打字游戏小程序一、课程设计目的经过一学期的java学习,能灵活运用书中和实验中所学习的各类知识和技巧,并且能在程序开发中得以很好的运用和发挥;在以后的学习和工作中,可以从中获取很好的经验,并且锻炼自己开发程序和创新的意识;二、课程设计内容1.课程设计简介设计的是一个打字的小游戏,屏幕上不断地有英文字母下落,键盘输入字母,屏幕上与输入的字母形同的就会消失,并计分,如果有没有消去的字母掉到屏幕底,将扣分;2.设计说明因为要进行键盘操作,所以引用了event包,还要注册事件监听;字母是随机产生的,又要用Math.random;注册了线程;还要对窗口定义坐标,防止字母出现在同一位子;并且通过一位数组来给随机出现的字母做坐标定义;主要通过一位数组来控制字母的坐标,并且通过字母坐标的改变来对整个游戏的流程进行控制;3.设计流程图4.实现功能随机产生字母,运用了键盘操作当按对屏幕中出现的字母时,该字母全部消失,并且在分数上相应的增加或减少;5.详细设计源代码1)CharEntity.javapackage DownCharGame;/下落的字母实体类author shenbf/public class CharEntity {//定义字母的x、yprivate int x;private int y;//字母的值private char ch;//字母下落的"速度"private int speed;//颜色private Color color;//字体private Font font;public void drawGraphics g{//设置字体g.setFontfont;//设置画笔颜色g.setColorColor.white;g.fillOvalgetX-9, getY-24, 30, 30;g.setColorcolor;g.drawStringch+"", x, y;}//下落的方法public void down{y=y+speed;}//快速生成getters和setters方法:alt+shift+s---->r---->select all---->ok public void setXint x{this.x=x;}public int getX{return this.x;}public int getY{return y;}public void setYint y{this.y=y;}public char getCh {return ch;}public void setChchar ch {this.ch = ch;}public int getSpeed {return speed;}public void setSpeedint speed {this.speed = speed;}public Color getColor {return color;}public void setColorColor color {this.color = color;}public Font getFont {return font;}public void setFontFont font {this.font = font;}}2)DownCharFrame.javapackage DownCharGame;public class DownCharFrame {public static void mainString args{JFrame frame=new JFrame;frame.setTitle"打字母游戏V1.2";frame.setBounds200,100,640,480;frame.setResizablefalse;frame.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;DownCharPanel panel=new DownCharPanel;frame.addpanel;frame.addKeyListenerpanel;panel.addKeyListenerpanel;panel.startDown;frame.setVisibletrue;}}3DownCharPanel.javapackage DownCharGame;public class DownCharPanel extends JPanel implements KeyListener{C harEntity chs=new CharEntity10;//消除字母4,定义统计的变量//正确率i nt accuracy = 0;//正确数i nt rightNum = 0;//打错的个数i nt errorNum = 0;//遗漏的个数i nt loseNum = 0;//初始总分i nt sum = 1000;p ublic DownCharPanel{//为数组中的每一个子科目实例化forint i=0;i<chs.length;i++{CharEntity ce = new CharEntity;int fontSize=intMath.random10+20;ce.setFontnew Font"宋体",Font.BOLD,fontSize;ce.setXintMath.random580+30;ce.setY0;ce.setSpeedintMath.random3+1;ce.setColornew ColorintMath.random256, //0,255intMath.random256,intMath.random256;ce.setChchar65+intMath.random26;chsi=ce;}}p ublic void paintGraphics g{super.paintg;//设置背景图Image bgimg;try {bgimg = ImageIO.readnew File"Picture/238.jpg";g.drawImagebgimg, 0, 0, null;} catch IOException e {e.printStackTrace;}//消除字母5,绘制统计数字g.setFontnew Font"宋体",Font.BOLD,20;g.setColorColor.yellow;g.drawString"正确数:"+rightNum, 10, 40;g.setColorColor.red;g.drawString"错误数:"+errorNum, 10, 60;g.setColorColor.green;g.drawString"遗漏数:"+loseNum, 10, 80;//绘制下落的字母forint i=0;i<chs.length;i++{chsi.drawg;}//显示成绩g.setColorColor.white;g.drawString"您当前的成绩是:"+sum, 165, 23;//Game OveriferrorNum>50||loseNum>100{g.setColorColor.red;g.setFontnew Font"宋体",Font.BOLD,100;g.drawString"Game Over", 50, 250;}}p ublic void startDown{new Thread{public void run{whileloseNum>100||errorNum>50{try {Thread.sleep40;} catch InterruptedException e {e.printStackTrace;}forint i=0;i<chs.length;i++{ifchsi.getY>=480{//消除字母6,遗漏数++loseNum++;sum -= 100;chsi.setXintMath.random580+30;chsi.setY0;chsi.setColornew ColorintMath.random256,intMath.random256,intMath.random256;chsi.setChchar65+intMath.random26;}chsi.down;}repaint;//}}}.start;}p ublic void keyTypedKeyEvent e {}p ublic void keyPressedKeyEvent e {}p ublic void keyReleasedKeyEvent e {//消除字母7,实现具体的方法//7.1获取到键盘按下的字母char key = e.getKeyChar;//和当前按下字母key相同字母y值最大对应的下标int maxYindex = -1;//7.2使用按下的字母和chs数组中所有的字母去比较forint i=0; i<chs.length; i++{ifkey==chsi.getCh||key==chsi.getCh+32{//按下的字母key和下标对应的字母“相同”ifmaxYindex==-1{//说明第一次找到maxYindex = i;}else{//说明不是第一次找到ifchsmaxYindex.getY<chsi.getY{maxYindex = i;}}}}//判断正确还是错误ifmaxYindex==-1{//一个相同的字母都没有找到errorNum++;sum -= 100;}else{//至少找到一个相同的字母rightNum++;sum += 10;chsmaxYindex.setXintMath.random580+30;chsmaxYindex.setY0;chsmaxYindex.setChchar65+intMath.random26;}}}三、运行结果截图:四、实验总结:此程序运用了一维数组,且随机性;并且把键盘事件与电脑随机的功能相联系;有它的可取之处,值得我们学习;但也有不足之处,该程序不能自动结束;这点还有待完善;该程序比较基础;可以让自己先打好深刻了解理论基础;通过这次的课程设计,给自己增加了很多有用的经验,希望在以后的基础上可以接触些更有深度和技巧型的程序;让自己能更好的运用java的功能;。
课程实验指导书学号:成绩:______________实验一:Java 开发环境JDK1.5的安装与设置、编写简单的JAVA程序(居中,加粗,宋体,三号字)一、实验目的(左对齐,加粗,宋体,四号字)掌握Java 开发环境JDK1.5的安装与设置;通过编写简单的JA V A应用程序和JA V A APPLET小程序,掌握两类Java程序的基本结构、及其编辑、编译、运行的步骤;掌握JA V A 语言的基本数据类型和数组的相关基础知识。
(宋体,五号字)二、实验设备(左对齐,加粗,宋体,四号字)个人计算机windows XP,JDK1.5编译开发环境、Ultra Edit文本编辑器。
(宋体,五号字)三、实验步骤、方法与要求(左对齐,加粗,宋体,四号字)1.Java 开发环境JDK1.5的安装与设置,根据实验时具体的环境设置PATH、CLASSPATH环境变量的值;2.安装Ultra Edit文本编辑器;3.编写并运行一个简单的JA V A应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”;4.编写并运行一个简单的Java Applet小程序,该程序中绘制两行文字:“这是一个Java Applet程序”和“我改变了字体”,编写一个html文件,分别用浏览器和appletviewer打开上述html文件,运行该Java Applet小程序;四、实验结果示例(左对齐,加粗,宋体,四号字)应将上述实验步骤中的关键环节利用屏幕抓图的方式保存,并插入至实验报告此处。
五、程序清单(左对齐,加粗,宋体,四号字)列出完成上述实验步骤所要求编写的程序源代码(注意:必须是已经顺利经过编译、运行的正确的程序源代码)(宋体,五号字)六、源代码一:public class Study{public static void main(String args[]){System.out.println("你好,很高兴学习JAVA ");System.out.println("We are students ");}}源代码二:import java.applet.*;import java.awt.*;public class Small extends Applet{public void paint (Graphics g){g.setColor (Color.red);g.drawString("这是一个简单的JAVA APPLET程序",12,30);g.setColor (Color.blue);g.drawString("我改变了字体的颜色",22,56);}}源码三:<html><APPLET COCD="SmallApplet.class"WIDTH=250 HEIGHT=100></applet></html>实验总结(左对齐,加粗,宋体,四号字)实验总结主要包括两方面的内容:(1)在实验过程中遇到地问题及相应的解决方法(可以表格的形式列出);(2)本次实验的心得体会及通过实验对所学的内容的理解。
实验一Java开发环境的安装与配置一.实验目的:1.通过本次实验,掌握JDK的安装步骤,理解环境变量PATH,CLASSPATH的作用,以及它们的设置方法。
2.熟悉TextPad(或JCreater) 编辑环境,编写简单的Application程序,并编译和解释执行。
3.掌握JAVA中包的概念,以及包与包的引用关系。
4.记录编译和执行JAVA程序当中的系统错误信息提示,并给出解决办法。
二.实验环境: windows7 myeclipse2015三.实验内容:1.下载并安装JDK为了建立基于SDK 的Java 运行环境,需要先下载Sun 的免费SDK 软件包。
SDK 包含了一整套开发工具,其中包含对编程最有用的是Java 编译器、Applet 查看器和Java 解释器。
Sun公司网址:;2. 设置系统环境变量JDK 中的工具都是命令行工具,要从命令行即MS-DOS 提示符下运行它们。
很多人可能会不习惯,但这是Sun 特意采取的策略,为的是把精力更多地投入到Java 语言本身而不是花在开发工具上。
在桌面“我的电脑”图标上单击右键,选择“属性”菜单,将出现系统特性设置界面,如图所示。
○1、在“系统变量”框中选择“Path”,然后单击“编辑”按钮,在出现的“编辑系统变量”对话框中,在“变量值”栏的命令前添加“C:\j2sdk1.4.2_05\bin;”命令,如图所示。
各个环境变量间用“;”号相隔。
○2、设置环境变量classpath,新建一个环境变量名:classpath,其值为“.;C:\j2sdk1.4.2_05\lib\tools.jar”。
classpath环境变量是java虚拟机寻找类文件的路径,比如程序需要调用的类库文件等,一般常用的类库都包含在tools.jar里。
“.”表示当前目录,一定要加。
○3、设置完成后,单击“开始”→“所有程序”→“附件”→“命令提示符”打开DOS 窗口,在命令提示符下输入“java”或“javac”,回车后,如果出现其用法参数提示信息,则安装正确,如图所示。
实验报告(计算机与信息工程学院实验中心)学期:2014-2015课程名称:《Java程序设计实验》班级:信息1202*名:***学号:**********指导老师:***《Java程序设计》独立实验教学安排一、实验的教学方式、安排及实验环境(一)教学方式对照本课程的实验教材,实验一至实验十一,由教师提示实验原理、方法、步骤等内容,在教师的指导下,学生独立完成程序设计及调试工作。
实验十二的内容由学生自行设计完成。
(二)教学安排学时数:30课时学时安排:每次实验3学时,从学期第五周开始,共十次上机实验。
(三)实验环境实验环境为JDK 1.6。
(四)具体安排地点:信息大楼实验室。
辅导:每个班次一名辅导老师,原则上由任课老师担任。
登记:实验完成,由辅导老师登记实验纪录。
学生:实验做完,完成实验报告内容,并在学期末上交实验册。
老师:批改实验,成绩与平时成绩一起占期末的30%。
二、实验的具体内容和要求见实验报告。
浙江工商大学计算机与信息工程学院实验报告(1)日期:地点:成绩:━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━实验目的、实验原理和内容:一、实验目的:熟悉Java开发环境及简单程序Java设计。
二、实验原理:SDK 的下载与安装,设置环境变量,安装java 虚拟机,使用Eclipse,编译Java 源程序,运行Java 程序。
三、实验内容及要求:1.下载、安装并设置Java SDK 软件包。
2.熟悉Eclipse编辑软件。
3.掌握运行Java 程序的步骤。
4.分别编写Application和Applet程序,显示字符串”Hello Java!欢迎使用!”。
要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。
程序一public class hello {public static void main(String[] args) {for(int i=0;i<=4;i++){System.out.println("Hello java! 欢迎使用!");}}}结果示意图1存在的问题1、JA VA 存在大小写,因为system没有区分大小写所以出现编译错误。
Java实验报告 姓名:桂大有 班级:网103班 学号:109074360 实验一、安装JDK并熟悉java的运行环境 1、编写一小程序实现上述功能:在屏幕上显示“HELLO WORLD”。 程序源代码如下: public class HelloWorld { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Hello World!"); } } 实验结果截屏如下:
实验二、基本语法练习 ⒈编写一个应用程序求若干个数的平均数,原始数字要求从键盘输入。 程序源代码如下: import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { // TODO Auto-generated method stub // System.out.println("Hello World!"); System.out.println("请输入2个数:"); Scanner scan=new Scanner(System.in); float t1=scan.nextInt(); float t2=scan.nextInt(); float average=(t1+t2)/2; System.out.println("这两个数的平均值是:"+average); } } 实验结果截屏如下: ⒉编写一个应用程序,接受用户从键盘输入的摄氏温度,然后将其转化成等效的华氏度温度。 程序源代码如下: import java.util.Scanner; public class Accept { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); System.out.println("请输入一个摄氏温度值:"); int cel=scan.nextInt(); double f=cel*1.8+32; System.out.println(cel+"摄氏度转化成华氏度为:"+f); } } 实验结果截屏如下:
⒊编写应用程序,按升序顺序输出一维数组中的元素。 程序源代码如下: import java.util.Scanner; public class Sort { public static void main(String[] args) { // TODO Auto-generated method stub int array []=new int[10]; Scanner scan=new Scanner(System.in); System.out.println("请输入10个正整数:"); for(int i=0;i<10;i++) { array[i]=scan.nextInt(); } System.out.println("选择排序后的结果为:"); for(int i=0;i<10-1;i++) { int k=i; for(int j=i+1;j<10;j++) { if(array[j] k=j; } int t=array[i]; array[i]=array[k]; array[k]=t; } // Foreach(int tmp in array) // { // // } for (int i : array) { System.out.print(i); System.out.print("\t"); } } } 实验结果截屏如下:
实验三、面向对象编程实验 ⒈接口的编写 程序源代码如下: public interface Interfaceclass { int i=4; int k=5; void func1(); int func2(int x); } //主类 public class UseInterface implements Interfaceclass{ int j; public void func1() //在使用接口的类中一定要实现接口中的所有抽象方法 { System.out.println("func1="+1); } public int func2(int i) { System.out.println("func2="+1); return i; } public static void main(String[] args) { // TODO Auto-generated method stub UseInterface x=new UseInterface(); x.func1(); int y=x.func2(k); System.out.println("func2()的返回值是:"+y); } } 程序运行结果截屏如下:
⒉多态在工资系统中的应用 设计一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、 CommissionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。该例的Employee的每个子类都声明为final,因为不需要再继承它们生成子类。 对所有雇员类型都使用earnings()方法,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Earnings()派出生的。所有在超类中声明earnings()为抽象方法,并且对于每个子类都提供恰当的earnings()的实现方法。 程序源代码如下: public abstract class Employee { public abstract void earnings(); public double salary; } public final class Boss extends Employee { double t;//固定工资 public Boss(double t1) {this.t=t1;} @Override public void earnings() { // TODO Auto-generated method stub salary=t; System.out.println("The boss's salary is:"+salary); } } public final class CommissionWorker extends Employee { double baseSalary,selled; public CommissionWorker(double baseSalary1,double selled1) { this.baseSalary=baseSalary1; this.selled=selled1; } @Override public void earnings() { // TODO Auto-generated method stub salary=baseSalary+selled*0.1; System.out.println("The CommissionWorker's salary is:"+salary); } } public final class PieceWorker extends Employee { double production; //生产的产品数 int n; //每件产品的工资 public PieceWorker(double production1,int n1) {this.production=production1; this.n=n1; } @Override public void earnings() { // TODO Auto-generated method stub salary=n*production; System.out.println("The PieceWorker's salary is:"+salary); } } public final class HourlyWorker extends Employee { int hour; double hourSalry; public HourlyWorker(int hour1,double hourSalary1) { this.hour=hour1; this.hourSalry=hourSalary1;