201871010135 张玉晶 《面向对象程序设计(java)》第二周学习总结
项目 |
内容 |
这个作业属于哪个课程 |
https://www.cnblogs.com/nwnu-daizh/ |
这个作业的要求在哪里 |
https://www.cnblogs.com/nwnu-daizh/p/11475377.html |
作业学习目标 |
1.适应老师教学方式,能按照自主学习要求完成本周理论知识学习; 2.掌握Java Application程序结构; 3.掌握Java语言的数据类型与变量; 4.学会使用Java运算符构造各类表达式; 5.掌握Java Application输入输出技术; 6.掌握Java流程控制技术(分支、循环);(重点) 7.掌握Math类、String类的用法。(难点)
|
第一部分:结合Java和C基础语法的异同比较,总结本周理论知识。
一.基本知识
1.标识符 标识符由字母、下划线、美元符号和数字组成,且第一个符号不能为数字
下列都是合法标识符: Hello、$1234、程序名、www_123
标识符可用作: 类名、对象名、变量名、方法名、数组名、文件名等。
在C语言中没有美元符号,而在JAVA中有。
2. 关键字 关键字就是Java语言中已经被赋予特定意义的一些单词。
常见有:class、public、try、catch、if、float、import、void等。
关键字不做变量名。
3 .注释
Java有三种注释的方式:
1). // 注释内容由//一直到此行结束。
2). /*和*/ 定义一个注释块。
3). /**开始,*/结束 这种注释方法可用来自动产生文档。
二. 数据类型
Java是一种强类型语言。这意味着每一个变量必须声明一种为类型。
Java共有8种基本类型
整数类型(int、short、long、byte)
浮点类型(float、double)
字符类型 (char)
布尔类型(boolean )
1.整型常量表示:
十进制:123, 6000
八进制:077, 065
十六进制:0x234, 0Xab12
二进制:0b1001,0B0111
整型变量的数据类型分为四种:
int short long byte
Java中整数的范围与运行Java代码的机器无关。 Java中没有unsigned类型 。
对于int型变量,内存分配个4字节,占32位,取值范围-(2^31) ~ (2^31)-1.
对于short型变量,内存分配2个字节,占16位,取值范围-(2^15) ~(2^15)-1.
对于long型变量,内存分配8个字节,占64位,取值范围-(2^63) ~(2^63)-1.
对于byte型变量,内存分配个1字节,占8位,取值范围-(2^7) ~ (2^7)-1.
2 浮点类型
Java中有两种浮点类型: float double
浮点常量的表示: 小数表示 430.2
科学计数 4.302E2
表示溢出和出错的三种特殊的浮点常量:
正无穷大——Double.POSITIVE_INFINITY
负无穷大——Double.NEGATIVE_INFINITY
NaN(非数字)——Double.NaN
对于float型变量内存分配4个字节,占32位
对于double型变量内存分配8个字节,占64位。
3.字符型
char c='a';
4 布尔类型
常量 true、false
定义同时可赋值
boolean x=true, y=false;
在Java中,布尔值和整数不能相互转换。
5.变量
在Java中,每一个变量属于一种类型。在声明变量时,变量所属的类型位于变量名之前。 在Java中,不能在同一作用域内声明两个同名的变量。
变量初始化 :一个变量声明后,必须通过赋值语句对它进行明确的初始化——永远不要使用一个未初始化的变量值。
6.常量
常量的定义: 在Java中,使用关键字final来指示常量。习惯上常量名都用大写。关键字final表示只能对变量赋一次值,其值一旦设定,便不能改。
final double CM_PER_INCH=2.54;
在Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量。可以使用关键字static final声明一个类常量(class constants)。
public static final double CM_PER_INCH=2.54;
7.运算符
1. new这是一个用来创建对象的运算符。
Instanceof返回一个布尔值来指出某个对象是否是一个特定类或者是它的子类的一个实例。
2.优先级
8.数学函数与常量
数学函数包含在Math类中。 幂函数,三角函数,指数函数及它的反函数等
Java还提供了两个常量。 Math.PI , Math.E
若不想在数学方法名和常量名前加前缀“Math.”,可在源文件顶部加上以下代码即可。
import static java.lang.Math.*;
三.类型转换
1 .隐式类型转换 大多数的数值转换是遵循优先级的关系自动完成的。
2.强制类型转换
四。字符串
1)Java字符串是Unicode字符的序列,它是组织字符的基本数据结构,用法类似于字符数组。
2)有内置的字符串类型,在标准Java类库中提供了一个Java预定义类String。在Java中,字符串被当作对象来处理。
3)程序中需要用到的字符串可以分为两大类:
4)创建之后不会再做修改和变动的不可变字符串String类;
5)创建之后允许再做更改和变化的构建字符串StringBuilder类。
1 .String类:(1) 获得字符串的子串 (2) 串连接 (3)获取字符串的长度 使用String 类中的length()方法可以获取一个字符串的长度。 (4) 检测字符串是否相等 (5) 字符串检索 (6) 字符串数字与数值的转化 (7) 获得对象的字符串表示
2.String类的API及文档
String类中包含各类字符串处理的50多个方法;
使用JDK在线API文档可以查阅所有标准类及其方法。
五.输入输出
1. 输入 通过控制台进行输入时,需要构造一个Scanner对象,并与“标准输入流”System.in关联。 Scanner in = new Scanner(System.in);
2.输出 使用System.out.print(x)将数值x输出到控制台上。
3.文件输入与输出
要想对文件进行读取,就需要一个用File对象构造一个Scanner对象。比如:Scanner in = new Scanner(new File(“myfile.txt”));
要想写入文件,就需要构造一个PrintWriter对象,在构造器中,只需提供文件名:PrintWriter out = new PrintWriter(“myfile.txt”);
PrintWriter out = new PrintWriter(“myfile.txt”);
六. 控制流程
Java有5种语句:
1)方法调用语句 System.out.println(“Hello!”); 2)表达式语句 3) 复合语句 4)控制语句 5)packege语句和import语句
七.
9. 大数值
a)如果基本的整型和浮点型数据无法达到要求的精度,可以使用java.math包中的两个类, BigInteger和BigDecimal。
b)这两个类可以操作任意长的数字
BigInteger类实现了任意精度的整数运算
BigDecimal实现了任意精度的浮点运算
10.数组
(1)数组的声明
a)一维数组格式:
数组元素类型 数组名字[];
数组元素类型[] 数组名字;
b)二维数组格式:
数组元素类型 数组名字[][];
数组元素类型[][] 数组名字;
d)其中数据类型可以为java中的任意类型,包括基本类型和复合类型。
e)也可用定义的类来声明数组;
Point[] line;
f)java在数组声明时并不为数组分配内存,在java中,数组是独立的类,有自身的办法。
(2)数组的创建
数组声明后,要用new运算符为其分配内存空间,分配内存空间时必须指明数组的长度。
数组名字=new 数组元素类型[个数]
第二部分:实验部分
实验名称:实验二 Java基本程序设计(1)
1. 实验目的:
(1)进一步熟悉命令行和IDE两种方式下java程序开发的基本步骤;
(2)掌握Eclipse集成开发环境下导入Java源程序的过程;
(3)掌握Java语言构造基本程序的数据类型、变量、运算符、各类表达式、输入输出、流程控制的基本语法;
(4)掌握Math类、String类、StringBuilder类的用法。
2.实验内容与步骤:
实验1 程序互评
通过此次互评,我将九九乘法表的代码已经很熟悉了,也掌握了。在互评过程中,从同学们犯的错误中我也更加注意了这些细节,以后我也会多多注意。
实验2 :编写包含以下代码片段的java应用程序,输出字符串类对象s3的值。
1)实验代码如下:
2)运行结果如下:
实验3: 更改实验2中s1、s2、s3为StringBuilder类对象,观察程序运行结果并与实验2结果进行对比,理解String类对象与StringBuilder类对象的区别。
1)程序代码如下:
2)程序运行结果如下
实验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的内容,掌握文件的输入输出操作。
1)运行结果如下:
实验7:按照实验5的操作步骤,导入第3章3-3——3-4示例程序,掌握两个程序循环控制结构的用途。
1)程序3-3 运行结果
2)程序3-4 运行结果
实验8:按照实验5的操作步骤,导入第3章3-5示例程序,理解抽奖概率计算算法。
1)程序3-5运行结果
实验总结:
1)通过本次实验,我进一步熟悉了命令行和IDE两种方式下JAVA程序开发的基本步骤,知道了字符串类的部分用法,理解了String和StringBuilder的区别与联系,知道了如何检测字符串是否相等,字符串的连接,构建字符串,也明白了如何更好的利用使用String,以及如何导入程序。学习了JAVA语言构造基本程序的数据类型,变量,运算符,各类表达式,输入输出,以及流程控制的基本语法。
2)通过老师和助教的帮助,我解决了很多问题。在接下来的学习过程中我会认真的看待问题,不懂就问,继续努力。