实验二 Java基本程序设计(1)
实验时间 2018-9-6
1、实验目的与要求
(1)进一步熟悉命令行和IDE两种方式下java程序开发的基本步骤;
(2)掌握Eclipse集成开发环境下导入Java源程序的过程;
(3)掌握Java语言构造基本程序的数据类型、变量、运算符、各类表达式、输入输出、流程控制的基本语法;
(4)掌握String类、StringBuilder类、数组类的用法。
2、理论学习部分
(1) Java是一种强类型语言,这意味着每一个变量必须声明为一种类型。类是构建所有Java应用程序和applet的构建模块。Java应用程序中的 全部内容都必须放置在类中。
类名是以大写字母开头的名词。如果名字由多个单词组成,每个单词的第一个字母都应该大写。
在java中,一行可以声明一个变量,逐一声明没、每一个变量可以提高程序的可读性。
源代码的文件名必须与公共类的名字相同,并用java做扩展名。
永远不要使用一个没初始化的变量的值。
标识符(类名,变量名,方法名,数组名,文件名):由字母,下划线,美元符号和数字组成,第一个符号不能为数字。
常见关键字(不作变量名):class public try catch if float import void
(2)数据类型:
整数类型:(int short long byte)
浮点类型:(float double)
字符类型:(char)
布尔类型:(boolean)
(3)在Java中,使用关键字final来指示常量,习惯上常量名都大写。final表示只能对变量附一次值,其值一旦设定,便不能改。
(4)新的运算符:new:这是一个用来创建对象的特别运算符。
Instanceof:返回一个布尔值来指出某个对象是否是一个特定类或者是它的子类的一个实例。
(5)类型转换:
隐式类型转换:大多数的数值转换是遵循优先级关系自动完成的。
强制类型转换的语法:(目标类型)变量名
在进行强制类型转换时,当心丢失数据。
(6)字符串常量:
Java字符串是Unicode字符的序列,它是组织字符的基本数据结构,用法类似于字符数组。
使用“ ”定义字符串。
Java会自动为字符串常量生成一个String类的对象,所以可以直接初始化String类对象。
Java语言允许使用+号连接(拼接)两个字符串。
当一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串。
可以用equals方法检测两个字符串是否相等。表达式为: s.equals(t)
一定不要使用==运算符来检测两个字符串是否相等。这个运算符只能确定两个字符是否在同一位置上。
如果需要多个小段字符串连接创建一个字符串时,每次连接字符串时,都会构建一个新的String对象,既耗时,又浪费空间,使用StringBuilder类就可以避免这个问题的发生。
StringBuilder builder = new StringBuilder();//create a string builder
(7)数学函数包含在Math类中。
两个常量 —math.PI ,—Math.E
若不想在数学方法名和常量名前加前缀“Math”,可在源文件顶部加上以下代码即可:
—import static java.lang.math*;
(8)文件的输入和输出
要想对文件进行读取,就需要一个用File对象构建一个Scanner对象。
Scanner in = new Scanner(“paths.get(“myfile.txt”),"UTF-8”);
(9)Java有五种语句:
方法调用语句:System。out("Hello!");
表达式语句:x = 23; i++;
复合语句:块(即复合语句)是由一对大括号括起来的若干条简单的Java语句。
控制语句:程序控制流程由这些语言确定。
(10)大数值:如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和 BigDecimal。
3、实验内容和步骤
实验1:编写java 应用程序,输出以下4个表达式的值。
int i=1; double d=1.0; (1) 45+45*50%i-- (2) 1.5*3+d++ (3) (true)&&(3>4) (4) (i>0)||(i<0) |
|
实验2:编写包含以下代码片段的java应用程序,输出字符串类对象s3的值。
String s1=“Hello!”; String s2=“World”; String s3=s1+s2; |
|
实验3:更改实验2中s1、s2、s3为StringBuilder类对象,观察程序运行结果并与实验2结果进行对比,理解String类对象与StringBuilder类对象的区别。
Java字符串是Unicode字符的序列,它是组织字符的基本数据结构,用法类似于字符数组。
有内置的字符串类型,而是在标准Java类库中提供了一个Java预定义类String。在Java中,字符串被当作对象来处l理程序中需要用到的字符串可以分为两大类:
1.创建之后不会再做修改和变动的不可变字符串String类;
2. 创建之后允许再做更改和变化的构建字符串StringBuilder类。
实验4:在命令行方式下调试运行下列程序,理解java应用程序命令行参数的用法。
public class Message { public static void main(String[] args) { if (args[0].equals(“-h”)) System.out.print(“Hello”);//用equals方法检测两个字符串是否相等 else if(args[0].equals(“-g”); System.out.print(“goodbye,”); for(int i=1;i<args.length;i++) System.out.print(“ ”+args[i]); System.out.println(“!”); } }
|
实验5:Eclipse环境下导入第3章示例程序InputTest.java步骤:
(1) 新建java project如下图:
(2) 选择File->import->File ystem->Next,打开文件导入窗口如下图,点击上方Browse选择导入源程序并选中,点击下方Browse选择源程序导入位置为新项目InputTest/src位置后,点击finish完成导入。
(1) 打开InputTest项目src文件夹的缺省包,双击InputTest.java在IDE源程序编辑区打开文件。
(2) 右键单击InputTest.java文件名打开快捷菜单,选择Run as->java application运行此程序,结合程序运行结果,理解代码中Scanner类对象用法,掌握java控制台输入方法。
想要通过控制台进行输入,首先需要构造一个Scanner对象,并与“标准输入流”System.in关联。
Scanner scan = new Scanner(System.in);
实验6:按照实验5的操作步骤,导入WriteReadFileTest.java示例程序,结合程序运行结果理解程序代码,观察项目文件夹下文件myfile.txt的内容,掌握文件的输入输出操作。
实验7:按照实验5的操作步骤,导入第3章示例程序,每个示例程序从语法、算法两个角度总结学习内容。
(1)测试Retirement.java,Retirement2.java,.java掌握循环控制结构;
(1)测试BigIntegerTest.java,掌握大数值类的用法;
(1)测试LotteryDrawing.java,掌握数组的用法;
(1)测试CompoundInterest.java,掌握多维数组的用法;
(1)测试LotteryArray.java,掌握不规则数组的用法。