张季跃 201771010139《面向对象程序设计(java)》第二周学习总结
第一部分:理论知识学习部分
第三章
3.1基本知识
l(1)标识符:l
标识符由字母、下划线、美元符号和数字组成, 且第一个符号不能为数字。
l下列都是合法标识符: Hello、$1234、程序名、www_123
l标识符可用作: 类名、变量名、方法名、数组名、文件名等。
l(2)关键字:l
关键字就是Java语言中已经被赋予特定意义 的一些单词。 l
常见有:class、public、try、catch、if、 float、import、void等。 l
关键字不做变量名
l(3)注释:lJava有三种注释的方式:
- // 注释内容由//一直到此行结束。
- . /*和*/ 定义一个注释块。
- /**开始,*/结束 这种注释方法可用来自动产生文档。
3.2数据类型
Java共有8种基本类型 :
–整数类型(int、short、long、byte)
–浮点类型(float、double)
–字符类型(char)
–布尔类型(boolean
3.3变量
在Java中,每一个变量属于一种类型。在声明变量时, 变量所属的类型位于变量名之前。 l在Java中,一行可以声明多个变量。逐一声明每一个 变量可以提高程序的可读性。
(1)变量初始化:
la.一个变量声明后,必须通过赋值语句对它进行明确的初始 化——永远不要使用一个未初始化的变量的值。
lb.在Java中,可以在代码的任何位置进行变量声明。变量 的声明尽可能地靠近变量第一次使用的地方,这是一种良 好的程序编写风格。
lc.在Java中,不能在同一作用域内声明两个同名的变量。
(2)常量的定义:
la.在Java中,使用关键字final来指示常量。习惯上常量 名都用大写。 l
b.关键字final表示只能对变量赋一次值,其值一旦设定, 便不能改。 l
C.在Java中,经常希望某个常量可以在一个类中的多个 方法中使用,通常将这些常量称为类常量。可以使用 关键字staticfinal声明一个类常量(class constants)。
3.4运算符
l (1)各种运算符:l算术运算符;自增运算符与自减运算符;关系运算符;逻辑运算符;位运算符
l (2)运算符的优先级与结合性
l (3)数学函数与常量
3.5 类型转换
(1) 隐式类型转换:
a.大多数的数值转换是遵循优先级的关系自动完成的。
b.转换原则如下: l
(a)如果两个操作数中有一个是double类型的,则另一个将 会转换成double类型。 l
(b)否则,如果两个操作数中有一个是float类型的,另一个 将会转换成float类型。 l
(c)否则,如果两个操作数中有一个是long类型的,另一个 将会转换成long类型。 l
(d)否则,两个操作数都将转换成int类型
(2)强制类型转换:
a.l强制类型转换的语法: (目标类型)变量名 l
在进行强制类型转换时,当心丢失数据
3.6字符串
u(1)Java字符串是Unicode字符的序列,它是组织字符的基 本数据结构,用法类似于字符数组。 u
(2)有内置的字符串类型,而是在标准Java类库中提供了一 个Java预定义类String。在Java中,字符串被当作对象 来处理。 u (3)程序中需要用到的字符串可以分为两大类: –创建之后不会再做修改和变动的不可变字符串String类; –创建之后允许再做更改和变化的构建字符串StringBuilder类
3.7输入输出
(1)读取输入:
l a.通过控制台进行输入时,需要构造一个Scanner对象,并 与“标准输入流”System.in关联。 –Scannerin=newScanner(System.in);
b.Scanner类定义在java.util包中,因此使用时需将相应的 包加载进来。 l
C.由于Scanner类输入是可见的,所以不适用于从控制台读 取密码。JavaSE6.0特别引入Console类实现这个目的。
l (2)格式化输出
l a.使用System.out.print(x)将数值x输出到控制台上, 这条命令将以x对应的数据类型所允许的最大非0数字 位数打印输出x。 l
b.JavaSE5.0沿用了C语言库函数中的printf方法, System.out.printf()。(了解) –用于printf的转换符 –用于printf的标志 l
C.printf方法中日期和时间的格式化输出。(了解) –日期和时间的转换符
l (3)文件输入与输出
l a.要想对文件进行读取,就需要一个用File对象构 造一个Scanner对象。比如: –Scanner in = new Scanner(new File(“myfile.txt”)); l
b.要想写入文件,就需要构造一个PrintWriter对象, 在构造器中,只需提供文件名: –PrintWriterout = new PrintWriter(“myfile.txt”)
3.8 控制流程
Java有5种语句: l
(1)方法调用语句 System.out.println(“Hello!”);
(2)表达式语句 x=23; i++;l
(3)复合语句p63 用{}把一些语句括起来就构成了一个语句。 { z=x+23; System.out.println(“Hello”); } l
(4)控制语句(程序控制流程由这些语言确定) if 、switch、for、while、do-while l
(5)packege语句和import语句
3.9大数值
(1)如果基本的整型和浮点型数据无法达到要求的精度, 那么可以使用java.math包中的两个类, BigInteger和BigDecimal。这两个类可以操作任 意长的数字。 l
(2)BigInteger类实现了任意精度的整数运算, BigDecimal实现了任意精度的浮点运算
3.10数组
l (1)数组是一种数据结构,它是有序数据的集合, 数组中的每个元素的数据类型都是相同的。
l (2)对元素的确定是由数组名和它的下标实现的, 如a[0]代表数组a的第一个元素,a[1]代表数组 a的第二个元素,依次类推
第二部分:实验部分
实验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掌握循环控制结构;
结果:
(2)测试BigIntegerTest.java,掌握大数值类的用法;
结果:
(3)测试LotteryDrawing.java,掌握数组的用法;
结果:
(4)测试CompoundInterest.java,掌握多维数组的用法;
结果:
(5)测试LotteryArray.java,掌握不规则数组的用法。
结果:
第三部分:实验总结:
在本周的学习中,首先我对java程序设计的基本知识有了初步的了解,知道了数据类型,变量,常量,运算符,字符串,数组等概念的涵义。在实验过程中,我也在老师的帮助下在Eclipse集成开发环境中对Java程序的编译进行了一些练习,并且初步接触了循环结构,数组等的用法。