201871010105-曹玉中《面向对象程序设计(Java)》第二周学习总结

            项目                                        内容
这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/
这个作业要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11435127.html
作业要求目标

1.适应老师教学方式,能按照自主学习要求完成本周理论知识学习;

2.掌握Java Application程序结构;

3.掌握Java语言的数据类型与变量;

4.学会使用Java运算符构造各类表达式;

5.掌握Java Application输入输出技术;

6.掌握Java流程控制技术(分支、循环);(重点)

7.掌握Math类、String类的用法。(难点)

第一部分:

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 程序互评

通过程序互评我发现同学们都从在或多或少的问题,而且大多同学都是只写了主要程序没有框架,但主框架也是很重要,此次实验也提醒我们写程序的时候要仔细、严谨。

实验2 :

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

代码如下:

package sshiyabyi1;

public class helloworld {

	public static void main(String[] args) {
String s1="Hello!";
String s2="World";
String s3=s1+s2;
System.out.println(s3);
s3=s1.concat(s2);
}
}

  运行如下:

实验3 :

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

代码如下:

package sshiyabyi1;

public class helloworld {

	public static void main(String[] args) {
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 :

在命令行方式下调试运行下列程序,理解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程序导入

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的内容,掌握文件的输入输出操作。

2)myfile.txt内容如下

实验7

按照实验5的操作步骤,导入第3章3-3——3-4示例程序,掌握两个程序循环控制结构的用途

3-3实例

3-4实例

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

该程序用来计算该公式n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3...*k)。

四.实验总结

本周的内容主要是C语言与Java语言异同的对比,也是我们学习Java的基础内容,由于在学习C语言的时候没有学懂,所以学习Java的时候感觉有点吃力,

但是通过学习老师的课件和Mooc平台上的视频,理解了这一部分的内容,在课本中有很多的实例,通过每一部分的实例分析与对比,了解了各个不同变量的作

用,尤其是在实验七中的两个不同循环语句的应用下运行出不同的结果,让我更清楚程序语言严谨的重要性。

201871010105-曹玉中《面向对象程序设计(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] 674. Longest Continuous Increasing Subsequence 最长连续递增序列

    Given an unsorted array of integers, find the length of longest continuous increasing subsequence. E ...

  2. [LeetCode] 477. Total Hamming Distance 全部汉明距离

    The Hamming distance between two integers is the number of positions at which the corresponding bits ...

  3. CAP带你轻松玩转ASP.NETCore消息队列

    CAP是什么? CAP是由我们园子里的杨晓东大神开发出来的一套分布式事务的决绝方案,是.Net Core Community中的第一个千星项目(目前已经1656 Start),具有轻量级.易使用.高性 ...

  4. ng 引入query

    ng 引入jquery 1.在项目中 npm install --save jquery 在对应组件中加入 import * as $ from "jquery";   在angu ...

  5. Let's Encrypt之acme.sh

    前言 Let's Encrypt 是一个证书颁发机构(CA).是由互联网安全研究小组(ISRG,Internet Security Research Group)主导并开发的一个新型数字证书认证机构( ...

  6. The multi-part request contained parameter data (excluding uploaded files) that exceeded the limit for maxPostSize set on the associated connector.

    springboot 表单体积过大时报错: The multi-part request contained parameter data (excluding uploaded files) tha ...

  7. python利用ThreadPoolExecutor实现有任务异常,就终止线程池中的所有剩余任务

    先描述一下场景: 我有一批任务需要放入线程池中去处理,但是一旦线程池中有1个任务出现了异常(抛了Exception)就将线程中尚未开始的任务全部取消不执行. 需要说明的是正在执行的任务因为无法撤销,所 ...

  8. SSM基本依赖及配置

    需要了解具体配置文件的作用到:SSM基本配置详解 示例项目:SSMDemo 依赖 基本依赖 <properties> <spring.version>5.0.6.RELEASE ...

  9. Go语言http包简易入门

    说道go语言web编程,必不可少的会使用到net/http包.go语言将web开发需要使用到的很多内容都放在了标准库中——net/http. 如何写一个简单的web程序很容易.如下: package ...

  10. 使用CodeFirst创建数据库

    1.新建一个类库项目 2.右键管理Nuget程序包,搜索EntityFramework.然后安装 3.新建一个类,然后引用 using System.Data.Entity; 然后写类初始化方法(ba ...