201771010108《面向对象程序设计(java)》第二周学习总结

第一部分:理论知识学习部分

第三章:Java的基本程序设计结构

1.标识符:① 标识符由字母、下划线、美元符号和数字组成, 且第一个符号不能为数字。

②标识符可用作: 类名、变量名、方法名、数组名、文件名等。

2. 关键字:①关键字就是Java语言中已经被赋予特定意义 的一些单词。

②常见有:class、public、try、catch、if、 float、import、void等。

③关键字不做变量名。

3. 注释:Java有三种注释的方式:

① // 注释内容由//一直到此行结束。

② /*和*/ 定义一个注释块。

③ /**开始,*/结束 这种注释方法可用来自动产生文档。

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中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(“!”);

}

}

①新建一个文本文档,并将下图代码复制到文本中,并将其保存到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类、数组类的用法。

如果第一、二章主要是给我们介绍怎样做,那么我认为第三章是重点给我们讲做什么,有的实验我觉得自己只是单纯的把它做了出来,并不是很理解它的代码的具体含义,并且Java语言的语法很多,也不是可以一下子就记住的,我会在今后的学习中注意语法的正确使用,感谢老师,助教和同学们的帮助。

201771010108-韩腊梅《面向对象程序设计(java)》第二周学习总结的更多相关文章

  1. 20172325 2018-2019-1 《Java程序设计》第二周学习总结

    20172325 2018-2019-1 <Java程序设计>第二周学习总结 教材学习内容总结 3.1集合 集合是一种聚集.组织了其他对象的对象.集合可以分为两大类:线性集合和非线性集合. ...

  2. 20172321 2017-2018-2 《Java程序设计》第二周学习总结

    20172321 2017-2018-2 <Java程序设计>第二周学习总结 教材学习内容总结 第一章要点: 要点1 字符串:print和println用法的区别,字符串的拼接,java中 ...

  3. 20145326《Java程序设计》第二周学习总结

    20145326<Java程序设计>第二周学习总结 教材学习内容总结 本周学习教材第三章,本章主要讲述了java语言中的一些基础语法,java是个支持面向对象的程序语言,但在正式进入面向对 ...

  4. 20155213 2016-2017-2 《Java程序设计》第二周学习总结

    20155213 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 关于Unicode和UTF 很抱歉,没能读完娄老师推荐的网址,关于Unicode和UTF的介 ...

  5. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  6. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  7. 《Java程序设计》第二周学习总结

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

  8. 20155304田宜楠 2006-2007-2 《Java程序设计》第二周学习总结

    20155304田宜楠 2006-2007-2 <Java程序设计>第二周学习总结 教材学习内容总结 一.类型与变量 1.类型 整数: 可细分为为short整数(占2字节),int整数(占 ...

  9. 201521123038 《Java程序设计》 第二周学习总结

    201521123038 <Java程序设计> 第二周学习总结 1.本章学习总结 学会在Java程序中使用函数,使程序层次更清晰 使用StringBuilder编写代码,减少内存空间的占用 ...

  10. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

随机推荐

  1. web前端问题整理

    1.常用那几种浏览器测试?有哪些内核(Layout Engine)? (Q1)浏览器:IE,Chrome,FireFox,Safari,Opera (Q2)内核:Trident,Gecko,Prest ...

  2. MySQL的万字总结(缓存,索引,Explain,事务,redo日志等)

    hello,小伙伴们,好久不见,MySQL系列停更了差不多两个月了,也有小伙伴问我为啥不更了呢?其实我去看了MySQL的全集,准备憋个大招,更新篇长文(我不会告诉你是因为我懒的). 好了,话不多说,直 ...

  3. 实验三——NFS服务器配置

    实验三——NFS服务器配置 实 验 基 本 信 息 实验名称:NFS服务器配置(3学时) 实验时间:    年 月 日 实验地点:   信工606实验室 同组同学: 实验目的: 了解NFS服务的基本原 ...

  4. Python模块一

    logging模块 我们来说一下这个logging模块,这个模块的功能是记录我们软件的各种状态,你们现在和我一起找到红蜘蛛的那个图标,然后右键找一找是不是有个错误日志.其实每个软件都是有错误日志的,开 ...

  5. 【5min+】 一个令牌走天下!.Net Core中的ChangeToken

    系列介绍 [五分钟的dotnet]是一个利用您的碎片化时间来学习和丰富.net知识的博文系列.它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net ...

  6. 1.JVM中的五大内存区域划分详解及快速扫盲

    本博客参考<深入理解Java虚拟机>这本书 视频及电子书详见:https://shimo.im/docs/HP6qqHx38xCJwcv9/ 一.快速扫盲 1. JVM是什么   JVM是 ...

  7. 建议5:防止switch贯穿

    switch语句,除非明确地中断流程,否则每次条件判断后都贯穿到下一个case条件.例如 switch(expression){ case label1: statementList1 case la ...

  8. LeetCode43,一题让你学会高精度算法

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode系列第22篇文章,今天讲的内容是高精度算法. 今天和大家讨论的算法是高精度,对应的LeetCode是第43题.题面其实 ...

  9. datetime和time

    datetime和time 1.datetime模块 import datetimenow = datetime.datetime.now() #时间对象print(now,type(now))pri ...

  10. mysql两表合并,对一列数据进行处理

    加班一时爽,一直加班~一直爽~  欢迎收看http://www.996.icu/ 今天弄了下MySQL中两表合并的并且要处理一列数据,这列数据原来都是小写字母,处理时将这列数据改成驼峰命名的~~ 基本 ...