NJUPT JAVA第四次实验1

合集下载

JAVA实用教程(第4版)实验1实验报告

JAVA实用教程(第4版)实验1实验报告

实验一:一个简单的应用程序
1.实验要求:
编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,欢迎学习Java”和“We are students”。

2.实验内容:
3.实验后的练习:
(1)编译器怎样提示丢失大括号的错误
(2)编译器怎样提示语句丢失分号的错误
(3)编译器怎样提示将System写成system这一错误
(4)编译器怎样提示将String写成string这一错误
实验二:联合编译
1.实验要求:
编写4个源文件:MainClass.java,A.java,B.java和 C.java,每个源文件只含有一个类。

MainClass.java含有应用程序的主类(含有main()方法),并使用了A,B和C类。

将4个源文件保存到同一目录中,然后编译MainClass.java。

2.实验内容:
3.实验后的练习:
将Hello.java编译通过以后,不断地修改A.java源文件中的代码,比如在命令行窗口输出Nice to meet you或Can you need my hand。

要求每次修改A.java源文件后,单独编译A.java,然后直接运行应用程序Hello。

南昌大学java实验报告4

南昌大学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第四次实验报告
this.month = month;
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 ("");

JAVA第四次试验

JAVA第四次试验

实验五、抽象类和接口一、定义一个包pack1,定义一个接口ClassName,接口中只有一个抽象方法getClassName()。

设计一个类Horse,该类实现接口ClassName中的方法getClassName(),功能是获取该类的类名。

编写应用程序使用Horse类。

源程序如下:package pack1;interface ClassName{void getClassName();}class Horse implements ClassName{public void getClassName(){System.out.println("Horse");}}public class TestHorse {public static void main(String[] args) {Horse h = new Horse();h.getClassName();}}运行结果如下:--------------------Configuration: <Default>-------------------- HorseProcess completed.二、定义一个包pack2,定义一个抽象基类Shape,它包含一个抽象方法getArea(),从Shape类派生出Rectangle和Circle类,这两个类都用getArea()方法计算对象的面积。

编写编写应用程序使用Rectangle类和Circle类。

源程序如下:package pack2;abstract class Shape{public abstract void getArea();}class Rectangle extends Shape{private float x,y;Rectangle(float x,float y){this.x = x;this.y = y;}public void getArea(){System.out.println(x*y);}}class Circle extends Shape{private float r;private final float PI=3.14f;Circle(float r){this.r = r;}public void getArea(){System.out.println(r*r*PI);}}public class TestShape {public static void main(String[] args) {Rectangle r = new Rectangle(3.0f,4.0f);Circle c = new Circle(2.0f);r.getArea();c.getArea();}}运行结果如下:--------------------Configuration: <Default>-------------------- ng.NoSuchMethodError: mainException in thread "main"Process completed.三、设计雇员Employee类,记录雇员的情况,包括姓名、年薪、受雇时间,要求定义MyDate类作为受雇时间,其中包括工作的年、月、日,并用相应的方法对Employee类进行设置。

java4次实验

java4次实验
} public float getRecord(int ID){
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实验报告

安徽工业大学java实验报告

JAVA实验报告实验1:利用JAVA反射技术分析类结构实验内容:运行程序,指定一个要分析的类名称,如ng.Double,输出类中声明的属性、方法、构造函数等。

结果分析:1.分析程序运行时的输出结果。

输出的结果中显示了被分析类的方法与变量,包括这些方法与变量的修饰符2.分析与JAVA反射技术相关的几个类的作用:ng.reflect.Constructor;Constructor 提供关于类的单个构造方法的信息以及对它的访问权限。

ng.reflect.Field;Field 提供有关类或接口的单个字段的信息,以及对它的动态访问权限。

反射的字段可能是一个类(静态)字段或实例字段。

ng.reflect.Method;Method 提供关于类或接口上单独某个方法(以及如何访问该方法)的信息。

所反映的方法可能是类方法或实例方法(包括抽象方法)。

ng.reflect.Modifier;Modifier 类提供了 static 方法和常量,对类和成员访问修饰符进行解码。

修饰符集被表示为整数,用不同的位位置 (bit position) 表示不同的修饰符。

定义一个自己的类,如Employee类,定义几个属性、方法、构造函数,要求成员的属性包含Public、Private、Protected、Static等。

运行该程序分析一下你自己定义的类结构。

class Employee{public String name ;public String id;private int age ;static protected int salary =100;Employee()}private void Employee(String xm,String bh,int nl){name=xm;id=bh;age=nl;}protected double Employee(int gz){return gz+salary;}}分析:先调用一个无参数的构造函数构造,然后再调用该构造函数private void Employee(String xm,String bh,int nl)构造一个对象,最后调用构造函数计算总的薪水。

新版软基第四次上机实验报告-新版-精选.pdf

新版软基第四次上机实验报告-新版-精选.pdf
if(b=='0') i=hftree[i].lch;
else i=hftree[i].rch;
if(hftree[i].lch==0)
6/7
{ cout<<code[i].ch; i=m;
} cin>>b; } } void main() { creathuffmantree(); huffcode(); trancode(); cout<<endl; } 三、测试数据 因比较复杂,我们直接看结果吧 四、上机遇到的问题 调试时遇到问题;解决办法:问同学 五、实际运行结果
s1=s2=32767;
for(j=1;j<=i-1;j++)
if(hftree[j].parent==0)
if(hftree[j].weight<s1)
{
s2=s1;
s1=hftree[j].weight;
p2=p1;
p1=j;
}
else if(hftree[j].weight<s2)
{s2=hftree[j].weight;p2=j;}
if(t->lc!=NULL) postorder(t->lc);
if(t->rc!=NULL) postorder(t->rc);
printf("%d\n",t->data); } } void preorder(bnode *t) { if(t==NULL) {
printf("the tree is null!\n"); return; } else { printf("%d\n",t->data); if(t->lc!=NULL)

西安邮电大学JAVA实验(3,4)

西安邮电大学JAVA实验(3,4)

第三次线程实验:一. 实验目的及实验环境实验目的:1.理解JA V A中线程的同步和死锁2.掌握线程同步和互斥实验环境:eclipse 4.4二. 实验内容编程实现隧道通车问题。

内容如下:有一条隧道,同时允许一辆车通行,隧道两端各有多辆车等待通过,车辆只能等到隧道空闲才能被运行进入隧道。

一旦隧道中有车辆,则禁止其他车辆通过。

三.方案设计1.定义类Test,Car,CarType,Tunnel类2.在Test类中创建一个隧道Tunnel和多个车辆,观察结果四.测试数据及运行结果1.正常测试数据(3组)及运行结果;2.非正常测试数据(2组)及运行结果。

无五.总结1.实验过程中遇到的问题及解决办法;①中没有明确表示需要进行异常抛出很有可能就会忘记这个题目存在的问题。

所以平常程序设计时,应该多考虑不同的情况,防止程序出现不可逆的漏洞。

②对程序进行同步时,notify()方法会唤醒等待队列中的随机的一个线程,而notifyAll()方法会唤醒等待队列中的全部线程2.对设计及调试过程的心得体会。

①Java中的每个对象都有一个lock,当访问某个对象的synchronized方法时,该对象就会被上锁(注意,是对象,不是方法,假如你在这个类中定义了多个方法,如果你的线程访问到了其中的任意一个synchronized方法,那么其它的就暂时不能被访问了,必须等到该对象被解锁以后,即方法执行结束才行)。

解锁的意思是值线程执行该方法完毕,或者说过程中抛出了异常。

②wait,notify,notifyAllwait:Object类中的final方法,有InterruptedException。

它的作用是导致当前的线程等待,直到其它线程调用此对象的notify方法或者notifyAll方法,wait还有一些重用方法,传参数,比如说时间长度。

当前的线程必须拥有此对象监视器,然后该线程发布对此监视器的所有权并且开始等待,直到其它线程通过调用notify方法或者notifyAll方法,通知在此对象的监视器上等待的线程醒来,然后该线程将等到重新获得对监视器的所有权后才能开始执行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档