201871010118-唐敬博《面向对象程序设计(Java)》第二周学习总结
博文正文开头格式:(3分)
项目 |
内容 |
这个作业属于哪个课程 |
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基础语法的异同比较,总结本周理论知识(30分)
1、标识符:
C可用的标识符为数字、大小写字母、下划线,不能以数字开头;
Java可用的标识符除了C的三种以外,多一种美元符号($),同样不能以数字开头。
2、关键字:
C中的关键字有:auto break case char const continue default do double else 等;
Java中的关键字有:abstract boolean break byte case catch char class continue 等;
3、数据类型:
C中的数据类型有:
1)基本类型:整型(基本整型int、短整型short[int]和长整型long [int]以及有符号型[signed]、无符号型unsigned)、字符型[signed/unsigned ]char、浮点型(单精度型float、双精度型double和长双精度long double)、枚举类型
2)构造类型:数组类型、结构体类型、共用体类型
3)指针类型
4)空类型
注意下各类型一般所占字节数:
int:2字节
short:2字节
long:4字节
char:1字节
float:4字节
double:8字节
Java中的数据类型:
1)基本类型:字符型(char)、数值型(整型(字节型byte、短整型short、整型int、长整型long)、浮点型(单精度型float、双精度型double))、布尔型(boolean(true或false))
2)复合类型:类、接口、数组
注意下各类型存储所占字节数:
byte:1字节
short:2字节
int:4字节
long:8字节
char:2字节(Unicode编码)
float:4字节
double:8字节
4、常量和变量
1)常量
Java和C中整型常量定义相同,除长整型数据在其末尾加l或L外,其他类型均直接显示数值。C中无符号常量在其后加u或U。对于不同进制,十进制直接显示最高位不能有0,八进制以0开头,十六进制以0x或0X开头。
对于浮点类型,C和Java均只能采用十进制表示。可使用小数形式和指数形式,指数形式表示时小数与指数之间用e或E分隔。注意Java中要求单精度后要加f或F,双精度后要加d或D以示区分。
字符型常量都是以单引号引起来的单个字符或转义字串表示。特别注意,C中字符型只能表示ASCII码从0~255的字符,Java中使用Unicode编码2字节存储单元可以表示特殊字符,表示unicode编码时使用\u加4位16进制字串。
布尔类型只有Java中才有,需特别注意。
Java中常量用关键字final修饰,一经赋值不可更改;C中表示不可更改的关键字是const,其修饰的变量(注意是变量,不是常量)必须在定义时赋初值,另外用#define定义的宏常量没有类型。
2)变量
Java和C中变量的定义基本相同,即:
数据类型变量名[ = 变量初值];
变量可赋初值也可不赋,但Java中长整型和浮点型数后要加相应识别标志(如l、f)。
特别注意:由于编译器的不同,C申明变量要放在可执行语句之前,否则可能发生编译错误。
5、逻辑运算符和位运算符
C和Java中都有的逻辑运算符&&、||、!三种,且意义相同,区别在于C中运算结果为0和非0,Java中只能是ture或false。Java中还存在&、|、^(异或),&和&&、|和||的区别在于前者是非捷径运算符而后者是捷径运算符,即&前后都做判断,&&前为假不做后面的判断,|前后都做判断,||前为真不做后面的判断。^表示两者相同为假。
C和Java中都有的位运算符是:&、|、^、~(取反)、<<(左移)、>>(右移),意义基本相同。负数的右移运算在C中视不同系统有所不同(可能是算术右移也可能是逻辑右移),而Java中>>表示的是算术右移,即最高位填充符号位。Java中逻辑右移(无符号右移)运算符是>>>,采用补码右移,高位添0。
6、数组
C中数组的定义如下:
类型说明符数组名[常量表达式];
定义可与初始化同时进行,如:int a[10] = {0,1,2,3,4,5,6,7,8,9};中括号内的常量可以省略。
Java中数组定义有两种方式:
数据类型数组名[];或 数据类型 []数组名;
定义和初始化可同时进行,如:int []a = {0,1,2,3,4,5,6,7,8,9};
注意Java中数组如果在定义时没有进行初始化,在进行初始化的时候需要先分配内存,即:
数组名 = new 数据类型[常量表达式];
也可在定义同时进行内存分配:
数据类型数组名[] = new 数据类型[常量表达式];
C和Java都不支持变长数组,引用的时候都是 数组名[下标]。区别是:Java的下标范围为0~数组长度-1,不在该范围会抛出数组下标越界异常,而C有效范围也是0~数组长度-1,但下标超出此界不会报错。
多维数组中,数组元素都是按行排列的。
还有一点要注意:C中定义数组不进行初始化则数组元素值是不可预知的,而Java中分配内存而不进行初始化数组中是有默认值的。
7、类、域、方法和全局变量、函数
1)类是C中没有的,Java中类定义如下:
[修饰符] class 类名[extends 父类名][implements 接口名]
其中修饰符可以为以下一个或多个访问修饰符:
abstract:抽象类。
final:最终类。
public:公共类。
2)域(成员变量)和全局变量类比:
Java中域的定义如下:
[修饰符] 类型 成员变量名;
修饰符可选以下一个或多个关键字:
public:公共成员。
protected:本类或同一个包的其他类以及其它包该类的子类可访问。
private:私有成员。
final:常量,确定后不能改变。
static:静态变量。
transient:临时变量。
volatile:备份变量。
各类型成员变量默认初始化为:
整型变量:0
浮点型变量:0.0
布尔型变量:false
字符型变量:空格
类变量:null
C中全局变量定义同一般变量:
[存储类别] 数据类型 变量表列;
其中存储类别可选:
auto:自动变量,当不申明存储类别时隐式默认该值。
static:静态变量。
register:寄存器变量。
extern:外部变量。
3)方法和函数类比:
Java中方法的定义如下:
[修饰符] 返回类型 方法名([参数表列])
修饰符可选以下一个或多个:
public:公共方法。
protected:本类或同一个包的其他类以及其它包该类的子类可访问。
private:私有方法。
abstract:抽象方法,只有方法头没有方法体。
static:静态方法。
存储类别可选:
extern:外部函数。
static:静态函数。
第二部分:实验部分
实验名称:实验二 Java基本程序设计(1)
1. 实验目的:
(1)进一步熟悉命令行和IDE两种方式下java程序开发的基本步骤;
(2)掌握Eclipse集成开发环境下导入Java源程序的过程;
(3)掌握Java语言构造基本程序的数据类型、变量、运算符、各类表达式、输入输出、流程控制的基本语法;
(4)掌握Math类、String类、StringBuilder类的用法。
3. 实验步骤与内容:
实验1 程序互评(10分)
通过程序互评发现同学们对程序结构以及语法的应用不是特别的清晰,以后还需要继续好好努力。
实验2 (5分)
编写包含以下代码片段的java应用程序,输出字符串类对象s3的值。
代码如下
package first1;
public class first1 {
public static void main(String[] args){
String s1="Hellow!";
String s2="World";
String s3=s1+s2;
System.out.println(s3);
}
}
运行结果如下
实验3 (5分)
更改实验2中s1、s2、s3为StringBuilder类对象,观察程序运行结果并与实验2结果进行对比,理解String类对象与StringBuilder类对象的区别。
代码如下
package first1;
public class Welcome {
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuilder s1=new StringBuilder("Hello!");
StringBuilder s2=new StringBuilder("World");
StringBuilder builder=new StringBuilder();
builder.append(s1);
builder.append(s2);
System.out.println(builder);
}
}
运行结果如下
实验4 (5分)
在命令行方式下调试运行下列程序,理解java应用程序命令行参数的用法。
代码如下:
package project1;
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分)
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 文件读写程序测试(10分)
按照实验5操作步骤,导入WriteReadFileTest.java示例程序,运行程序并理解程序代码,观察项目文件夹下文件myfile.txt的内容,掌握文件的输入输出操作。
2)myfile.txt内容如下
实验7 (5分)
按照实验5的操作步骤,导入第3章3-3——3-4示例程序,掌握两个程序循环控制结构的用途
3-3实例
3-4实例
实验8 (5分)
:按照实验5的操作步骤,导入第3章3-5示例程序,理解抽奖概率计算算法
该程序用来计算该公式n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3...*k)。
4. 实验总结:(10分)
本周的内容主要是C语言与Java语言异同的对比,也是我们学习Java的基础内容,由于在学习C语言的时候没有学懂,所以学习Java的时候感觉有点吃力,
但是通过学习老师的课件和Mooc平台上的视频,理解了这一部分的内容,在课本中有很多的实例,通过每一部分的实例分析与对比,了解了各个不同变量的作
用,尤其是在实验七中的两个不同循环语句的应用下运行出不同的结果,让我更清楚程序语言严谨的重要性。
在实验过程中,逐渐了解并熟悉了String类和StringBulider类的一些基本方法。通过本次学习,我发现了在Java中认识标识符很重要,另外,我掌握了更多的语法,虽然都还只是基础,但我会继续努力学习,在以后的学习中不断提高自己的编程水平。
201871010118-唐敬博《面向对象程序设计(Java)》第二周学习总结的更多相关文章
- 20172325 2018-2019-1 《Java程序设计》第二周学习总结
20172325 2018-2019-1 <Java程序设计>第二周学习总结 教材学习内容总结 3.1集合 集合是一种聚集.组织了其他对象的对象.集合可以分为两大类:线性集合和非线性集合. ...
- 20172321 2017-2018-2 《Java程序设计》第二周学习总结
20172321 2017-2018-2 <Java程序设计>第二周学习总结 教材学习内容总结 第一章要点: 要点1 字符串:print和println用法的区别,字符串的拼接,java中 ...
- 20145326《Java程序设计》第二周学习总结
20145326<Java程序设计>第二周学习总结 教材学习内容总结 本周学习教材第三章,本章主要讲述了java语言中的一些基础语法,java是个支持面向对象的程序语言,但在正式进入面向对 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
- 20155304田宜楠 2006-2007-2 《Java程序设计》第二周学习总结
20155304田宜楠 2006-2007-2 <Java程序设计>第二周学习总结 教材学习内容总结 一.类型与变量 1.类型 整数: 可细分为为short整数(占2字节),int整数(占 ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20175226 2018-2019-2 《Java程序设计》第二周学习总结
20175226 2018-2019-2 <Java程序设计>第二周学习总结 教材学习内容总结 基本数据类型与数组 标识符与关键字 标识符不能是关键字.true.false.null.且第 ...
- 2018-2019-3《Java程序设计》第二周学习总结
学号20175329 2018-2019-3<Java程序设计>第二周学习总结 教材学习内容总结 第二三章与我们所学习的C语言有很多的相似点,在这里我想主要就以我所学习的效果来讨 ...
随机推荐
- [LeetCode] 828. Unique Letter String 独特字符串
A character is unique in string S if it occurs exactly once in it. For example, in string S = " ...
- kinaba 安装踩坑: FATAL Error: [elasticsearch.url]: definition for this key is missing
操作系统:Linux kibana 版本: 7.4.0 1. 在/etc/yum.repos.d/ 下新建 kibana.repo 配置 yum 源地址 内容如下: [root@localhost ...
- 安装Oracle 11g时遇到“【INS-13001】此环境不满足最低配置”的问题解决
一.问题如下: win10一般容易出现这个问题,可能是版本兼容的关系. 二.解决方法: 在Oracle 11g解压出的文件夹下寻找cvu_prereq.xml文件: 路径:database\stag ...
- 31,Leetcode下一个排列 - C++ 原地算法
题目描述 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列. 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列). 必须原地修改,只允许使用额外常 ...
- 通过IP获取MAC地址例子(内核层)
博客地址:http://home.cnblogs.com/u/zengjianrong/ 在内核处理此流程,反而更加简单些,代码如下: #include <net/arp.h> #incl ...
- C#中$拼字符串
除了Format,StringBuilder,+方式拼字符串外,有一种比较直观的拼字符串方式,代码如下 static void Main(string[] args) { string name = ...
- Linux查看进程启动时间和已持续时间
ps -eo pid,lstart,etime,cmd | grep zzlogic
- Linux进程启动/指令执行方式研究
1. 通过glibc api执行系统指令 0x1:system() glibc api system是linux系统提供的函数调用之一,glibc也提供了对应的封装api. system函数的原型为: ...
- 【LeetCode】230. Kth Smallest Element in a BST
Difficulty: Medium More:[目录]LeetCode Java实现 Description https://leetcode.com/problems/kth-smallest- ...
- 基于串口的SD_card系统
概述 基于串口的SD_card系统1, 扫描文件:2, 新建文件:3, 删除文件:4, 写入文件:5, 读取文件. 整个文件系统的串口通信方式都是ASC通信方式. 文件系统分为简单实用方式和专业使用方 ...