实验一Java开发环境的安装与配置一.实验目的:1.通过本次实验,掌握JDK的安装步骤,理解环境变量PATH,CLASSPATH的作用,以及它们的设置方法。2.熟悉TextPad(或JCreater)编辑环境,编写简单的Application程序,并编译和解释执行。3.掌握JAVA中包的概念,以及包与包的引用关系。4.记录编译和执行JAVA程序当中的系统错误信息提示,并给出解决办法。二.实验环境:windows7myeclipse2015三.实验内容: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”,回车后,如果出现其用法参数提示信息,则安装正确,如图所示。3、编辑运行第一个java程序;.编写一个简单的Java应用程序,要求输出“WelcometoJava!”。步骤:○1、用文本编辑器(Windwos系统的“记事本”)编辑源代码(1)单击开始菜单,选择程序——“附件”——“记事本”,启动“记事本”文本编辑器软件。(2)录入如下程序代码publicclassEx1{publicstaticvoidmain(Stringargs[]){System.out.println(WelcometoJava!);}}注意:a.)java源程序名一定要和主类名相同,并加”.java”扩展名;b)java严格区分大小写;c)在用记事本编辑保存java源方件时,保存类型一定要选择“所有文件”,这样才能保证是java属性的源文件。如下图所示:(3)在MS-DOS命令行,进入到Ex1.java源文件所在目录,通过“javacEx1.java”编译源文件;(4)运行程序,运行时不需要加扩展名,如:javaEx1;如下图所示;4、删除刚才的Ex1.java源文件,将源文件保存为与类名不一致的名字,重新编译上面的程序,写出出错信息。5、了解application程序的主要结构,将上面的程序的主方法(即main())中的参数去掉重新编译上面的程序,写出出错信息。实验二类与对象一.实验目的:1.面向对象基本思想与方法;2.类、对象与封装的基本概念;3.对象成员(属性与方法)、构造器方法;4.static变量与方法;二,实验环境:windows7myeclipse2015三.实验内容:1、设计一个名为Account的类,它包括:1)一个名为id的int类型私有账户数据域(默认值为0)。2)一个名为balance的double类型私有账户数据域(默认值为0)。3)一个名为annualInterestRate的double类型私有数据域存储当前利率(默认值为0)。4)一个名为dateCreate的Date类型私有数据域存储账户的开户日期。5)一个能创建默认账户的无参构造方法。6)一个能创建带特定id和初始余额的账户的构造方法。7)id、balance和annualInterestRate的访问器和修改器。8)dateCreate的访问器。9)一个名为getMonthlyInterestRate()的方法返回月利率。10)一个名为widDraw的方法从账户提取特定数额。11)一个名为deposit的方法向账户存储特定数额。画出该类的UML图。实现这个类。编写一个测试程序,创建一个账户ID为1122、余额为20000元、年利率为4.5%的Account对象。使用withDraw方法取款2500元,使用deposit方法存款3000元,然后打印余额、月利息以及这个账户的开户日期。程序代码为:packagemain;importeconomic.Account;publicclassAccountmain{publicstaticvoidmain(String[]args){Accountacc=newAccount(1122,20000,0.045);System.out.println(账户ID:+acc.getId());if(acc.withDraw(2500)==0)System.out.println(取款成功,剩余金额:+acc.getBalance());elseSystem.out.println(取款失败,剩余金额:+acc.getBalance());if(acc.deposit(3000)==0)System.out.println(存款成功,剩余金额:+acc.getBalance());elseSystem.out.println(取款失败,剩余金额:+acc.getBalance());System.out.println(月利率为:+acc.getMonthlyInterestRate());System.out.println(开户日期为:+acc.getDateCreate().toString());}}packageeconomic;importjava.util.Date;publicclassAccount{privateintid=0;privatedoublebalance=0;privatedoubleannualInterestRate=0;privateDatedateCreate=newDate();publicAccount(intid,doublebalance,doubleannualInterestRate){this.id=id;this.balance=balance;this.annualInterestRate=annualInterestRate;}publicintgetId(){returnid;}publicintsetId(intid){if(id0){return-1;}else{this.id=id;return0;}}publicdoublegetBalance(){returnbalance;}publicdoublesetBalance(doublebalance){if(balance0){return-1;}else{this.balance=balance;return0;}}publicdoublegetAnnualInterestRate(){returnannualInterestRate;}publicdoublesetAnnualInterestRate(doubleannualInterestRate){if(annualInterestRate0){return-1;}else{this.annualInterestRate=annualInterestRate;return0;}}publicDategetDateCreate(){returndateCreate;}publicdoublegetMonthlyInterestRate(){returnannualInterestRate/12;}publicintwithDraw(doublecash){if(cashbalance)return-1;else{balance=balance-cash;return0;}}publicintdeposit(doublecash){if(cash0)return-1;else{balance=balance+cash;return0;}}}运行结果为:2、编写程序,实现整数栈的数据结构。StackOfIntegers--elementssize:int[]:int+++++++StackOfIntegers()StackOfIntegers(intcapacity)empty()peek()push(intelement)pop()getSize():boolean:int:int:int:int编写一个测试程序,创建一个StackOfIntegers对象,提示用户输入一个整数并压入栈中,循环十次,然后再从栈中逐个弹出数据并打印。程序代码为:packagetest;importstack.StackOfIntegers;importjava.util.Scanner;publicclasstest{publicstaticvoidmain(String[]args){StackOfIntegersstack=newStackOfIntegers();Scannerinput=newScanner(System.in);System.out.println(请连续输入十个整数用空格隔开:);for(inti=0;i10;i++){inta=input.nextInt();stack.push(a);}System.out.println(出栈为:);while(!stack.empty()){System.out.print(stack.pop()+);}}}packagestack;publicclassStackOfIntegers{privateint[]elements;privateintsize;publicstaticfinalintDEFAULT_CAPACITY=16;publicStackOfIntegers(){this(DEFAULT_CAPACITY);}publicStackOfIntegers(intcapacity){elements=newint[capacity];}publicvoidpush(intvalue){if(size=elements.length){int[]temp=newint[elements.length*2];System.arraycopy(elements,0,temp,0,elements.length);elements=temp;}elements[size++]=value;}publicintpop(){returnelements[--size];}publicintpeek(){returnelements[size-1];}publicbooleanempty(){returnsize==0;}publicintgetSize(){returnsize;}}运行结果为:四、实验总结:通过实验了解并掌握了Java面向对象程序设计的基本思想,类的创建与作用,对象的定义。可以将一个程序分几个class处理,即存在几个class中,运行时只需将其全选即可。同时通过上机调试学会了package的创建用法与import导入某个文件的用法。掌握了抽象类的定义及其实现方法,上转型对象的运用方法。掌握了方法重写式接口的定义及其实现方法,实现了接口回调的运用方法.。实验过程中由于对制表符\t不熟悉,导致输出的字符界面不美观、絮乱。后