李晓菁201771010114《面向对象程序设计(Java)》第二周学习总结
第三章学习总结
第一部分:理论知识
主要内容:标识符,关键字,注释,数据类型,变量,运算符,类型转换,字符串,输入输出,控制流程,大数值,数组
一:1.标识符
标识符由字母下划线美元符号和数字数字组成,且第一个符号不能为数字,标识符可用作类名,变量名,方法名,数组名,文件名。
2.关键字
关键字就是在Java语言中已经被赋予特定意义的一些单词,常见有class,public,try,catch等等,注意:关键字不做变量名。
3.注释
Java有三种注释方法 //:注释内容由//一直到该行结束;/*和*/:定义一个注释块;/**开始*/结束:可用来自动生成文档。
二.数据类型(大多数的数据类型已在C语言中学习过)
1.整数类型:(int,short,long,byte)
byte型:对于byte型变量,内存分配各一个字节,占8位,取值范围-2^7——2^7-1
2.浮点类型:(float,double)
表示溢出和出错的三种特殊的浮点数值
正无穷大,负无穷大,NAN(非数字)
3.字符类型:(char)
字符集:Java采用unicode字符编码集,该编码集16位,含65536个字符。
Unicode(万国码)是一个编码规范,为解决传统字符编码方案局限产生,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言跨平台进行文本转换,处理的
要求。
4.布尔类型:(boolean)
有两个常量false,true。在Java中布尔值和整数值不能互换。
在此不再整理C语言中学习过的数据类型
三:变量
1.在Java中,每一种变量属于一种类型,在声明变量时,变量所属的类型位于变量名之前。如:double salary
在Java中,一行可以声明多个变量,注意声明每个变量,可提高程序的可读性。
2.变量初始化 一个变量声明后,必须通过赋值语句对它进行明确的初始化——永远不要使用一个未初始化变量的值。
在Java中,可以在代码任何位置进行变量的声明。
在Java中,不能在同一作用域内声明两个同名的变量。
3.常量的定义
在Java中,使用关键字final来指示常量,习惯上常量名都用大写。
关键字final表示只能对变量赋一次值,其值一旦设定,便不能修改。
在Java中,经常希望某个常量可以在一个类的多个方法中使用,通常将这些常量称为类常量,可以使用关键字ststic final声明一个类常量。
四.运算符
1.各种运算符:算术运算符,自增运算符与自减运算符,关系运算符,逻辑运算符,位运算符。
Java提供一个特别的运算符new(与面向对象运算有关)——这是一个用来创建对象的运算符。
Java了另外一个特别的运算符instanceof——返回一个布尔值来指出某个对象是否是一个特定类或是它的一个子类的一个实例。
2.运算符的优先级与结合性
3.数学函数与常量
数学函数包含在math类中,Java还提供了两个常量math.PI, math.E
五.类型转换
1.隐式类型转换 大多数的隐式转换是遵循优先级的关系自动完成的。
转换原则如下:如果两个操作数中有一个是double类型的,则另一个也会转换成double类型。
否则,如果两个操作数类型中有一个是float类型的,另一个也会转换成float类型。
否则,如果两个操作数类型是long类型的,另一个也会转换成long类型。
否则,两个操作数都会转换成int型。
2.强制类型转换
强制类型转换的语法:(目标类型)变量名
在进行强制转换时当心数据丢失。
六.字符串
Java字符串是Unicode字符的序列,它是组织字符的基本数据结构,用法类似于字符数组。
有内置的字符串类型,是在标准Java类库中提供了一个Java预定义类String,在Java中,字符串被当做对象来处理。
1.程序中需要用到的字符串可分为两大类:
创建之后不会再做修改和变动的不可变字符串string类;
创建之后允许再做更改和变化的构建字符串stringbuilder类。
2.字符串常量
使用“”定义字符串,Java会自动为字符串常量生成一个string类对象,所以可以直接初始化string对象。
3.string类:
string类的构造方法:创建string的一个对象并进行初始化,需要调用类string的构造方法。主要有一下创造方法:
string():创建一个空串
string(string value)
string(char value[])等等
string类的基本操作:
(1)获得字符串的子串
(2)串连接(+)
(3)获取字符串的长度
(4)检测字符串是否相等
(5)字符串检索
(6)字符串与数值的转化
(7)获得对象的字符串表示
4.string类的API及文档
string类中包含各类字符串处理的50多个方法;
5.stringbuilder类字符串
如果需要多个小段字符串连接创建一个字符串时,每次连接字符串时,都会构建一个新的string对象,既耗时,又浪费空间,使用stringbuilder类就可以避免这个问题的发生。
七.输入和输出
1.读取输入:通过控制台进行输入时,需要构造一个Scanner对象,并与“标准输入流”System.in关联。
Scanner类定义在Java.util包中,因此使用时需将相应的包加载进来。
由于Scanner类输入是可见的,所以不适用于从控制台读取密码。
2.格式化输出
使用System.out.print(x)将数值输出到控制台上,这条命令将以x对应的数据类型所用徐的最大非0数字位数打印输出x。
3.文件输入与输出
要想对文件进行读取,就需要一个用File对象构造一个Scanner对象。比如:-Scanner in=new Scanner(new File("myfile.txt"));
要想写入文件,就需要构造一个PrintWriter对象,在构造器中,只需提供文件名:-Printwrite out=new Printwrite("myfile.txt");
第二部分:实验部分
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(“!”); } } |
该程序在eclipse软件下运行结果为
实验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,掌握不规则数组的用法。
实验总结:通过此次实验,首先我学会了如何在eclipse环境下导入示例程序,其次,在实验二和实验三中搞清楚了string和stringbuilder类对象的区别,通过对示例程序的运行以及语句理解,基本掌握了循环控制结构和常用各类数组的用法,在实验过程中我也意识到自己的不足之处:理解代码的意义有困难,但我会在今后的学习中抓紧赶上在C语言中的欠缺,并能很好的理解程序语句的含义,这样才能以自己的思维写出可运行有意义的程序。