第一部分:理论知识学习部分
第三章 java的基本程序设计结构
本章主要学习数据类型、变量、运算符、类型转换、字符串、输入输出、控制流程、大数值、数组等内容。
1.基本知识
(1)标识符:由字母、下划线、美元符号和数字组成,且第一个符号不能为数字。标识符可用作类名、变量名、方法名、数组名、文件名等。
(2)关键字:java语言中被赋予特定意义的一些单词。关键字不做变量名。
(3)注释:java语言有三种注释。//、/* */、/** */。
2.数据类型
每一个变量必须声明一种类型。java共有八种基本类型。
(1)整数类型(int,short,long,byte)java中没有unsigned类型。
(2)浮点类型(float,double)
(3)字符类型(char)
(4)布尔类型(boolean)。java中布尔值和整数值不能相互转换。
3.变量
java中每一个变量属于一种类型。声明变量时,变量所属类型位于变量名之前。一行可以声明多个变量,逐一声明每个变量可以提高程序的可读性。一个变量声明之后,必须通过赋值语句对它进行明确的初始化。可以在代码的任何位置进行变量声明。不能在同一作用域内声明两个同名的变量。java中关键字final来指示常量。习惯上常量名都用大写。
4.运算符
算术运算符、自增运算符与自减运算符、关系运算符、逻辑运算符、位运算符。new(用来创建对象的运算符)、Instanceof(返回一个布尔值来指出某个对象是否是一个特定类或者是它的子类的一个实例)。
5.类型转换
(1)隐式类型转换
(2)强制类型转换
6.字符串
java字符串时Unicode字符的序列,是组织字符的基本数据结构,用法类似于字符数组。没有内置的字符串类型,而是在标准java类库中提供了一个java预定义类。在java中字符串被当做对象来处理。
(1)String类
获得字符串的子串、串连接、获取字符串的长度、检测字符串是否相等、字符串检索、字符串与数值的转换、获得对象的字符串表示。
(2)StringBuilder类
分配/获取字符串的长度、分配/获取字符串的容量、字符串的检索和子串、字符串的修改、字符串类型转换。
7.输入输出
(1)读取输入
通过控制台进行输入时,需要构造一个Scancer对象,并与“标准输入流”System.in关联。
(2)格式化输出
使用System.out.print(x)将数值输出到控制台上这条命令将以x对应的数据类型所允许的最大非零数字位数打印输出x。
(3)文件输入与输出
要想对文件进行读取,就需要一个用File对象构造一个Scanner对象。
要想写入文件就需要构造一个PrintWriter对象,在构造器中只需提供文件名。
8.控制流程
(1)方法调用语句
(2)表达式语句
(3)复合语句
(4)控制语句
条件语句:if语句,switch语句。
循环语句:while、do-while、for。
(5)中断控制流程语句:break、continue。Java中没有goto语句。
(6)返回语句 return value
9.大数值
Java.math包中的两个类Biglntegre、BigDecimal可以操作任意长的数字。Biglntegre实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点运算。
10.数组
数据是一种数据结构,是有序数据的集合数据中每个元素的数据类型都是相同的。
(1)数组的声明
一维数组 数组元素类型 数组名字[]
二维数组 数据元素类型 数组名字[][]
Java中数组是独立类,有自身的方法。一个数组是一个对象。
(2)数组的创建
数组声明之后要用new运算符为其分配内存空间,分配内存空间时必须指明数组的长度。格式如下:数组名字=new 数组元素类型[个数]
(3)数组初始化及匿名数组
一维数组初始化:在声明数组的同时对数组的元素进行初始化。在java中可以初始化一个匿名数组。
多维数组的初始化:系统会自动根据初始值的大小计算出数组的大小。
(1)数组的操作
数组的拷贝:java允许把一个数组变量拷贝给另一个变量时,两个变量都指向相同的数组。如果只是想把一个数组中的值拷贝给另一个变量,就要使用Arrays类的copyOf方法,通过这个方法可以用来增加数组大大小。
数组排序:调用java.util.Arrays类中的sort方法。该方法采用优化快速排序方法。
(2)不规则数组:每一行有不同的长度。创建不规则数组时,从最高维开始分别为每一维数组分配空间。
第二部分 实验部分
1.实验目的与要求
(1)进一步熟悉命令行和IDE两种方式下java程序开发的基本步骤;
(2)掌握Eclipse集成开发环境下导入Java源程序的过程;
(3)掌握Java语言构造基本程序的数据类型、变量、运算符、各类表达式、输入输出、流程控制的基本语法;
(4)掌握String类、StringBuilder类、数组类的用法。
2.实验内容和步骤
实验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类对象的区别。
实验结果:
实验4 在命令行方式下调试运行下列程序,理解java应用程序命令行参数的用法。
public class Message { public static void main(String[] args) { if (args[0].equals(“-h”)) System.out.print(“Hello”); 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完成导入。
(3)打开InputTest项目src文件夹的缺省包,双击InputTest.java在IDE源程序编辑区打开文件。
(4)右键单击InputTest.java文件名打开快捷菜单,选择Run as->java application运行此程序,结合程序运行结果,理解代码中Scanner类对象用法,掌握java控制台输入方法。
实验6 按照实验5的操作步骤,导入WriteReadFileTest.java示例程序,结合程序运行结果理解程序代码,观察项目文件夹下文件myfile.txt的内容,掌握文件的输入输出操作。
实验结果:
实验7 按照实验5的操作步骤,导入第3章示例程序,每个示例程序从语法、算法两个角度总结学习内容。
(1)测试Retirement.java,Retirement2.java,LotteryOdds.java掌握循环控制结构;
Retirement.java实验结果:
Retirement2.java实验结果:
LotteryOdds.java实验结果:
(2)测试BigIntegerTest.java,掌握大数值类的用法;
实验结果:
(3)测试LotteryDrawing.java,掌握数组的用法;
实验结果:
(4)测试CompoundInterest.java,掌握多维数组的用法;
实验结果:
(5)测试LotteryArray.java,掌握不规则数组的用法。
实验结果:
3.实验总结
通过本章的学习,我学到了标识符、关键字、注释等基本知识,学习了数据类型、变量、运算符、类型转换、字符串、输入输出、控制流程、大数值、数组等内容。java的一些基础知识跟C语言非常相似,当然也有一部分是有区别的。在实验的过程中,忽略了数组越界问题,导致实验四的结果不正确,在老师的帮助下,最终解决了这个问题,当传入正确的参数之后,这个问题就解决了。在java的学习过程当中,只有不断的动手编写java程序才能更好的理解所学的理论知识,才能学好java。