201771010108《面向对象程序设计(java)》第二周学习总结java
第一部分:理论知识学习部分算法
第三章:Java的基本程序设计结构数组
1.标识符:① 标识符由字母、下划线、美圆符号和数字组成, 且第一个符号不能为数字。数据结构
②标识符可用做: 类名、变量名、方法名、数组名、文件名等。app
2. 关键字:①关键字就是Java语言中已经被赋予特定意义 的一些单词。函数
②常见有:class、public、try、catch、if、 float、import、void等。学习
③关键字不作变量名。测试
3. 注释:Java有三种注释的方式:ui
① // 注释内容由//一直到此行结束。spa
② /*和*/ 定义一个注释块。
③ /**开始,*/结束 这种注释方法可用来自动产生文档。
4.数据结构:
①Java是一种强类型语言。这意味着每个变量必 须声明一种为类型。
②Java共有8种基本类型
– 整数类型(int、short、long、byte)
– 浮点类型(float、double)
– 字符类型 (char)
– 布尔类型(boolean)
5. 整数类型:
①整型常量表示: 十进制:123, 6000
八进制:077, 065
十六进制:0x234, 0xab12
②整型变量的数据类型分为四种: int short long byte
③Java中整数的范围与运行Java代码的机器无关。
④Java中没有unsigned类型 。
6.浮点类型:
①Java中有两种浮点类型: float double
②浮点常量的表示: 小数表示 430.2
科学计数 4.302E2
③表示溢出和出错的三种特殊的浮点数值: 正无穷大
负无穷大
NaN(非数字)
7.布尔类型:
①常量 true、false
②变量的定义 boolean x; boolean x,y;
③定义同时可赋值 boolean x=true, y=false;
④在Java中,布尔值和整数不能相互转换。
8.变量初始化:
① 一个变量声明后,必须经过赋值语句对它进行明确的初始 化——永远不要使用一个未初始化的变量的值。
②在Java中,能够在代码的任何位置进行变量声明。变量的声明尽量地靠近变量第一次使用的地方,这是一种良 好的程序编写风格。
③在Java中,不能在同一做用域内声明两个同名的变量。
9.各类运算符:
①算术运算符
②自增运算符与自减运算符
③关系运算符
④逻辑运算符
⑤位运算符
10. 数学函数与常量:
①数学函数包含在Math类中。
– 幂函数
– 三角函数
– 指数函数及它的反函数等
②Java还提供了两个常量。
– Math.PI
– Math.E
③若不想在数学方法名和常量名前加前缀 “Math.”,可在源文件顶部加上如下代码便可。
– import static java.lang.Math.*;
11.类型转化:
12.字符串:
①Java字符串是Unicode字符的序列,它是组织字符的基本数据结构,用法相似于字符数组。 ②有内置的字符串类型,而是在标准Java类库中提供了一 个Java预约义类String。
在Java中,字符串被看成对象来处理。
③程序中须要用到的字符串能够分为两大类:
– 建立以后不会再作修改和变更的不可变字符串String类;
– 建立以后容许再作更改和变化的构建字符串StringBuilder类。
13.字符串常量:
①使用“”定义字符串。
– “abc”,“欢迎使用Java”都是字符串。
② Java会自动为字符串常量生成一个String类的对象,因此能够直接初始化String对象。
如:String s = “Hello world!”
14. String类
①使用“”定义字符串。
– “abc”,“欢迎使用Java”都是字符串。
②Java会自动为字符串常量生成一个String类的对象, 因此能够直接初始化String对象。
如:String s = “Hello world!”
15.读取输入:
①经过控制台进行输入时,须要构造一个Scanner对象,并 与“标准输入流”System.in关联。 – Scanner in = new Scanner(System.in);
②因为Scanner类输入是可见的,因此不适用于从控制台读取密码。Java SE 6.0特别引入Console类实现这个目的。
16.格式化输出:
①使用System.out.print(x)将数值x输出到控制台上, 这条命令将以x对应的数据类型所容许的最大非0数字 位数打印输出x。
②Java SE 5.0沿用了C语言库函数中的printf方法, System.out.printf()。
– 用于printf的转换符
– 用于printf的标志
③ printf方法中日期和时间的格式化输出
– 日期和时间的转换符
17.文件输入与输出:
①要想对文件进行读取,就须要一个用File对象构 造一个Scanner对象。
好比: – Scanner in = new Scanner(new File(“myfile.txt”));
②要想写入文件,就须要构造一个PrintWriter对象,在构造器中,只需提供文件名:
– PrintWriter out = new PrintWriter(“myfile.txt”);
18. 几点注意:
①表达式值、常量i的值为整型,不能是字符串。
②常量i != 常量j
③执行:先计算表达式值,若与常量i相同,则 执行语句序列i;若都不相同,则执行语句序 列n+1。
④注意case子句后的break!!
19.循环语句:
循环语句分为三种: while
do-while
for
20.中断控制流程语句
①break 做用:结束整个循环的执行,转到下一语句。
②continue 做用:结束本次循环,开始下一次循环。
注意:(1)Java中没有goto语句!!!
(2)Java中提供了一种带标签的break语句, 用于跳出多重嵌套的循环语句。
21.返回语句:
①Java的返回语句与Java的方法紧密相关,当程序执行到此语句时,将当即返回上一级方法。
②格式:return value;
22.大数值:
①若是基本的整型和浮点型数据没法达到要求的精度,那么可使用 java.math 包中的两个类,BigInteger和BigDecimal。这两个类能够操做任意长的数字。
②BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点运算。
23.数值:
①数组是一种数据结构,它是有序数据的集合,数组中的每一个元素的数据类型都是相同的。 ②对元素的肯定是由数组名和它的下标实现的,
如a[0]表明数组a的第一个元素,
a[1]表明数组 a的第二个元素,依次类推。
24.数组的声明:
①一维数组格式: 数组元素类型 数组名字[]; 数组元素类型[] 数组名字;
②二维数组格式: 数组元素类型 数组名字[][]; 数组元素类型[][] 数组名字;
③其中数组元素类型能够为Java中的任意类型,包括基 本类型和复合类型
25.一维数组的初始化:
①在声明数组的同时对数组的元素进行初始化,
例如: 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};
26.多维数组的初始化:
①系统会自动根据初始值的大小计算出数组的大小。
例如:int[][] magicSquare={ {16, 3, 2, 13 }, {5, 10, 11, 8}, {9, 6, 7, 12}, {4, 15, 14, 1} };
②Java语言中,二维数组被看做数组的数组,把数组看成对象来处理。
27.多维数组:
①在程序设计时,若是须要存储二维表格数据,其中每一个数据的类型是同样的,可采用二维数组。
②对二维数组的每一个元素赋值通常是经过嵌套的二重循环来进行。
28.不规则则数组:
①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”);
29.数组总结:
①数组使用以前要肯定大小,能够在程序中根据须要动态生成数组(如用表达式计算出大小)。
②一旦生成数组,大小不可改变。Java不支持变长数组。
③数组的属性—length : 数组元素的个数。
④Java中的数组做为一种对象类型,能够做为方法的参数,方法调用时传的是指向数组的引用。
⑤ArrayIndexOutOfBoundsException异常。
第二部分:实验部分
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) |
①新建一个Java项目,再建一个类,以下图所示:
②输入实验一的程序,如图所示:
③实验结果以下图所示:
实验2:编写包含如下代码片断的java应用程序,输出字符串类对象s3的值。
String s1=“Hello!”; String s2=“World”; String s3=s1+s2; |
①作该实验能够将上个实验的代码前加//,但这仅仅是一种知识,不建议新学者使用,以下图:
②实验二的代码以下图所示:
③实验结果以下图所示:
实验3:更改实验2中s一、s二、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(“!”); } } |
①新建一个文本文档,并将下图代码复制到文本中,并将其保存到d盘中,命名为Message.java
②在命令提示符中运行结果以下所示:
实验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的内容,掌握文件的输入输出操做。
①输出导入结果以下图所示:
②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,掌握不规则数组的用法。
实验结果以下图所示:
第三部分:实验总结
这是第二次Java做业,与第一次相比熟悉了不少,大多程序均可以本身独立操做,但在程序代码的理解上仍是存在较大的疑惑。经过此次实验,我进一步熟悉了命令行和IDE两种方式下java程序开发的基本步骤,也大体上掌握了Eclipse集成开发环境下导入Java源程序的过程以及Java语言构造基本程序的数据类型、变量、运算符、各种表达式、输入输出、流程控制的基本语法,也了脚了String类、StringBuilder类、数组类的用法。
若是第1、二章主要是给咱们介绍怎样作,那么我认为第三章是重点给咱们讲作什么,有的实验我以为本身只是单纯的把它作了出来,并非很理解它的代码的具体含义,而且Java语言的语法不少,也不是能够一会儿就记住的,我会在从此的学习中注意语法的正确使用,感谢老师,助教和同窗们的帮助。