JAVA程序语言设计实验.doc_第1页
JAVA程序语言设计实验.doc_第2页
JAVA程序语言设计实验.doc_第3页
JAVA程序语言设计实验.doc_第4页
JAVA程序语言设计实验.doc_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验部分实验第一个java程序实验目的 建立一个JAVA控制台程序应掌握以下内容:通过建立一个JAVA控制台程序应掌握java开发环境搭建,开发工具的使用实验时间:120分钟实验要求() 安装JDK,配置环境变量() 使用编辑器建立一个JAVA项目() 创建包和类。() 在类中申明方法,定义main方法,能给main方法传递参数() JAVA常用命令:java、 javac实验目的() 在windows下安装JDK并配置环境变量在sun公司的网站上提供了JDK的下载。当前最新的版本是jdk6 update 14。下载地址如下:/javase/downloads/index.jsp。下载的JDK文件名为:jdk-6u14-windows-i586.exe。)双击jdk-6u14-windows-i586.exe,按照安装提示安装好JDK。其中会提示选择安装目录,我们建议选择的安装目录为c:jdk1.6.0_14。)设置环境变量。为什么要设置环境变量呢?这是因为程序执行时有些方法它不知道在安装在那里,所以你如果在环境变量里设置了,程序就会到那里查找要执行的方法的路径。() 环境变量设置)单击“开始”菜单,单击“控制面板”:) 双击“系统”,打开系统信息页面。)选择“高级系统设置”,打开高级设置页面如下:)点击“环境变量”,打开环境变量设置页面:首先新建一个用户变量,在用户变量部分,点击“新建(N)”,输入变量名:JAVA_HOME;输入变量值:c:jdk1.6.0_14,并点“确定”保存。再设置系统path,在系统变量中,选择“Path”为题,点“编辑(I)”,打开系统Path编辑对话框如下:在变量值中加入“c:jdk1.6.0_14bin”。注意与其它的变量值之间用“;”分隔。该路径指向的是JDK中可执行文件所在的路径。到此就完成了环境变量的设置工作。下面对我们设置好的环境变量进行测试。() 测试环境变量。当配置完环境变量后,可以通过命令行方式来测试我们配置的环境变量是否有效。键入java -version 查看是否可以执行java.exe命令,输出JDK的版本信息。当正确输出时,表示环境变量设置正确。() 创建第一个Java工程)在Eclipse中建立java工程首先打开Eclipse。打开后的页面如下:新建项目。点击“File”,选择“New”、“Java Project”。打开新建java项目页面,如图所示:在“Project name”中输入新项目名。这里我们输入“firstProject”。在该页面“Contents”项,指定项目的路径,默认为Eclipse的工作目录(Workspace)。在“JRE”项中,可以指定该项目使用的JDK版本。这里我们都取默认的选项。点击“Finish”,完成项目创建。在下图中可以看到新建的项目,在 “Navigator”中已经列出。)在项目工程中创建文件夹(包)点击“firstProject”,将项目展开,可以看到有两个目录,第一个是“bin”目录,这下面存放的是编译后的文件;第二个目录是“src”,这是我们将要在其中建立java文件的地方。在实现的项目工程中,我们一般会将代码按功能和模块为成不同的目录,在对应的目录下编写java代码。建立目录的过程如下,右击“src”,从中选择“New”,指定“Folder”。打开新建目录窗口,在“Folder Name”中,输入新建目录的名字。我们在这里输入:hello,并点“Finish”保存。建成的目录将显示在“src”目录下。)新建第一个java类现在我们在hello目录下,新建一个java类。实现输出用户输入的名字,并致以问候的功能。右击“hello”目录,选择“New”、“Class”。打开新建类窗口。如下图所示:输入类名:Hello,并点“Finish”确认。将新建一个Hello类。如下图示:)为类添加方法我们现在只在该类中添加一个main方法,该方法接受一个名字作为参数并打印出“你好: XXX”。该类的完整代码如下:package hello;public class Hello /注释:输出你好XXXpublic static void main(String args) System.out.println(你好: + args0);)为main方法设置参数main()方法的括号内部,是方法参数的定义。该方法参数定义为一个字符串数组。在Eclipse 集成的IDE环境中,通过设置“Run”菜单中的“Run Configration ”项来设置。在“Program arguments:”中输入参数,当要向数组参数中输入多个数组项时,参数之间用“空格”分隔。此处我们输入“programmer”,如下图所示。)运行程序现在可以运行程序了。点击“Run”菜单中的“Run”或使用快捷键“Ctrl + F11”,我们将看到运行的结果:你好: programmer() 在前面实验的基础上完成以下实验)在前面已经建好的工程下,新建一个“myhello”目录,在该目录下新建一个HelloWorld类。实现输出”Hello World”功能。实现方式参考上一实验。)用java命令编译前两个java文件为class文件,并用java命令执行这两个class文件。实验2 数据类型和变量实验目标:通过该实验使学员能够掌握基本数据类型,标示符,常量和变量,以及数据类型的转换实验时间:120分钟实验要求() 掌握基本数据类型() 标识符的定义() 变量的声明与赋值、常量的声明与赋初值() 数据类型之间的隐式转换和显示转换() 变量的作用域实验内容() 变量的定义与赋值定义一个int型变量i1;定义一个long型变量l1,其值为long类型所能表示的最大值;定义一个float型变量f1,其值为3.14;定义一个double型变量d1,其值为100.00001;为i1赋值为:90;然后将定义的变量值输出。public class Variable public static void main(String args)int i1; /l1的值,为Long数据类型的最大值。long l1 = Long.MAX_VALUE; float f1 = 3.14F;double d1 = 100.00001D;i1=90; /为i1变量,赋值。/ 输出变量的值System.out.println(i1);System.out.println(l1);System.out.println(f1);System.out.println(d1);() 常量的声明与赋值声明两个int型常量i1、 i2。其中i1的值为500,i2的值为100。i1在声明时不赋以初值。public class Const final int i1; / 声明一个常量final int i2 = 100;/ 声明一个常量,并赋初值public Const() /在构造方法中,初始化常量。对构造的概念,在以后介绍。i1 = 500; System.out.println(i1);public static void main(String args) Const c = new Const();System.out.println(c.i2);() 数据类型定义与转换计算机在科学计算中,仍占很大的比重。但是不能很好的对数据类型进行定义和转换将导致计算出错,根本不能得出我们想要的结果。这不是计算机的问题,而是我们在编程时,必须注意的问题。在下面的实验中,会给大家演示。存在银行的钱一分利息都没有小数吃掉大数在银行中存入10000000元本金,利率10%。应得利息为1000000元,可是为什么一分钱都没有了呢?public class Interest public static void main(String args)int capital = 10000000; /本金10000000元double interestRate = 0.10; /百分之十的利率/计算利息:本金*利率double interest = capital *(int)interestRate;System.out.print(利息:+ interest);输出结果:利息:0.0 。请大家思考为什么?用计算机计算的值比人工计算的精确吗?也许没有小学生计算的精确我们还以上一题为例,来计算10000000元本金,利率10%,应得的利息,大家都知道,利息应为1000000元整。我们来看计算机计算出的结果是什么。public class Compute public static void main(String args)float interestRate = 0.1f; /百分之十的利率double capital = 10000000d; /本金10000000元/计算利息:本金*利率double interest = interestRate * capital;System.out.print(利息:+ interest);计算的输出结果为:利息:1000000.0149011612。如果有10000个储户都在银行存了这么多钱,银行要多支持多少利息呢?请思考,是什么原因导致计算不精确?() 编程实现以下实验编程计算利息:在银行中存入10000000元本金,利率10%。计算出正确的利息是多少?编程题,计算圆周长(将定义为常量)。实验3 运算符和表达式实验目的通过该实验使学员能够掌握基本运算符,表达式编写实验时间:120分钟实验要求() 掌握运算符的使用() 掌握表达式的编写() 掌握运算优先级实验内容() 计算房屋价格某房地产开发商开发的房屋,面积大于100,并且小于等于500时,单价为8000,其它面积单价都为10000。据此计算房屋价格。public class Compute public static void main(String args)float width = 10.4f; /宽度float length = 15.25f;/长度float acreage = width * length;/面积/当面积大于100,并且小于等于500时,单价为8000,否则为10000int price = 100acreage & acreage 1;System.out.println(回复人员权限: + Integer.toBinaryString (roleReply);/将权限降一级,产生一个新角色。发布留言角色int roleLeaveWord = roleReply1;System.out.println(发布留言权限: + Integer.toBinaryString (roleLeaveWord);/将权限降一级,产生一个新角色。查看角色int roleView = roleLeaveWord1;System.out.println(查看权限: + Integer.toBinaryString (roleView);/检查用户权限。“基本权限的值”与“角色权值”进行&运算后,结果仍为“基本权限的值”,表示用户具有此权限/检查管理员角色是否具有管理权限boolean isManage = (manage & roleManage) = manage? true:false;System.out.println(管理员角色具有管理权限:+ isManage);/检查查看角色是否具有回复权限boolean isReply = (reply & roleView) = reply? true:false;System.out.println(查看角色具有回复权限:+ isReply);() 计算气球的价格某广告公司出租广告用的气球,价格按用户所要的充气量来收费(气球体积)。0.51立方米的价格为50元,15立方米的价格为200元。58立方米的为500元。计算出,分别在这三个体积区间的最小气球和最大气球的价格。() 以二进制数的位运算方式实现以下计算:11111111与 10101010的异或1010101010右移2位1010101010右移2位,左侧补零10101110与10110101进行与运算实验4流程控制实验目的通过该实验使学员能够掌握分支语句和循环语句的使用实验时间:240分钟实验要求() 掌握条件判断语句() 掌握循环控制语句() 掌握组合循环、控制语句() 了解递归方法的应用实验内容() 对数组中的数值按从小到大进行排序。)冒泡法排序,冒泡法,是最常用的排序方法,使用循环控制结构。结构简单,明了。其实现原理是:将数组中n个数,其两两相邻的数进行比较,小的放在前大的放在后(从小到大排序时)。经过n-1次迭代后,完成排序。规律如下所示:原始数组:第一次迭代:比较次第二次迭代:比较次第三次迭代:比较次第四次迭代:比较次第五次迭代:比较次/* * 冒泡法排序 */public class Order public static void main(String args)/1.待排序数组int array = 10, 7, 8, 9, 2, 3, 7, 2, 24, 788, 100, 1;/2.排序int length = array.length; /迭代循环(外循环)for (int i=0; ilength; i+)/排序循环(内循环)for(int j=0; j arrayj+1)int biger = arrayj;arrayj = arrayj+1;arrayj+1 = biger; /打印排序后的结果 for(int i=0; ilength; i+)System.out.print(arrayi+ );编码规范: For循环中的条件判断,每次都计算重复值的计算,应在外部计算定义 。内循环中,每一次循环,都要计算array.length,引起性能损失 。)排序方法,除了可用上面的冒泡法外,还可用递归法public class Sort /* * 递归排序方法,顺序排序(从小到大) * param array:排序数组 * param currentPosition:当前数组元素下标 */public static void orderAsc(int array, int currentPosition) int length = array.length; /数组长度if (length = length - 1) / 当前已经是数组中最后一个元素时,退出。return;/ 将当前位置的元素与其后的所有元素进行比较for (int i = currentPosition; i arrayi + 1) int biger = arraycurrentPosition;arraycurrentPosition = arrayi + 1;arrayi + 1 = biger;/ 调用递归进入下一个元素的排序orderAsc(array, currentPosition + 1); public static void main(String args) / 定义一个数组,用来排序int array = 12, 2, 3, 6, 45, 67, 2221, 68, 90, 3, 56, 23, 10, 5,48, 2, 221, 100, 34, 23, 47, 777, 1, 12, 23, 18 ; int length = array.length;/ 调用排序方法Sort.orderAsc(array, 0);/ 打印排序后的结果for (int i = 0; i =1 )factorial *= number-;/输出计算结果System.out.println(factorial);)求的阶乘,求阶乘为n*(n-1)*(n-2)*1。第二种是采用递归算法:public class Factorial2 public static int factorial(int n)int rt = 0;if(1 = n) /当为时,不执行else中的语句,返回结果。rt = 1;elseif(n-1)=1)/继续进入递归的条件return n *factorial(n-1); /调用递归return rt;public static void main(String args)System.out.print(Factorial2.factorial(10);() 判断产生的-之间的随机数的值是多少。import java.util.Random;public class Judgment public static void main(String args) / 产生一个0-10之间的随机数int rNumber = (int) (new Random().nextFloat() * 10);switch (rNumber) case 0:System.out.println(随机数是 + rNumber);break;case 1:System.out.println(随机数是 + rNumber);break;case 2:System.out.println(随机数是 + rNumber);break;case 3:System.out.println(随机数是 + rNumber);break;case 4:System.out.println(随机数是 + rNumber);break;case 5:System.out.println(随机数是 + rNumber);break;case 6:System.out.println(随机数是 + rNumber);break;case 7:System.out.println(随机数是 + rNumber);break;case 8:System.out.println(随机数是 + rNumber);break;case 9:System.out.println(随机数是 + rNumber);break;default:System.out.println(随机数不在-之间,是+ rNumber);() 编程实现如下实验:)用if-else及其嵌套,实现上题。判断产生的-之间的随机数的值。)猜-之间的随机数。注:System.in.read()方法,用来接受用户从键盘输入的一个int型数据。)分别以for循环和递归二种方法,实现打印-乘法表。实验5java&oop实验目的通过该实验使学员能够掌握类的构造,抽象类,重载,继承,重写实验时间:120分钟实验要求() 掌握类的构造() 掌握抽象类() 掌握方法的重载() 掌握类的继承() 掌握方法的重写() 掌握关键字的使用。实验内容() 值传递和引用传递对于简单数据类型来说,java实现的是值传递,方法接收参数的值,但不能改变这些参数的值。如果要改变参数的值,则用引用数据类型,因为引用数据类型传递给方法的是数据在内存中的地址,方法中对数据的操作可以改变数据的值。 public class PassTestfloat ptValue; public void changeInt(int value) value = 55; /在方法内部对值参数进行了修改 public void changeObjValue(PassTest ref) ref.ptValue = 99f; / 在方法内部对引用参数进行了修改 public static void main(String args) int val ; PassTest pt = new PassTest(); val = 11; System.out.println(Original Int Value is: + val); pt.changeInt(val); /值参数 System.out.println(Int Value after Change is: +val);/* 值传递,没有影响值参数的值*/ pt.ptValue = 101f; System.out.println(Original ptValue is: + pt.ptValue); pt.changeObjValue(pt); System.out.println(ptValue after Change is:+pt.ptValue);/* 引用参数值的修改,改变了引用参数的值*/ () 访问父类的成员java中通过super来实现对父类成员的访问,super用来引用当前对象的父类。class SuperClassint x;SuperClass() x=3; System.out.println(in SuperClass : x = +x);void doSomething()System.out.println(in SuperClass.doSomething();class SubClass extends SuperClass int x ; SubClass() super(); /调用父类的构造方法 x=5; /super()要放在方法中的第一句 System.out.println(in SubClass:x=+x); void doSomething() super.doSomething();/调用父类的方法 System.out.println(in SubClass.doSomething(); System.out.println(super.x=+super.x+ sub.x=+x); public class Inheritancepublic static void main(String args)SubClass subC = new SubClass();subC.doSomething(); () 继承与多态)多态性class Avoid callme()System.out.println(Inside As callme()method);class B extends Avoid callme()System.out.println(Inside Bs callme() Method);public class Dispatchpublic static void main(String args)A a = new B();a.callme();)实例变量和类变量,实例方法和类方法class Memberstatic int classVar;int instanceVar;static void setClassVar(int i)classVar = i;/ instanceVar=i; / 类方法不能访问实例变量static int getClassVar()return classVar;void setInstanceVar(int i)classVar = i; / 实例方法不但可以访问类变量,也可以实例变量instanceVar = i;int getInstanceVar()return instanceVar;public class MemberTestpublic static void main(String args) Member m1 = new Member(); Member m2 = new Member(); Member.setClassVar(11); Member.setClassVar(22); System.out.println(m1.getClassVar的值 = + Member.getClassVar()+n +m2.getClassVar的值 = + Member.getClassVar(); m1.setInstanceVar(1); m2.setInstanceVar(2); System.out.println(m1.getInstanceVar的值 = + m1.getInstanceVar()+n +m2.getInstanceVar的值 = + m2.getInstanceVar();() 实验题目:建立一个父亲类和儿子类,有相关的继承关系,请设计开发这两个类。建立一个接口和抽象类,比较两者的不同。请开发设计一个反映多态性的例子。实验6 包,接口实验目的通过该实验使学员能够掌握JAVA包的机制和接口的作用实验时间:120分钟实验要求() 掌握JAVA创建包,引入包的机制。() 接口的实现与多继承实验内容() 创建包package com.asialinage.chenxian; /创建包public class Hellopublic static void main(String args)System.out.println(aaa);说明:) 如果想要根据package的定义自动生成文件夹,则可以在编译的时候,加上“-d 生成目录”参数。例如:javac d . Hello.java ( “.”示当前目录) ) 那么访问Hello类的时候必须使用以下的格式进行,例如java com.asialinage.chenxian.Hello() 包的导入如果现在一个包的类要使用另外一个包中的类,那么就需要使用import指令,进行包的导入操作,语法如下:import 包.类 ; 提示: 如果要用到另一个包的诸多类,那么如果一一采用import语句导入,很是麻烦,这个时候可以采用import 包.*;package org.lxh.demoa;public class Hellopublic void print()System.out.println(Hello World!);package org.lxh.democ;public class Hello public void printInfo() System.out.println(); package org.lxb.demob;import org.lxh.demoa.Hello; /导入包import org.lxh.democ.*; /导入包/说明:因为这两个包中的类名相同。public class TestHellopublic static void main(String args) org.lxh.demoa.Hello ha = new org.lxh.demoa.Hello(); ha.print(); org.lxh.democ.Hello hc = new org.lxh.democ.Hello(); hc.print();() 接口 有一种例子很好解释接口的作用,很多都知道java是面对对象的编程,我就用现实世界中的对象(即实物)来描述,大多人都知道猫和鸡属于动物范围内的;那么在java里如何表现呢?大多会用父与子来描述(即继承父类-动物),但大家想想,动物是猫与鸡的父亲吗?答应显然不是的.既然不是,那如何用java里的概念来描述呢,或者说更好地解释它们呢?用接口吧! /* 有一种例子很好解释接口的作用,很多都知道java是面对对象的编程, 我就用现实世界中的对象(即实物)来描述,大多人都知道猫和鸡属于动物范围内的; 那么在java里如何表现呢?大多会用父与子来描述(即继承父类-动物),但大家想想,动物是猫与鸡的父亲吗? 显然不是的.既然不是,那如何用java里的概念来描述呢,或者说更好地解释它们呢?用接口吧! Animal 动物 Cat 猫 Chook 鸡 */ public interface Animal void run(); /* 上面是一个接口,描述现实中动物这个概念,因为动物不是具体的实物(即对象),所以我们就抽象点吧,用接口来模糊描述下动物的特征吧 ,记住是模糊描述动物共同的特征,动物都有什么特征呢? 会跑,会叫,长了眼睛和毛皮, ,我就用动物的一个特征在java里描述吧! 跑!(run() 动物应该都会这样的! 接下描述具体动物-猫(Cat),首先,它是动物,当然也会跑,具体是如何跑的呢?那就详细来描述下吧! */ public class Cat implements Animal /它是动物,当然得继承了动物的特性了,但继承后做什么呢?动物有跑的方法-run(),既然猫是动物,它当然得跑一下吧!呵 public void run() /它是如何跑的呢? System.out.println(猫是用四条腿跑的!); /好啦,鸡也同样表现下跑的风范吧! public class Chook implements Animal /它是动物,当然得继承了动物的特性了,动物跑的方法-run(),既然鸡是动物,也得跑一下吧!呵 public void run() /它是如何跑的呢? System.out.println(鸡是用两条腿跑的!); /* 那我会问一句:那你如何告诉我它们是如何跑的呢? 你可能会回答,你想知道猫跑的方法 Cat cat = new Cat(); cat.run(); 你想知道鸡跑的方法 Chook chook = new Chook(); chook.run(); 我想告诉你,你是对的,但你不觉得太麻烦了,太烦琐了吗?你真该用接口了,它的确很在意思!我们写个测试类吧! */ public static void main(String args) Animal animal = new Cat(); animal.run(); /* Animal animal = new Cat(); Animal animal 它表示你要建一个动物(即对象); = new Cat(); 它表示上面的动物(即对象)具体指向哪个动物(即实体类); 按照上面的方法,你想看猫的特征,你就 = new Cat(); 你想看鸡的特征,你就= new Chook();吧!是不是很简单,以至于你想看狗,猪,马等动物的特征,只需改变下Animal animal具体的指向了(即指向哪个实体类). */ () 实验题目:)以自己的学校和班级姓名建立一个连续的包名,在这个包下建立一个类,并在这个类中建立一个方法,并建立另外一个类,来调用其中的方法。)中国人和日本人在语言上是有区别的,用接口的方式表现两者的特征,并实现这个接口。)建立两个接口,用一个类去实现这两个接口,请编程。 实验7访问控制 实验目的通过该实验使学员能够掌握JAVA修饰符的使用和作用范围实验时间:120分钟实验要求() public,private,protected的修饰符的使用和作用域。() static ,final关键字的使用。实验内容() 访问控制)打开Eclipse工具,建立一个名为Ptest.java public class Ptest public int a; public void show() int b =10; System.out.println(a+b的值为:+(a+b); public String check() a = 10 ; String str=; if(a10) str = a的值大于10; else str = a的值小于等于10 ; return str; public static void main(String args) Ptest p = new Ptest(); p.show(); System.out.println(p.check(); 说明:public:任何其他类、对象只要可以看到这个类的话,那么它就可以存取变量的数据,或使用方法)再建立一个Vtest.javapublic class Vtestprivate String aa = 你好!;private String show()System.out.println(aa);retu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论