Java课程第四次实验报告
java实验报告4
实验4 Java 语言面向对象基础编程一.实验目的(1)通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想(2)如何创建类和对象二、实验要求1、编写一个体现面向对象思想的程序;2、编写一个创建对象和使用对象的方法的程序;3、编写体现构造方法重载的程序;三.实验内容1、定义类创建类对象设计类来描述真实客观世界中的事物,使用类的成员变量来表示事物的属性和状态,使用类的成员方法来提供对成员变量的访问或修改(1)程序功能:设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。
源代码:(自己编写)创建类的对象,使用对象的方法(类的非静态方法)来访问或修改对象的变量(类的非静态变量)(1)创建上面第一步的类的对象,在调用类的构造函数时指定对象的变量的初始值,以后再使用对象的方法来访问或修改对象的变量的值。
源代码:2、构造方法重载构造方法的名称和类同名,没有返回类型。
尽管构造方法看起来和一般的成员方法没有差别,但它不是方法,也不是类的成员。
因此,构造方法不能直接调用,只能由new 操作符调用。
构造方法对于类是十分重要的,对象的初始化任务要靠构造方法来完成。
重载构造方法的目的是提供多种初始化对象的能力,使程序员可以根据实际需要选用合适的构造方法来初始化对象。
源代码如下:class RunDemo {private String userName, password;在该处编写不带参数的构造方法在该处编写带一个参数的构造方法在该处编写带两个参数的构造方法}public class EXP2 {public static void main(String[] args) {//使用不同的构造方法进行对象的初始化}}3、调用方法时参数传递的练习在Java 中,方法中的参数传递可以分为传值调用或对象方法调用等方式。
南昌大学java实验报告4
南昌大学实验报告学生姓名:学号:专业班级:网络工程091实验类型:□验证□综合□设计□创新实验日期:2012.5.18 实验成绩:实验四简单的万年历一、实验目的学习使用布局类。
二、实验任务编写一个应用程序,有一个窗口,该窗口为BorderLayout布局。
窗口的中心添加一个Panel容器:pCenter,pCenterd的布局是7行7列的GridLayout布局,pCenter中放置49个标签,用来显示日历。
窗口的北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth,单击nextMonth按钮,可以显示当前月的下一月的日历;单击previousMonth按钮可以显示当前月的上一月的日历。
窗口的南面添加一个Panel容器pSouth,起布局是FlowLayout,pSouth中放置一个标签用来显示一些信息。
三、实验内容编译并运行程序,查看结果。
程序如下:CalendarFRame.javapackage calendar;import java.awt.BorderLayout;import java.awt.Button;import java.awt.GridLayout;import bel;import java.awt.Panel;import java.awt.ScrollPane;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JFrame;public class CalendarFrame extends JFrame implements ActionListener { Label labelDay[]=new Label[42];Button titleName[]=new Button[7];String name[]={"日","一","二","三", "四","五","六"};Button nextMonth,previousMonth;int year=2012,month=5;CalendarBean calendar;Label showMessage=new Label("",Label.CENTER);public CalendarFrame(){Panel pCenter=new Panel();pCenter.setLayout(new GridLayout(7,7));//将pCenter的布局设置为7行7列的GridLayout 布局。
java实验四报告
任课教师:《JAVA程序设计》()实验报告学号:姓名:班级:实验指导书实验名称:图形用户界面实验学时安排:2实验类别:综合设计型实验实验要求:1人1组 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的1、掌握Java GUI主要的类及方法的创建及使用。
2、掌握Java 各种布局管理器的创建及使用。
3、掌握Java 对GUI的监听机制原理及主要GUI的监听接口。
4、通过试验,能够应用GUI类及布局管理器设计能够相应用户请求简单的图形界面二、实验内容P156 习题21)要求1: 在界面要求的基础上,增加菜单,包含菜单有-文件(打开保存退出等) 编辑(字体-粗体斜体颜色-红绿蓝) 帮助2:使用swing控件:JTextField, JComboBox, JCheckBox, JRadioButton3.事件响应(1)点击确定按钮时,将选择的个人姓名省份等信息显示在文本框内2)步骤•1)实现接口implements ActionListener•2) 设置确定按钮的监听者 buttonok.addActionListener(this);•3)动作实现•public void actionPerformed(ActionEvent e){ .. …. }•1)接口 JTextField 内容改变-DocumentListener•2)监听者 Document dt;•dt = textname.getDocument();•dt.addDocumentListener(this);•3) public void changedUpdate(DocumentEvent e)• {•if(e.getDocument()==dt){ }• }•public void insertUpdate(DocumentEvent e)• {•if(e.getDocument()==dt){ }• }•public void removeUpdate(DocumentEvent e) { }•JComboBox, JCheckBox, JRadioButton 选项内容改变- ItemListener public void itemStateChanged(ItemEvent e){if(e.getSource()==combopro)if(e.getStateChange()==ItemEvent.SELECTED)str=str+combopro.getSelectedItem().toString();……}三、程序代码package E26.test;import java.awt.*;import java.awt.event.*;import javax.swing.*;class aa extends JFrame implements ActionListener{Button b1,b2;TextArea textarea1;JTextField text1=new JTextField(5);JComboBox provincechoice;JCheckBox c[];String habits[]={"体育","音乐","美术"};ButtonGroup group;JRadioButton f,g;aa(String s){super(s);setSize(290,440);setLocation(120,120);setVisible(true);JMenuBar menubar;JMenu file,edit,font,color;JMenuItem jopen,jsave,jout,bold,italic,red,green,blue;menubar=new JMenuBar();file=new JMenu("文件");jopen=new JMenuItem("打开");jsave=new JMenuItem("保存");jout=new JMenuItem("退出");file.add(jopen);file.add(jsave);file.add(jout);edit=new JMenu("编辑帮助");font=new JMenu("字体");bold=new JMenuItem("粗体");italic=new JMenuItem("斜体");color=new JMenu("颜色");red=new JMenuItem("红色");green=new JMenuItem("绿色");blue=new JMenuItem("蓝色");font.add(bold);font.add(italic);color.add(red);color.add(green);color.add(blue);edit.add(font);edit.add(color);menubar.add(file);menubar.add(edit);setJMenuBar(menubar);validate();setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);Container contenePane=this.getContentPane();FlowLayout flow=new FlowLayout();flow.setAlignment(FlowLayout.LEFT);flow.setHgap(8);flow.setVgap(8);GridLayout grid=new GridLayout();Box firstline,secondline,thirdline,basebox;firstline=Box.createVerticalBox();firstline.add(new Label("姓名:"));firstline.add(text1);firstline.add(new Label("省份:"));String p[]={"湖南","浙江","江西"};provincechoice=new JComboBox<String>(p);provincechoice.setSelectedIndex(1);provincechoice.addActionListener(this);firstline.add(provincechoice);firstline.setLayout(flow);firstline.validate();secondline=Box.createVerticalBox();secondline.add(new Label("爱好:"));c=new JCheckBox[3];for(int i=0;i<3;i++){c[i]=new JCheckBox(habits[i]);add(c[i]);}secondline.add(new Label("性别:"));group=new ButtonGroup();f=new JRadioButton("男");g=new JRadioButton("女");group.add(f);group.add(g);secondline.add(f);secondline.add(g);secondline.setLayout(flow);secondline.validate();basebox=Box.createHorizontalBox();basebox.add(firstline);basebox.add(secondline);contenePane.add(basebox);textarea1=new TextArea(10,30);add(textarea1);b1=new Button("确定");b2=new Button("取消");add(b1);add(b2);b1.addActionListener(this);b2.addActionListener(this);contenePane.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==b1){String n=text1.getText();String x=provincechoice.getSelectedItem().toString();String y[]=new String[3];String s;if(group.getSelection()==f.getModel())s="男";elses="女";int j=0,k=0;for(j=0,k=-1;j<3;j++){if(c[j].isSelected()){k++;y[k]=habits[j];}}textarea1.append("姓名:"+n+"\n\n"+"省份:"+x+"\n\n"+"爱好:");for(j=0;j<3;j++){while(y[j]!=null){textarea1.append(y[j]+" ");break;}}textarea1.append("\n\n"+"性别:"+s+"\n\n");}if(e.getSource()==b2){textarea1.setText("");}}}public class awt {public static void main(String args[]){Firstwindows win=new Firstwindows("简单窗口");}}四、运行结果与测试分析五、心得体会本次实验由书上个例子中找相似的,完成最终设计,比较麻烦。
java实验报告4
学生实验报告(2009—2010学年第一学期)课程名称:基于java的web编程技术开课实验室:2301 2009年 12月 25 日一、实验目的及内容目的:掌握JSP中Java Bean的使用及Java中数据库编程的步骤和方法。
内容:1.编写一个Web应用程序,该程序实现以下网站登录功能:●用户通过HTML表单将帐号、密码提交给一个Servelet;●该Servelet通过查询数据库,若帐号、密码正确,则通过数据库查询到的信息创建对应帐号的Java Bean对象(该对象的属性可包括:帐号、姓名、年龄等),并将该对象存储于Session中,然后跳转到一个JSP页面中(跳转可以由方法response.sendRedirect (String URL)实现),若帐号或密码不正确,则跳转到error.html(该页面显示“帐号或密码错误!”);●在JSP中,通过<jsp:useBean/>获取存储于Session中的Java Bean对象,通过<jsp:getProperty/>获取并显示Java Bean对象的属性。
●数据库对应表所包含的字段可包括帐号、密码、姓名、年龄等。
二、实验要求1.程序结构清晰,运行正确。
2.给出上面Servlet和JSP的设计、代码及运行结果。
3.请回答:在Java中使用JDBC的步骤是什么?三、实验步骤1.首先是新建一个web应用程序此处命名为Test4,在该程序中添加如下的文件:Login.html,StuInfo.jsp,ShowError.jsp三个文件,同时新建一个名为Student的包,并且在包下添加一个名为SelectStudent.java的servlet类和一个名为StuBean.java的类。
添加完成后如下图所示:2.编辑登录页面。
其关键代码和最终界面如下所示:<head><title>第四次实验报告</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><BODY BGCOLOR="#FDF5E6"><H1 ALIGN="CENTER">用户登录</H1><FORM ACTION="/Studnet/SelectStudent"><CENTER><table><tr> <td align="right">name:</td><td><INPUT TYPE="TEXT" NAME="Name"></td></tr><tr><td align="center">PassWord:</td><td><INPUT TYPE="TEXT" NAME="Number"></td></tr></table><INPUT TYPE="SUBMIT" VALUE="Login" ></CENTER></FORM></BODY>3.servlet类SelectStudent.java用来查询数据库,若name、Password正确,则通过数据库查询到的信息存储于Session中,然后跳转到一个StuInfo.jsp页面中,若帐号或密码不正确,则跳转到ShowError.jsp(该页面显示“帐号或密码错误!”);其主要代码如下所示:public class ThreeParams extends HttpServlet {@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException {String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";String dbURL = "jdbc:sqlserver://192.168.1.200:1433; DatabaseName=Student"; //定义连接服务器和数据库Student的字符串String userName = "sa"; //默认用户名String userPwd = "kmust"; //密码Connection dbConn;String selName = new String();String selSex = new String();String selNumber = new String();String Name = request.getParameter("Name"); //获取表单姓名String Number = request.getParameter("Number");//获取表单密码try {Class.forName(driverName); //加载JDBC驱动dbConn = DriverManager.getConnection(dbURL, userName, userPwd); //建立连接Statement statement = dbConn.createStatement();String selcom = "select * from StuInfo where Number ='"+Number+"' ";ResultSet resultSet = statement.executeQuery(selcom);while (resultSet.next()) {selName = resultSet.getString("Name");selSex = resultSet.getString("Sex");selNumber = resultSet.getString("Number");}dbConn.close(); //关闭数据库连接if (selName.equals(Name)){HttpSession session = request.getSession(); //建立会话保并存查询结果session.setAttribute("name", selName);session.setAttribute("number", selNumber);session.setAttribute("sex", selSex);response.sendRedirect ("StuInfo.jsp"); //}else{HttpSession session = request.getSession();//保存当前表单数据session.setAttribute("name", Name);session.setAttribute("number", Number);response.sendRedirect("ShowError.jsp");}}catch (Exception e) {e.getMessage();} }}4.建立一个类名为StuBean.java,用来实现学习使用javaBean。
java第四次实验报告
this.year = year;
this.day = day;
}
public void ChangeToDate(Date1 date) {
String Month[] =
{
"January","Februry","March", "April", "May","June",
{"drove","jumped","ran","walked","skiped"},
{"to","from","over","'under","on"},
{"the","a","one","some","any"},
{"boy","girl","dog","town","car"} };
TextArea output;
Button m;
int b,c;
public void init() {
output=new TextArea(25,50);
m=new Button("开始");
add(output);
add(m);
}
public boolean action(Event e,Object o){
output.setText ("");
java4次实验
if(ID==this.ID) return this.score; else return -1; } public static void main(String[] args) { Student s=new Student(); s.SetRecord(0,"alex",100); float Sco=s.getRecord(0); System.out.print(Sco); } }
import javax.swing.JApplet;//引入类 JApplet import javax.swing.JLabel;//引入标签类 JLabel public class HelloWorldApplet extends JApplet{
public void init(){ System.out.println("init Applet");
for(i=0;i<=10;i++) System.out.println(10+i+"的平方值"+a[i]); } public static void main(String args[]) { printSquare(); } }
实验二 类与对象 实验目的 1、 掌握面向对象程序设计的方法和 Java 作为面向对象程序设计语言的特点; 2、 掌握修饰符和构造方法的使用规则; 3、 掌握接口的特点、结构、调用和继承; 4、 掌握如何创建包,通过包如何管理类; 5、 掌握 Java 的继承机制和实现多态的方法 实验内容 1 定义一个类 Student,属性为学号、姓名和成绩;方法为增加记录 SetRecord 和得到记录 GetRecord。SetRecord 给出学号、姓名和成绩的赋值,GetRecord 通过学号得到考生的成绩。
Java程序设计实验报告4
课程实验报告
的文件对象,然后对str中的每个对象调用isFile()方法判断是否是文本文件,并计数输出
(4)在外层使用for循环对每个文本文件遍历行数
(5)在内层创建FileReader类的对象reader1和BufferedReader类的对象reader2,设置行数rows=0,分别读每个文本文件计算行数
调试过程及实验结果1. 2.
总结通过第一个实验我熟悉了BufferedReader、BufferedWriter等流类的相关使用方法,掌握了向文件中读写数据的基本步骤;通过第二个实验我掌握了Java File类相关方法的调用和使用,熟悉对文本文件和非文本文件基本方法的使用。
附录(手抄源程序清单,对关键步骤需要添加注释,写在报告背面即可,无需附页,严禁打印)
*注意:
--雷同无效,禁止抄袭;
--A4纸单面打印,左侧装订,2个钉;
--以班为单位,各班负责人收齐并按学号由小到大顺序排序后上交;。
java_实验四
武汉工程大学计算机科学与工程学院实验报告[4]一、实验目的1)了解Java.awt包及Swing的新增特性。
2)了解Java系统图形用户界面的基本工作原理和界面设计的步骤。
3)了解图形用户界面的事件响应机制。
4)了解图形用户界面各种常用的基本组件的使用方法及其事件响应。
5)掌握Java常用组件的应用6)掌握图形用户界面各种布局策略的设计与使用二、实验要求1)创建一个简单的图形用户界面。
2)使用Java类库中提供的组件,并添加到图形用户界面中。
3)通过Java事件处理机制,实现与用户的交互信息。
4)练习使用布局管理器5)使用Java类库中提供的组件,并添加到图形用户界面中6)通过Java事件处理机制,实现与用户的交互信息三、实验内容对一个优秀的应用程序来说,良好的图形用户界面是必不可少的。
因为只有通过图形界面,用户才能够与程序友好的交互。
缺少良好的图形用户界面,将会给用户理解和应用程序带来很多不便。
创建一个完整的图形用户界面的应用程序大致流程如下:1)引用需要的包和类。
2)设置一个顶层的容器。
3)根据需要为容器设置布局管理器或使用默认布局管理器。
4)将组件添加到容器内,位置自行设计。
5)为响应事件的组件编写事件处理代码。
下面我们先建立一个简单的图形用户界面,然后通过合适的布局管理器,将各种常用组件添加到图形用户界面中,实现与用户的交互信息。
1. 创建简单的图形用户界面(1)创建简单的 Frame 框架在 AWT 库中,对应于框架的类是 Frame,在 Swing 库中,相应的类是 JFrame。
JFrame 类扩展了 Frame 类。
大部分 ATWT 组件在 Swing 中都有等价的组件,它们在表示形式上差一个“J”。
框架是一个容器,可以在这个容器中放入其他一些图形用户界面组件,如按钮、菜单等,从而组成一个功能完善的程序。
下面的例子是建立一个 Frame 框架,通过这个例子学习如何创建一个简单的图形用户界面。
Java实验四报告
一、实验目的1.掌握Java语言中继承和多态的相关概念2.掌握Java程序设计中继承和多态机制的使用3.掌握Java语言中接口和包的概念及使用。
二、实验内容1.题目:1.继承多态综合练习1(1)建立一个Java抽象类Drink,应当:①声明一个抽象方法taste(),该方法负责输出饮料的味道;②声明int型常量来代表不同的饮料类型(咖啡、啤酒、牛奶),如:③声明静态方法getDrink(int drinkType),根据传入的参数创建不同的饮料对象,并返回该对象,建议使用switch语句。
(2)建立Drink的子类:①分别建立Drink的子类:Coffee(咖啡类),Beer(啤酒类),Milk(牛奶类);②实现taste()方法,要求在控制台打印各自的味道特征。
(3)建立Test测试类,测试以上内容的正确性①编写main方法,输入要新建的饮料类型。
②调用Drink类的getDrink方法,获得相应的饮料对象。
然后调用该饮料对象的taste()方法,输出该饮料的味道。
②编译程序,并运行。
要求:测试类放在包名为com.sy4.exe02.test包中,其它类放在com.sy4.exa02包中。
(知识点:类的定义,抽象类,继承,多态)2.继承多态综合应用练习2(1)定义一个抽象的People类,有姓名(name),年龄(age),性别(sex)等成员变量,要求成员变量的访问修饰符为private,通过getXxx()和setXxx()方法对各变量进行读写。
声明具有一个抽象的role()方法,该方法不返回任何值,用于输出人的身份类型,同时至少定义两个构造方法。
(2)定义一个抽象类Employee类,该类继承People类,该类具有People类的所有成员,并新增雇员底薪薪水(salary)和职工编号(empid)成员变量。
同样要有至少两个构造方法,要体现出this和super的几种用法。
声明具有一个抽象的getSalary()方法,该方法返回float 值,用于返回员工薪水。
Java实验四-实验报告
Java实验四-实验报告实验四类和对象;类的继承和派生;多态性;接口;构造器应用一、实验目的1、掌握类与对象的关系;2、掌握类的定义;3、掌握对象的声明及使用;4、掌握构造方法的概念及调用时机;5、掌握构造方法的重载;6、掌握匿名对象的使用。
二、实验学时2学时三、实验类型验证性实验四、实验需求1、硬件每位学生配备计算机一台2、软件Windows 7操作系统,JDK,eclipse,MySQL 3、网络无4、工具无五、实验理论与预备知识1、类与对象的关系;2、类的定义;3、对象的声明及使用;4、构造方法的概念及调用时机;5、构造方法的重载;6、匿名对象的使用。
六、实验内容与结果1、编写一个应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。
//三角形类class Trangle {double sidea,sideb,sidec,sjxzc,sjxmj;boolean boo;public Trangle(double a,double b,double c){sidea=a;sideb=b;sidec=c;if(a+b>c && a+c>b && b+c>a){boo=true;}else{boo=false;}}double getlength(){double length;length=sidea+sideb+sidec;return length;}public double getarea(){if(boo){double area;double p=(sidea+sideb+sidec)/2.0;area=Math.sqrt(p*(p-sidea)*(p-sideb)*(p-sidec)); return area;}else{System.out.println("不是一个三角形,不能计算面积"); return 0;}}}//梯形类class Laderdouble txsd,txxd,txhigh,txarea;Lader(double a,double b,double c){txsd=a;txxd=b;txhigh=c;}double getarea(){double area;area=(txsd+txxd)*txhigh/2.0; return area;}}//圆形类class Circle{double ybj,yzc,yarea;Circle(double r){ybj=r;}double getarea(){double area;area=3.14*ybj*ybj;return area;}double getlength(){double length;length=2*3.14*ybj;return length;}void setybj(double newybj) {ybj=newybj;}double getybj(){return ybj;}}public class one {public static void main (String args[]){double length,area;Circle circle=new Circle(5);Trangle trangle=new Trangle(3,4,5); Lader lader=new Lader(3,4,6);length=circle.getlength();System.out.println("圆的周长:"+length); area=circle.getarea();System.out.println("圆的面积:"+area); length=trangle.getlength();System.out.println("三角形的周长:"+length); area=trangle.getarea();System.out.println("三角形的面积:"+area); area=lader.getarea();System.out.println("梯形的面积:"+area); trangle=new Trangle(1,1,3);area=trangle.getarea();System.out.println("三角形的面积:"+area); length=trangle.getlength();System.out.println("三角形的周长:"+length); }}2、编写一个公司员工类。
java web 实验报告 4
实验报告成绩:教师:课程名称: Java Web应用开发技术实用教程实验名称: JDBC技术一、实验目的(1)使用JDBC技术。
(2)在JSP中使用数据库。
二、实验工具(1)JDK 1.4、JDK 1.5或JDK 1.6,可以从SUN公司的网站免费下载。
(2)编辑工具JCreator,可以从网上免费下载。
(3)Tomcat服务器,也可以从网上免费下载。
三、实验步骤(1)数据库基本操作。
1)建立数据库表product,其结构如下:┏━━━━━━━┳━━━━┓┃列名┃类型┃┣━━━━━━━╋━━━━┫┃ProductID ┃.mt ┃┣━━━━━━━╋━━━━┫┃ ProductName ┃ text ┃┣━━━━━━━╋━━━━┫┃ ProductPrice ┃.mt ┃┣━━━━━━━╋━━━━┫2)在JCreator中输入以下文档,并保存为ProductAdd.iava。
Importjava.sql.*;class ProductAdd(129页代码}3)编译ProductAdd.iava4)运行ProductAdd.iava(2)在JSP中使用JDBC。
1)用上一章使用的student表注册数据源,名称为sun,用户名为sa,无口令。
2)打开JCreator,输入以下文档,并保存为seatoh.jsp。
<HTML><BODY><P>查询成绩:<FONT size=1><P>输入学生的姓氏:<BR><FORM action=”byname2jsp”method=post name=form><INPUT type="text”name="name’’value=”王”><BRl><INPUT type=submit name=’’g..vaIHe=’’提交‘·></FORM></BODY></HTML>3)在JCreator中输入以下文档,并保存为byname2.jsp。
java实验四报告
实验4 继承与多态一、实验目的与要求1、掌握类的继承关系和派生方法;2、掌握多态的概念与使用;3、掌握接口的定义与使用;二、实验内容继承与多态:编写一个类SuperClass,有成员数据和成员方法,另一个SubClass 为SuperClass的子类,编写一个接口,增加与SuperClass同名成员数据和成员方法,增加和SuperClass成员异名的成员数据和成员方法;在主方法里面调用这些成员方法,并输出这些成员数据。
三、实验器材微机+windows操作系统+eclipse四、实验步骤package shiyansi;public interface study {public abstract void printmessage();}package shiyansi;public class Surperclass {protected int x=2;protected String y="our university is very beautiful";public void set(int xx,String yy){x=xx;y=yy;}public void show(){System.out.println("now we use superclass"+"\tx="+x);}package shiyansi;public class Subclass extends Surperclass implements study { protected int x=5;protected String z;public void set(int xx,String zz){x=xx;z=zz;}public void show(){System.out.println("this is subclass"+"\tx="+x);}public void printmessage(){System.out.println("subclass member are "+"\tx="+x+"\ty="+y+"\tz="+z);}}package shiyansi;public class test {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubSurperclass sa=new Surperclass();Subclass sb=new Subclass();///继承System.out.println("继承测试");sa.show();sb.show();sa.set(200, "super is father class");sb.set(300, "sub is son class");sb.printmessage();//////多态System.out.println("多态测试");sa=new Subclass();sa.show();study st=new Subclass();st.printmessage();}}五、实验结果继承测试now we use superclass x=2this is subclass x=5subclass member are x=300 y=our university is very beautiful z=sub is son class多态测试this is subclass x=5subclass member are x=5 y=our university is very beautiful z=null六、实验小结1、通过这个实验加深了对继承的理解:不同访问控制的超类成员在影响能否在子类中被继承。
西电JAVA第四次上机作业实验报告
JAVA第四次上机作业实验报告一、上机内容Java GUI编程实验编写程序,利用JTextField和JPasswordField分别接收用户输入的用户名和密码,并对用户输入的密码进行检验。
对于每个用户名有三次密码输入机会。
要求:1、所有用户名和密码信息都预先存放在文件passwords.txt中,使用文件流读入;2、当三次密码输入均错误时,弹出模式化对话框阻塞窗口,并在对话框关闭时同时关闭窗口。
二、上机分析1、组件定义及界面显示内容:public class Login {private JFrame frame;private JLabel label1;private JLabel label2;private JLabel label3;private JPasswordField jf;private JTextField jt;private JButton yes;private JButton no;private int i=0;public Login(){frame=new JFrame("用户登陆");label1=new JLabel("西电芝麻开门");label2=new JLabel(" 用户名:");label3=new JLabel("密码:");jf=new JPasswordField(15);jt=new JTextField(15);yes=new JButton("登录");no=new JButton("取消");init();addEventHandler();}2、界面格局设计:public void init(){JPanel north=new JPanel();JPanel center=new JPanel();JPanel south=new JPanel();north.setLayout(new FlowLayout());center.setLayout(new FlowLayout(2));south.setLayout(new FlowLayout());north.add(label1);center.add(label2);center.add(jt);center.add(label3);center.add(jf);south.add(yes);south.add(no);frame.setLayout(new BorderLayout());frame.add(north,BorderLayout.NORTH);frame.add(center,BorderLayout.CENTER);frame.add(south,BorderLayout.SOUTH);}public void showMe(){label1.setFont(new Font("隶体",Font.BOLD,16));frame.setLocation(600, 400);frame.setSize(250,200);frame.setResizable(false);//不能改变窗口大小frame.setVisible(true);//frame.pack();//设置窗口为最适尺寸frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}3、操作后显示设计当三次密码输入均错误时,弹出模式化对话框阻塞窗口,并在对话框关闭时同时关闭窗口。
Java实验报告4
(3)如果将B.java去掉import语句,并在使用包中的类时带上完整的路径,运行时结果正确。
(4)把A.java程序的相关部分作如下修改进行测试,编译运行。
System.out.println("从类A中访问Clock hour="+c.hour);
System.out.println("从类A中访问Clock minute="+c.minute);
System.out.println("从类A中访问Clock second="+c.second);
·ClassNotFoundException:具有指定名字的类或接口没有被发现。
·CloneNotSupportedException:克隆一个没有实现Cloneable接口的类。
·IllegalAccessException:试图用给出了完整的路径信息的字符串加载一个类,但是当前正在执行的方法无法访问指定类,因为该类不是public类型或在另一个包中。
int n,a;String x;
BufferedReader keyin=
new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter an integer");
x=keyin.readLine();
n=Integer.parseInt(x);
java实验四实验报告
}
编译:javac TwoThread.java
解释执行:java TwoThread
运行后结果:
1、用创建Thread类的子类的方法实现多线程:
源程序:
class FruitThread extends Thread
{
public FruitThread (String str)
{
super(str);
}
public void run()
{
for(int i=0;i<5;i++)
{
System.out.println(i+""+getName());
T2.start();
}
}
编译:javac C.java
解释执行:java RunThread
运行后结果:
c源程序:
class run1Thread implements Runnable
{
public void run()
{
System.out.println("This is Runnable");
outputClass(String s){
name=s;
}
public void run(){
for(int i=0;i<3;i++){
System.out.println(name);
Thread.yield();
}
}
}
class runThreads{
public static void main(String args[]){
try
{
sleep((int)(Math.random()*1000));
1304031031-夏婷婷-Java实验报告四
计算机科学与技术系实验报告专业名称 13级网络工程课程名称 Java语言基础项目名称面向对象程序设计班级 13级网工(1)班学号 1304031031姓名夏婷婷同组人员实验日期一、实验目的与要求:(简述本次实验要求达到的目的,涉及到的相关知识点,实验的具体要求。
)1.掌握类得封装与对象的使用。
2.掌握构造方法的使用,方法重载用于多态。
3.掌握类的继承,方法重构与变量的隐藏。
4.熟悉访问控制符的作用。
二、实验内容(根据本次实验项目的具体任务和要求,完成相关内容,可包括:实验目的、算法原理、实验仪器、设备选型及连线图、算法描述或流程图、源代码、实验运行步骤、关键技术分析、测试数据与实验结果、其他)1.在EX4_1.java文件中定义两个类。
一个是CCircle,另一个是主类EX4_1。
Class CCircle{ double pi;double radius;double getRadius(){ return radius;}Void setCircle(double r, double p){ pi=p;radius=r;}Double getCircleArea(){ return pi*radius*radius;}}public class EX4_1{ public static void main(String args[]){ CCircle cir1=new CCircle();cir1.setCircle(2.0,3.1416);System.out.println("园半径="+cir1.getRadius());System.out.println("园面积="+cir1.getCircleArea());cir1.pi=3.14159;cir1.radius=10.0;System.out.println("园半径="+cir1.getRadius());System.out.println("园面积="+cir1.getCircleArea());}}2,下面是一个具有继承的程序RectangleDemo.java。
天津理工大学Java实验四实验报告
天津理⼯⼤学Java实验四实验报告天津理⼯⼤学计算机科学与⼯程学院实验报告2017 ⾄2018 学年第⼀学期附录(源程序清单)// FullQueueException类package Ex;public class FullQueueException extends IndexOutOfBoundsException { private static final long serialVersionUID = 1L;String ERROR_INFO;FullQueueException(String s){this.ERROR_INFO = new String(s);}public String toString(){return "FullQueueException" + ERROR_INFO;}}// EmptyQueueException类String ERROR_INFO; EmptyQueueException(String s){this.ERROR_INFO = new String(s);}public String toString(){return "EmptyQueueException" + ERROR_INFO; }}// CircleQueue类import java.util.Arrays;public class CircleQueue{private int DEFAULT_SIZE = 5;private int capacity;private Object[] elementData;private int front = 0;private int rear = 0;public CircleQueue(){capacity = DEFAULT_SIZE;elementData = new Object[capacity];}public CircleQueue(T element){this();elementData[0] = element;rear++;}public CircleQueue(T element, int initSize){this.capacity = initSize;elementData = new Object[capacity];rear++;}public int size(){if (isEmpty()){return 0;}return rear > front ? rear - front : capacity - (front - rear);}public void addBack(T element) throws FullQueueException { if (rear == front && elementData[front] != null){throw new FullQueueException("队列已满的异常");}elementData[rear++] = element;rear = rear == capacity ? 0 : rear;}public T removeFront() throws EmptyQueueException{if (isEmpty()){throw new EmptyQueueException("空队列异常");T oldValue = (T) elementData[front];elementData[front++] = null;front = front == capacity ? 0 : front;return oldValue;}public T element() throws EmptyQueueException{if (isEmpty()) {throw new EmptyQueueException("空队列异常");}public boolean isEmpty(){// rear==front且rear处的元素为nullreturn rear == front && elementData[rear] == null; }public void clear(){Arrays.fill(elementData, null);front = 0;rear = 0;}}// PrintJob类public class PrintJob{private String jobName;private int pages;public PrintJob(String sjN, int spg){this.jobName = new String(sjN);this.pages = spg;}public String getName(){return this.jobName;}public int getPages(){return this.pages;}}import java.util.Queue;private int sizeOfJobs;private int numberOfJobs;private int delayBetweenJobs;private String producerName;private Thread PrintThread = null;public Producer(int ss, int sn, int sd, String spn, Thread t) {this.sizeOfJobs = ss;this.numberOfJobs = sn;this.delayBetweenJobs = sd;this.producerName = new String(spn);this.PrintThread = t;}public void run() {for (int i = 0; i < this.numberOfJobs; i++) {PrintJob pj = new PrintJob(this.producerName + " #" + i, this.sizeOfJobs); try {Printer.getInstance().addJob(pj);Thread.sleep(this.delayBetweenJobs);} catch (InterruptedException e) {e.printStackTrace();} catch (FullQueueException e) {System.out.println("⽆法添加打印任务启动Printer" + e);}}}}//Printer类public class Printer implements Runnable{static private CircleQueue printQueue = new CircleQueue();static private boolean stateIsRunning = true;private static final Printer PRNTR_ONL Y = new Printer();static private boolean whileend = false;public static Printer getInstance() {return PRNTR_ONL Y;}public synchronized void halt(){if (Printer.stateIsRunning) {System.out.println("C: Print manager is halted.");Printer.stateIsRunning = false;}}public void addJob(PrintJob job) throws FullQueueException, InterruptedException { synchronized (printQueue){try{this.printQueue.addBack(job);}catch (FullQueueException e){try{printQueue.notify();printQueue.wait();}catch (InterruptedException e1){e1.printStackTrace();}}}System.out.println("[1]P: Adding job " + job.getName() + " to the queue");}private PrintJob getJob() throws EmptyQueueException {PrintJob p = null;while (p == null && stateIsRunning) {try {p = this.printQueue.element();Printer.printQueue.removeFront();} catch (EmptyQueueException e) {try {printQueue.notifyAll();printQueue.wait(500);} catch (InterruptedException e1) {e1.printStackTrace();}System.out.println("C: Waiting on a job to print." + stateIsRunning);}}return p;}}public void run() {System.out.println("C: Print manager is starting up.");while (stateIsRunning) {PrintJob pjob = null;try {pjob = this.getJob();System.out.println("[2]C:Starting job " + pjob.getName()); Thread.sleep(500 * pjob.getPages());System.out.println("[3]C:Completed job " + pjob.getName());} catch (EmptyQueueException e) {break;} catch (InterruptedException e) {e.printStackTrace();}}}//TestPrinter类public class TestPrinter{public static void main(String[] args) {Printer PRNT_P = Printer.getInstance();Thread THRD_P = new Thread(PRNT_P);THRD_P.setPriority(10);Producer pd1 = new Producer(5, 2, 5, "A", THRD_P); Producer pd2 = new Producer(5, 2, 5, "B", THRD_P); Producer pd3 = new Producer(5, 3, 5, "C", THRD_P); Thread thrd_A = new Thread(pd1);Thread thrd_B = new Thread(pd2);Thread thrd_C = new Thread(pd3);thrd_A.start();thrd_B.start();thrd_C.start();THRD_P.start();try {thrd_A.join();thrd_B.join();thrd_C.join();计算机科学与⼯程系}catch (InterruptedException e1){e1.printStackTrace();}try{Thread.sleep(10000);}catch (InterruptedException e){e.printStackTrace();PRNT_P.halt(); }}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.编写一个有两个线程的程序,第一个线程用来计算2~100000之间的质数及个数,第二个线程用来计算100000~200000之间的质数及个数。
四、实验小结(包括问题和解决方法、心得体会等)
五、指导教师评语
成绩
批阅人
日期
1.了解和掌握Java中GUI组件和界面化设计
2.掌握Java中创建线程对象的方法
3.熟悉控制线程状态的过程
二、实验环境(实验设备)
1.每位学生配备计算机一台
2.计算机需安装好JDK和Jcreator
三、实验内容
1.编写一个应用程序,利用两个文本框对象input1和input2,接收用户从键盘输入的两个整型数。当用户单击“计算”按钮时,可进行算术计算,并输出运算结果;运算结果放在多行文本域JTextArea组件中。
实验报告
(2016 / 2017学年第2学期)
课程名称
JAVA语言程序设计
实验名称
GUI综合应用开发、线程
实验时间
2017
年
月
日
指导单位
计算机学院/软件学院
软件教学中心
指导教师
崔红燕
学生名
班级学号
学院(系)
专业
实验名称
GUI综合应用开发、输入输出流、线程
指导教师
实验类型
上机
实验学时
2
实验时间
一、实验目的