201871010128-杨丽霞《面向对象程序设计(java)》第二周学习总结

项目

内容

这个作业属于哪个课程

<https://www.cnblogs.com/nwnu-daizh/>

这个作业的要求在哪里

https://www.cnblogs.com/nwnu-daizh/p/11475377.html

作业学习目标

  1. 1.适应老师教学方式,能按照自主学习要求完成本周理论知识学习;
  2. 2.掌握Java Application程序结构;
  3. 3.掌握Java语言的数据类型与变量;
  4. 4学会使用Java运算符构造各类表达式;
  5. 5.掌握Java Application输入输出技术;
  6. 6.掌握Java流程控制技术(分支、循环);(重点)
  7. 7.掌握Math类、String类的用法。(难点)

第一部分:结合Java和C基础语法的异同比较,总结本周理论知识

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

3.1 基本知识

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

下列都是合法标识符: Hello、$1234、程序名、www_123

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

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

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

关键字不做变量名。

(3)Java有三种注释的方式:

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

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

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

3.2 数据类型

Java共有8种基本类型

–整数类型(int、short、long、byte)

–浮点类型(float、double)

–字符类型 (char)

–布尔类型(boolean )

整型常量表示: 十进制:123, 6000 八进制:077, 065

十六进制:0x234, 0Xab12 二进制:0b1001,0B0111

整型变量的数据类型分为四种: int short long byte

Java中整数的范围与运行Java代码的机器无关。 Java中没有unsigned类型

对于int型变量,内存分配个4字节,占32位,取值范围-231~231-1。

对于short型变量,内存分配2个字节,占16位,取值范围-215~215-1。

对于long型变量,内存分配8个字节,占64位,取值范围-263~263-1。

对于byte型变量,内存分配个1字节,占8位,取值范围-27~27-1

3.3 变量

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

double salary;

int vacationDays;

long earthPopulation;

boolean done;

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

变量的初始化

(1)一个变量声明后,必须通过赋值语句对它进行明确的初始化——永远不要使用一个未初始化的变量的值。

(2)在Java中,可以在代码的任何位置进行变量声明。变量的声明应该尽可能地靠近变量第一次使用的地方,方便阅读和使用。

(3)在Java中,不能在同一作用域内声明两个同名的变量。

常量的定义

(1)在Java中,使用关键字final来指示常量。习惯上常量名都用大写。

final double CM_PER_INCH=2.54;

(2)关键字final表示只能对变量赋一次值,其值一旦设定,在后续代码中不能再对其进行修改。

(3)在Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量。可以使用关键字 static final 声明一个类常量( class constants)。

public static final double CM_PER_INCH

3.4运算符

各种运算符 :与面向对象运算有关

new  -用来创建一个对象的运算符。

Instanceof -返回一个布尔值来指出某个对象是否是一个特定类或者是它的子类的一个实例。 

运算符的优先级与结合性

数学函数与常量

数学函数包含在Math类中。

-幂函数,三角函数,指数函数以及其他反函数等。

Java还提供了两个常量。

-Math.PI    -Math.E

若不想在数学方法名和常量名前加前缀"Math.",可以在源文件顶部加上以下代码:-impot static java.lang.Math.*;

3.5类型转换

(1)隐式类型转换
大多数的数值转换是遵循优先级的关系自动完成的。 
转换原则如下: 
如果两个操作数中有一个是double类型的,则另一个将会转换成double类型。 
否则,如果两个操作数中有一个是float类型的,另一个将会转换成float类型。 
否则,如果两个操作数中有一个是long类型的,另一个将会转换成long类型。 
否则,两个操作数都将转换成int类型
(2) 强制类型转换
强制类型转换的语法: 
(目标类型)变量名 
在进行强制类型转换时,当心丢失数据。

例1:double x=9.987;

int nx=(int) x; //转换后 nx=9

3.6字符串

Java字符串是Unicode字符的序列,它是组织字符的基本数据结构,用法类似于字符数组。有内置的字符串类型,而是在标准Java类库中提供了一个Java预定义类String。在Java中,字符串被当作对象来处理。

程序中需要用到的字符串可以分为两大类:

创建之后不会再做修改和变动的不可变字符串String类;

创建之后允许再做更改和变化的构建字符串StringBuilder类。

3.7输入输出

(1)通过控制台进行输入时,需要构造一个Scanner对象,并与“标准输入流”System.in关联。

(2)使用System.out.print(x)将数值x输出到控制台上,这条命令将以x对应的数据类型所允许的最大非0数字位数打印输出x。

3.8控制流程

控制语句

if、switch、for、while、do-while

Package语句和import语句

3.9大数值

如果基本的整型和浮点型数据无法达到要求的精度,可以使用java.math包中的两个类, BigInteger和BigDecimal。

这两个类可以操作任意长的数字

BigInteger类实现了任意精度的整数运算

BigDecimal实现了任意精度的浮点运算

3.10数组

(1)数组是一种数据结构,它是有序数据的集合,

数组中的每一个元素的数据类型都是相同的。

(2)数组的声明

一维数组格式:

数组元素类型    数组名字[];

数组元素类型[]  数组名字;

二维数组格式:

数组元素类型    数组名字[][];

数组元素类型[][]   数组名字;

其中数据类型可以为java中的任意类型,包括基本类型和复合类型。

也可用定义的类来声明数组;

Point[] line;

f)java在数组声明时并不为数组分配内存,在java中,数组是独立的类,有自身的办法。

(3)数组的创建

数组声明后,要用new运算符为其分配内存空间,分配内存空间时必须指明数组的长度。 数字数组创建后,所有数组元素自动初始化为0;boolean数组创建后数组元素初始化为false;对象数组初始化为null. 数组创建后不能再更改大小。

(4)数组的操作

数组拷贝
数组排序

第二部分:实验部分

实验名称:实验二 Java基本程序设计(1)

1.  实验目的:

(1)进一步熟悉命令行和IDE两种方式下java程序开发的基本步骤;

(2)掌握Eclipse集成开发环境下导入Java源程序的过程;

(3)掌握Java语言构造基本程序的数据类型、变量、运算符、各类表达式、输入输出、流程控制的基本语法;

(4)掌握Math类、String类、StringBuilder类的用法。

3. 实验步骤与内容:

实验1 程序互评(10分)

程序互评这个环节通过对同学程序的批阅,去发现问题,并且反思自己是否存在同样的问题,清楚每行代码所表示的意思,注意程序的易错点,使我们对程序的整体框架和内容有了更深的理解。

实验2 编写包含以下代码片段的java应用程序,输出字符串类对象s3的值。(5分)

String s1=“Hello!”;

String s2=“World”;

String s3=s1+s2;

 运行结果

实验3更改实验2中s1、s2、s3为StringBuilder类对象,观察程序运行结果并与实验2结果进行对比,理解String类对象与StringBuilder类对象的区别 (5分)

实验4 在命令行方式下调试运行下列程序,理解java应用程序命令行参数的用法。(5分)

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 java程序导入(5分)

(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章3-3——3-4示例程序,掌握两个程序循环控制结构的用途。(5分)

3-3运行结果

3-4运行结果

实验8 按照实验5的操作步骤,导入第3章3-5示例程序,理解抽奖概率计算算法。(5分)
3-5示例

4. 实验总结:(10分)
 这一周学习,接触到java命令行和IDE两种方式下java程序开发的步骤,Eclispe集成开发环境下导入java源程序,java语言构造基本程序的数据类型,变量,运算符,各类表达式,输入输出,String类,StringBuilder类的用法,在实验过程中好多程序会读不懂,有些步骤操作起来还是有很多困难,但是学习是一个循序渐的过程,要在无知中不断有知,不断积累经验,逐步完善。同时应该自己多去学习与思考,找资料与相关学习视频比如说mooc就是一个很好的学习资源,应该充分利用。 

201871010128-杨丽霞《面向对象程序设计(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. 20145213《Java程序设计》第二周学习总结

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

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

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

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

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

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

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

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

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

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

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

  10. 20175204 张湲祯 2018-2019-2《Java程序设计》第二周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第二周学习总结 教材学习内容总结 -第二章基本数据类型与数组要点: -标识符与关键字:标识符的第一个字符不能是数字字符: ...

随机推荐

  1. [LeetCode] 565. Array Nesting 数组嵌套

    A zero-indexed array A of length N contains all integers from 0 to N-1. Find and return the longest ...

  2. monkey-api-encrypt 1.1.2版本发布啦

    时隔10多天,monkey-api-encrypt发布了第二个版本,还是要感谢一些正在使用的朋友们,提出了一些问题. GitHub主页:https://github.com/yinjihuan/mon ...

  3. JDK8过渡到JDK11

    module-info 首先最大的难度就是module-info.java Java9 手把手教你实现模块化 后续我再找点详细的资料 中文API文档 其次是中文文档[感谢 译者wzjin https: ...

  4. Via板载声卡底噪严重、播放卡顿及耳机与扬声器音源切换问题【解决方法】

    HD VDeck[VIA威盛HD audio系列音频驱动] 关闭音效增强之后,一切正常............ 默默骂一句VIA沙雕 另外附上:开启耳机和扬声器独立音源的设置 注册表 Computer ...

  5. Kubernetes 学习(八)Kubernetes 源码阅读之初级篇------源码及依赖下载

    0. 前言 阅读了一段时间 Golang 开源代码,准备正式阅读 Kubernetes 项目代码(工作机 Golang 版本为 Go 1.12) 参照 <k8s 源码阅读> 选择 1.13 ...

  6. 1 datax 安装和简单使用

    DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.SqlServer.Postgre.HDFS.Hive.ADS.HBase.TableStore(O ...

  7. Where are registered servers stored?

    https://stackoverflow.com/questions/3064289/where-are-registered-servers-stored   They are kept as a ...

  8. 拼数(C++)

    问题: 设有n个正整数,将他们排成一排,组成一个最大的多位整数. INPUT: 第一行,正整数的个数n 第二行,n个正整数 OUTPUT: 一个正整数,表示最大的整数. 输入样例: 3 13 312 ...

  9. defaults(默认配置)和mergeConfig(合并config方法)

    axios学习笔记defaults(默认配置)和mergeConfig(合并config方法) 源码地址 找到入口文件 axios/lib/axios.js ... var mergeConfig = ...

  10. SpringBoot 基于web应用开发(请求参数获取,静态资源,webjars)

    SpringBoot 基于web应用开发 一.Lombok使用 1.导入依赖库 <dependency>    <groupId>org.projectlombok</g ...