20177100106《面向对象程序设计(java)》第二周学习总结
第一部分:理论知识学习部分
1.标识符:
① 标识符由字母、下划线、美元符号和数字组成, 且第一个符号不能为数字。
②标识符可用作: 类名、变量名、方法名、数组名、文件名等。
2. 注释:
Java有三种注释的方式:
① // 注释内容由//一直到此行结束。
② /*和*/ 定义一个注释块。
③ /**开始,*/结束 这种注释方法可用来自动产生文档。
3.数据结构:
(1) 整数类型:
①整型常量表示: 十进制:123, 6000
八进制:077, 065
十六进制:0x234, 0xab12
②整型变量的数据类型分为四种: int short long byte
③Java中整数的范围与运行Java代码的机器无关。
④Java中没有unsigned类型 。
(2)浮点类型:
①Java中有两种浮点类型: float double
②浮点常量的表示: 小数表示 430.2
科学计数 4.302E2
③表示溢出和出错的三种特殊的浮点数值: 正无穷大
负无穷大
NaN(非数字)
(3)布尔类型:
①常量 true、false
②变量的定义 boolean x; boolean x,y;
③定义同时可赋值 boolean x=true, y=false;
④在Java中,布尔值和整数不能相互转换。
4.变量初始化:
① 一个变量声明后,必须通过赋值语句对它进行明确的初始 化——永远不要使用一个未初始化的变量的值。
②在Java中,可以在代码的任何位置进行变量声明。变量的声明尽可能地靠近变量第一次使用的地方,这是一种良 好的程序编写风格。
③在Java中,不能在同一作用域内声明两个同名的变量。
5.各种运算符:
①算术运算符
②自增运算符与自减运算符
③关系运算符
④逻辑运算符
⑤位运算符
6. 数学函数与常量:
①数学函数包含在Math类中。
– 幂函数
– 三角函数
– 指数函数及它的反函数等
②Java还提供了两个常量。
– Math.PI
– Math.E
③若不想在数学方法名和常量名前加前缀 “Math.”,可在源文件顶部加上以下代码即可。
– import static java.lang.Math.*;
7.类型转化:
8.字符串:
①Java字符串是Unicode字符的序列,它是组织字符的基本数据结构,用法类似于字符数组。 ②有内置的字符串类型,而是在标准Java类库中提供了一 个Java预定义类String。
在Java中,字符串被当作对象来处理。
③程序中需要用到的字符串可以分为两大类:
创建之后不会再做修改和变动的不可变字符串String类;
创建之后允许再做更改和变化的构建字符串StringBuilder类。
9.字符串常量:
①使用“”定义字符串。
“abc”,“欢迎使用Java”都是字符串。
② Java会自动为字符串常量生成一个String类的对象,所以可以直接初始化String对象。
如:String s = “Hello world!”
10. String类
①使用“”定义字符串。
“abc”,“欢迎使用Java”都是字符串。
②Java会自动为字符串常量生成一个String类的对象, 所以可以直接初始化String对象。
如:String s = “Hello world!”
11.读取输入:
①通过控制台进行输入时,需要构造一个Scanner对象,并 与“标准输入流”System.in关联。 – Scanner in = new Scanner(System.in);
②由于Scanner类输入是可见的,所以不适用于从控制台读取密码。Java SE 6.0特别引入Console类实现这个目的。
12.格式化输出:
①使用System.out.print(x)将数值x输出到控制台上, 这条命令将以x对应的数据类型所允许的最大非0数字 位数打印输出x。
②Java SE 5.0沿用了C语言库函数中的printf方法, System.out.printf()。
用于printf的转换符
用于printf的标志
③ printf方法中日期和时间的格式化输出
日期和时间的转换符
13.文件输入与输出:
①要想对文件进行读取,就需要一个用File对象构 造一个Scanner对象。
比如: – Scanner in = new Scanner(new File(“myfile.txt”));
②要想写入文件,就需要构造一个PrintWriter对象,在构造器中,只需提供文件名:
– PrintWriter out = new PrintWriter(“myfile.txt”);
14. 几点注意:
①表达式值、常量i的值为整型,不能是字符串。
②常量i != 常量j
③执行:先计算表达式值,若与常量i相同,则 执行语句序列i;若都不相同,则执行语句序 列n+1。
④注意case子句后的break!!
15.循环语句:
循环语句分为三种: while
do-while
for
16.中断控制流程语句
①break 作用:结束整个循环的执行,转到下一语句。
②continue 作用:结束本次循环,开始下一次循环。
注意:(1)Java中没有goto语句!!!
(2)Java中提供了一种带标签的break语句, 用于跳出多重嵌套的循环语句。
17.返回语句:
①Java的返回语句与Java的方法紧密相关,当程序执行到此语句时,将立即返回上一级方法。
②格式:return value;
18.大数值:
①如果基本的整型和浮点型数据无法达到要求的精度,那么可以使用 java.math 包中的两个类,BigInteger和BigDecimal。这两个类可以操作任意长的数字。
②BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点运算。
19.数值:
①数组是一种数据结构,它是有序数据的集合,数组中的每个元素的数据类型都是相同的。 ②对元素的确定是由数组名和它的下标实现的,
如a[0]代表数组a的第一个元素,
a[1]代表数组 a的第二个元素,依次类推。
20.数组的声明:
①一维数组格式: 数组元素类型 数组名字[]; 数组元素类型[] 数组名字;
②二维数组格式: 数组元素类型 数组名字[][]; 数组元素类型[][] 数组名字;
③其中数组元素类型可以为Java中的任意类型,包括基 本类型和复合类型
21.一维数组的初始化:
①在声明数组的同时对数组的元素进行初始化,
例如: int[] smallPrimes = {2, 3, 5, 7, 11, 13};
②会自动按照所给的初值的个数,算出数组的长度, 并分配相应的空间。
③在Java中,可以初始化一个匿名数组。
例如: new int[] {17, 19, 23, 29, 31,37}
④使用这种语法形式可以在不创建新变量的情况下重新初始化一个数组。
例如: smallPrimes = new int[] {17, 19, 23, 29, 31,37};
22.多维数组的初始化:
①系统会自动根据初始值的大小计算出数组的大小。
例如:int[][] magicSquare={ {16, 3, 2, 13 }, {5, 10, 11, 8}, {9, 6, 7, 12}, {4, 15, 14, 1} };
②Java语言中,二维数组被看作数组的数组,把数组当作对象来处理。
23.多维数组:
①在程序设计时,如果需要存储二维表格数据,其中每个数据的类型是一样的,可采用二维数组。
②对二维数组的每个元素赋值一般是通过嵌套的二重循环来进行。
24.不规则则数组:
①Java可以使用不规则数组,即数组的每一行有不同的长度。
②在创建不规则数组时,从最高维开始分别为每一维数组分配空间。
例如:String a[][]=new String[2][];
a[0]=new String[2];
a[1]=new String[3];
a[0][0]=new String(“good”);
a[0][1]=new String(“luck”);
a[1][0]=new String(“to”);
a[1][1]=new String(“your”);
a[1][2]=new String(“family”);
25.数组总结:
①数组使用之前要确定大小,可以在程序中根据需要动态生成数组(如用表达式计算出大小)。
②BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。
③数组的属性—length : 数组元素的个数。
④Java中的数组作为一种对象类型,可以作为方法的参数,方法调用时传的是指向数组的引用。
⑤valueOf方法可以将普通的数值转化为大数值。
第二部分:实验部分
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掌握循环控制结构;
实验结果如下:
(2)测试BigIntegerTest.java,掌握大数值类的用法;
实验结果如下:
(3)测试LotteryDrawing.java,掌握数组的用法;
实验结果如下:
(4)测试CompoundInterest.java,掌握多维数组的用法;
实验结果如下:
(5)测试LotteryArray.java,掌握不规则数组的用法。
实验结果如下:
4.实验总结:
通过对第三章的学习我更加熟悉了Java编程的一些方式,和一些语法。并进一步熟悉了命令行方式下java程序开发的基本步骤;掌握Eclipse集成开发环境下导入Java源程序的过程;掌握Java语言构造基本程序的数据类型、变量、运算符、各类表达式、输入输出、流程控制的基本语法;而且掌握了String类、StringBuilder类数用法,另外还学会了一些处理大数值的方法。
总的来说第三章的知识点挺多的,尽管有一些东西我还不是很熟悉,后面我会继续学习课本知识,并做相应的编程。相信很快会完全掌握第三章的内容。