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实验报告 姓名:桂大有 班级:网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;