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

Posted tangyuechen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了201771010121 唐月晨 《面向对象程序设计(java)》第二周学习总结相关的知识,希望对你有一定的参考价值。

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

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

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

本章主要学习:基本内容;数据类型;变量;运算符;类型转换,字符串,输入输出,控制流程,大数值以及数组。

(一)基本内容:

    (1)标识符:由字母、下划线、美元符号、数字、汉字组成, 且第一个符号不能为数字。Eg:Hello,$842,项目,www_939。

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

     (2)关键字:  关键字就是Java语言中已经被赋予特定意义 的一些单词。 Eg:class、public、try、catch、if、 float、import、void等。 注意:关键字不做变量名    

      (3)注释:

 Java有三种注释的方式:

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

2. /*和*/ 定义一个注释块。

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

      (4)基本类型:

             Java共有8种基本类型

1.–整数类型(int、short、long、byte) –浮点类型(float、double) –字符类型(char)     –布尔类型(boolean)

其中整数类型中的byte以及布尔类型(Boolean)是Java中特有而C++没有的。Java中没有unsigned类型。

浮点类型中表示溢出和出错的三种特殊浮点数值:

    正无穷大;负无穷大;NAN(非数字)

浮点类型的数据在计算中应注意(p33-p34):

布尔类型中应注意:在Java中,布尔值和整数不能相互转换

  -字符类型(char):

(a)常量 ‘a’、‘A’ 、‘8’ 、‘?’

变量定义 char q; char c, type, cat;

定义同时可赋值 char c=‘a’, type, cat;

(b)字符集:Java采用unicode字符编码集,该编码集16 位,含有65536个字符。

(c)转义字符:前缀u表示Unicode值,而十六进制的4位数字则表明具体是哪个Unicode字符。 一些特殊字符的转义序列,eg:, ,\\等

3.变量

在Java中,每一个变量属于一种类型。在声明变量时,变量所属的类型位于变量名之前。

在Java中,一行可以声明多个变量。逐一声明每一个变量可以提高程序的可读性。

一个变量声明后,必须通过赋值语句对它进行明确的初始化。

注意:Java中,不能在同一作用域内声明两个同名的变量

常量:Java中使用final指示常量。习惯上常量名大写。

Eg:final  double CM_PER_INCH=2.54

    Final只能对变量赋一次只且不能更改。

类常量可用 static final声明:某个常量可以在一个类中的多个方法中使用。

4.运算符(与面向对象运算相关):

  Java提供的两个特别运算符:new(创建对象),Instanceof(返回一个布尔值来指出某个对象是否是一个特定类或者是它的子类的一个实例)。

  运算符的优先级:

5.类型转换(长字节向短字节转换):

 

  隐式类型转换:大多数的数值转换是遵循优先级的关系自动完成的。 转换原则如下: 如果两个操作数中有一个是double类型的,则另一个将 会转换成double类型。float、long型同理。否则,两个操作数都将转换成int类型。

6.字符串(Java中被当作对象处理):

String:不可变字符串

  (a)String类的串连接(+):

见实验2;

当连接一个字符串和一个非字符串时,后者将被转成字符串。

  (b)可以使用equals方法检测两个字符串是否相等。

如 s.equals(t);注意:s和t可以是字符串变量,也可以是字符串常量。

不能用==检测两个字符串是否相等,它只能确定两个字符串是否放在同一个位置上。

  (c)获得对象的字符串表示:所有的类都默认为是java.lang包中Object类的子类或间接子类----同族同宗,所有的类都可以享用一些基本功能。

StringBuilder:允许更改和变化的构建字符串StringBuilder

7.输入与输出

(a)通过控制台进行输入时,需要构造一个Scanner对象,并 与“标准输入流”System.in关联。Scanner类定义在java.util包中,因此使用时需将相应的包加载进来。

(b)要想对文件进行读取,就需要一个用File对象构 造一个Scanner对象。Eg:–Scanner  in = new Scanner(new File(“myfile.txt”));      

(c)要想写入文件,就需要构造一个PrintWriter对象, 在构造器中,只需提供文件名: –PrintWriterout = new PrintWriter(“myfile.txt”);

8.循环语句:while,do-while,for

 

第二部分:实验部分

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,掌握不规则数组的用法。

 技术分享图片

3. 实验总结:

 此章内容主要介绍了Java的基本程序设计结构,在这章的学习中,我学会了在elipse里添加注释,明确了数据类型、变量、运算符及字符串的转换以及使用。在这次的实验中,进一步熟悉使用了在命令行和JDK中执行程序的过程,学会了如何在elipse中导入文件,如何在Java中编写运算表达式,在理论的基础上动手实践,更清楚的明白了String类以及StringBuilder类的区别与转换。但是在大数值和数组方面的学习还不是很到位,一些程序语言及编写方法还没有弄明白,在这方面我会再多花些时间去搞明白它。

以上是关于201771010121 唐月晨 《面向对象程序设计(java)》第二周学习总结的主要内容,如果未能解决你的问题,请参考以下文章

BetaScrum meeting 1

《莫得感情的coder》Alpha冲刺Scrum meeting2

浅谈——面向对象

[6]面向对象编程

面向对象-1

面向对象和面向过程的区别