项目

内容

这个作业属于哪个课程

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基础语法的异同比较,总结本周理论知识

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

一:一个简单的JAVA程序

在本练习中将指导我们完成我们的第一个Java应用程序HelloWorld的编写、编译和运行,分析纠正可能出现的错误。HelloWorld程序将实现显示输出问候语“Hello,World”的简单功能。

1.创建Java应用程序源文件

1)打开文本编辑器NotePad(记事本)

【开始】→【程序】 →【附件】 →【记事本】

2)在该新建文件中,输入下述代码:

public class HelloWorld {

public static void main(String[] args) {

System.out.println("Hello,World!");

}

}

注意:所输入的代码、命令和文件名的拼写应与给出的完全相同,Java语言是大小写敏感的(case-sensitive),因此必须保持大小写的拼写一致,否则会导致编译或运行出错。例如:

-          System ≠ system

-          String ≠ string

-          public ≠ Public

-          HelloWorld ≠ helloworld

3)保存文件

在记事本(NotePad)窗口的菜单条上选择菜单【文件】→【另存为】,在打开的“另存为”窗口中进行如下操作:

a)使用“保存在”下拉式列表框,指定要将文件保存在哪个目录下。例如,将文件保存到d:\javaex目录下。

b)在“文件名”下拉式列表框中直接输入“HelloWorld.java”;

c)在“保存类型”下拉式列表框中选择“所有文件”。

完成上述步骤后,“另存为”对话框界面应如图E02-1所示,然后点击【保存】并退出记事本程序。

2.编译源文件

1)启动Win2000命令行窗口

此时默认当前路径为系统的安装路径(C:\),进入Java源文件所在路径"D:\javaex"后,运行命令"dir"可以在该目录的文件列表中发现文件"HelloWorld.java"

1)在上述命令行窗口中运行命令:javac HelloWorld.java

如果窗口中未出现任何报错信息,则编译成功,编译器会自动生成字节码文件"HelloWorld.class"并保存在当前路径下,可再次运行dir命令或在资源管理器中查看该字节码文件信息。

3.运行程序

在Win2000命令行窗口的同一目录"D:\javaex"中,运行命令:java HelloWorld

程序将开始运行并显示输出"Hello,World!"

二:数据类型

1.四种整数类型(byte、short、int、long): 
byte:8 位,用于表示最小数据单位。
short:16 位,很少用
int:32 位、最常用
long:64 位、次常用

2.两种浮点数类型(float、double): 
float:32 位,后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数。
double:64 位,最常用,后缀 D 或 d,1 位符号位,11 位指数

3.一种字符类型(char):
char:16 位,是整数类型,用单引号括起来的 1 个字符(可以是一个中文字符),使用 Unicode 码代表字符,0~2^16-1(65535) 。

4.一种布尔类型(boolean):true真和false假。

三:JAVA中的变量及常量

1.Java常量

常量通常也被称为“final变量”。常量在整个程序中只能被赋值一次。在为所有对象共享值时,常量是非常有用的。在Java语言中声明一个常量,除了要指定数据类型外,还需要通过final关键字进行限定。声明常量的标准语法格式如下:

final 数据类型 常量名称(=值)

在Java编码规范中,要求常量名必须大写,并且中间最好使用下划线作为分隔符来进行连接多个单词。

当定义的常量如果属于“成员变量”,则必须在定义时就赋给初值,否则将会在编译时出先错误。

常量在程序运行过程中主要作用——

1). 代表常数,便于程序的修改,比如:圆周率的值;

2).增强程序的可读性,比如:常量UP、DOWN、LEFT和RIGHT分辨代表上下左右,其数值分别是1、2、3和4)。

2.Java变量

在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:

type identifier [ = value][, identifier [= value] ...] ;

格式说明:type为Java数据类型;identifier是变量名;可以使用逗号隔开来声明多个同类型变量。

变量虽然是由程序员所命名的,但是变量的命名并不是任意的,需要遵循一定的规则:

1). 变量名必须是一个有效的标识符。

2). 变量名不能重复。

3). 应选择有意义的单词作为变量名。在命名变量名时,最好能通过变量名看出变量的内容,这样既能方便读者对程序的理解,增加可读性,又方便程序的维护,减轻程序维护人员的工作负担。

变量的有效范围是值程序代码能够访问该变量的区域,若超出变量所在区域访问该变量则编译时会出现错误。在程序中,一般会根据变量能够访问的区域将变量分为成员变量和局部变量。

在类体中定义的变量被称为成员变量,成员变量在整个类中都有效。类的成员变量又分为静态变量(也称类变量)和实例变量两种。

3.局部变量(本地变量)

1). 声明在方法、构造方法或者语句块中;

2). 在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;

3). 访问修饰符不能用于局部变量;

4). 只在声明它的方法、构造方法或者语句块中可见;

5). 在栈上分配的;

6). 没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

4.实例变量

1). 声明在一个类中,但在方法、构造方法和语句块之外;

2). 当一个对象被实例化之后,每个实例变量的值就跟着确定;

3). 在对象创建的时候创建,在对象被销毁的时候销毁;

4). 值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;

5). 可以声明在使用前或者使用后;

6). 访问修饰符可以修饰实例变量;

7). 对于类中的方法、构造方法或者语句块是可见的,一般情况下应该把实例变量设为私有,通过使用访问修饰符可以使实例变量对子类可见;

8). 具有默认值,数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;

9)可以直接通过变量名访问。

5.类变量(静态变量)

1). 在类中以static关键字声明,但必须在方法构造方法和语句块之外;

2). 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝;

3). 除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变;

4). 储存在静态存储区。经常被声明为常量,很少单独使用static声明变量;

5). 在第一次被访问时创建,在程序结束时销毁;

6). 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型;

7). 默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化;

8). 可以通过:ClassName.VariableName的方式访问;

9). 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。
四:运算符

1.算术运算符:
单目:+(取正)-(取负) ++(自增1) - -(自减1) 双目:+ - * / %(取余) 三目:a>b?true:false 说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是 “>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。

2。关系运算:
等于符号:==,不等于符号: != ,大于符号:>, 小于符号:<,大于等于符号: >= ,小于等于符号: <= 。

3位运算符 逻辑运算符:
位运算符 与(&)、非(~)、或(|)、异或 (^)&:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000 | :当两边操作数的位有一边为1时,结果为0,否.则为1。如1100|1010=1110 ~:0变1,1变0 ^:两边的位不同时,结果为1,否则为0.如1100^1010=0110 逻辑运算符 与(&&)、非(!)、或(||)

04

赋值运算符
= += -= *= /= %= &= ^= |= <<= >>=

05

instanceof运算符
该运算符是双目运算符,左面的操作元是一个对象,右面是一个类。当左面的对象是右面的类创建的对象时,该运算符运算结果是true,否则是false。

06

运算符综述
Java 的 表达式就是用运算符连接起来的符合Java 规则的式子.运算符的优先级决定了表达式中运算执行的先后顺序.例如,x<y&&!z相当于(x<y)&& (!z),没有必要去记忆运算符号的优先级别,在编写程序时可尽量的使用括号来实现你想要的运算次序,以免产生难以阅读或含糊不清的计算顺序.
运算符的结合性决定了并列相同级别的运算符的先后顺序,例如,加减的结合性是从左到右,8-5+3 相当于(8-5)+3.逻辑否运算符 的结合性是右到左, x 相当于!(!x).表3.4是Java所有运算符的优先级和结合性。

07

位移运算符
<< 带符号左移 >>带符号右移 >>> 无号右移

五:字符串

1、Java 中的 StringBuilder 类的常用方法

append(参数):追加内容到当前StringBuilder对象的末尾

insert(位置,参数):将内容插入到StringBuilder对象的指定位置

toString():将StringBuilder对象转换为String对象

length():获取字符串的长度

toLowerCase():转换成小写

charAt(int i):获取索引为i的值

getBytes():转换为字节数组

indexOf(int ch):查找ch字符在该字符串第一次出现的位置

indexOf(String str):查找str字符串在该字符串第一次出现的位置

lastIndexOf(int ch):查找ch字符在该字符串最后一次出现的位置

lastIndexOf(String str):查找str字符串在该字符串最后一次出现的位置

split():将字符串拆分成子串;

注意:StringBuffer和StringBuilder 功能一样,但是StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,所以性能略高。因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用 StringBuilder 类。

2、“==” 和 equals() 有什么区别呢?

==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象

equals(): 比较存储在两个字符串对象中的内容是否一致

六:输入与输出语句

  1. 输入语句

    1).使用Scanner类:

    (1)使用java.util包。  import java.util.*;

    (2)构造Scanner类对象,它附属于标准输入流System.in。   Scanner s = new Scanner(System.in);

    2.使用java.io.BufferedReader和java.io.InputStreamReader:

    步骤:

    (1)使用java.io包。  import java.io.*;

    (2)构造 BufferedReader类对象,它附属于标准输入流System.in。

    2.输出语句

    Java中的输出语句有以下四种:

    System.out.println(1111);//换行打印
    System.out.print(1111);//不换行打印
    System.out.write(2222);//字节输出
    System.out.printf("%+8.3f\n", 3.14);//按格式输出
    System.out.println(); 是最常用的输出语句,它会把括号里的内容转换成字符串输出到输出窗口(控制台),并且换行,当输出的是一个基本数据类型时,会自动转换成字符串,如果输出的是一个对象,会自动调用对象的toString();方法,将返回值输出到控制台
    System.out.print(); 与第一个很相似,区别就是上一个输出后会换行,而这个命令输出后并不换行。
    System.out.printf(); 这个方法延续了C语言的输出方式,通过格式化文本和参数列表输出。

    七:数组

  2. 使用数组的三个步骤,

    1).声明一个用于存储数据的变量

    2).创建一个数组并给他赋值。

    3).在数组中储存信息

    2.工具/原料
    javaide
    3.方法/步骤
    声明数组变量
      创建数组时,首先需要声明一个用来储存数据的变量。数组变量之出了数组将储存的对象数组类型以及数组名称。
    4.语法:

1).数据类型 [] 变量名;
.数据类型 变量名[];
5.创建对象数组
声明数组变量后,然后就是需要创建一个数组对象,并将它赋给数组变量:
1).  使用new  关键字
2).  初始化数组的类容
因为在java中数组是对象,所以可以使用new 关键字来创建,用new 关键字创建数组的时候必须指定数组的长度,使用new关键字创建数组的时候,所有元素都会被自动初始化,(int数组为0 , 字符串数组为 “\0”,布尔数组为false ,对象数组为null )。

6.语法:
数据类型  []变量名=new 数据类型[数组长度];
数Demo [2]=35;
组创建好之后就可以赋值了,在数组中每个元素都是通过下标来访问的。

第二部分:实验部分

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

1.  实验目的:

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

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

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

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

3. 实验步骤与内容:

实验1 程序互评

在程序测评这节课中,我们修改了上上节课的九九乘法表,在修改的过程中我们对九九乘法表的程序有了更近一步的了解,而且意识到在这次实验中我们对乘法表的掌握不够深刻,犯了许多简单的错误,甚至连最基础的框架都没记下来,让我们意识到在以后的学习在一定要认真,仔细,老师讲的作业要认真完成。

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

1):实验运行结果如下:

2):myfile.txt内容如下:

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

3-3截图如下:

3-4截图如下:

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

实验截图如下:

实验总结:

1):在第三章中我们学习了JAVA的基本程序设计结构,主要内容包括数据类型、运算符、字符串、数组等,通过对此的学习,我们对C语言的知识更加深入了解,认识到C语言与JAVA中许多地方都是相似的,在学习JAVA的过程中,对C语言的知识进一步掌握。

2):在实验的过程中,我们对程序在eclipse中的运行更加熟练,以及将文件导入eclipse中进行运行与输出,在导入的过程中出现了许多的问题,尤其是后面的许多实验,但通过助教老师的讲解修改了之后都一一得到了解决。

3):相信在以后的学习中我们可以学习到更多的有关于JAVA的知识,对编程也会越来越熟悉。

4):多动手,多运行程序,多翻书,多思考。

201871010126 王亚涛 《面向对象程序设计(java)》 第二周学习总结的更多相关文章

  1. 20172325 2018-2019-1 《Java程序设计》第二周学习总结

    20172325 2018-2019-1 <Java程序设计>第二周学习总结 教材学习内容总结 3.1集合 集合是一种聚集.组织了其他对象的对象.集合可以分为两大类:线性集合和非线性集合. ...

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

    20172306<Java程序设计>第二周学习总结 教材学习内容总结 这一周的学习,我觉得我比上一周认真多了,而且我突然发现慢慢学习的过程中,以前有一些多余自己打出来的东西,有了更清晰的认 ...

  3. 20172321 2017-2018-2 《Java程序设计》第二周学习总结

    20172321 2017-2018-2 <Java程序设计>第二周学习总结 教材学习内容总结 第一章要点: 要点1 字符串:print和println用法的区别,字符串的拼接,java中 ...

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

    20145326<Java程序设计>第二周学习总结 教材学习内容总结 本周学习教材第三章,本章主要讲述了java语言中的一些基础语法,java是个支持面向对象的程序语言,但在正式进入面向对 ...

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. Linux性能优化实战学习笔记:第十六讲

    一.free数据的来源 1.碰到看不明白的指标时该怎么办吗? 不懂就去查手册.用 man 命令查询 free 的文档.就可以找到对应指标的详细说明.比如,我们执行 man fre... 2.free数 ...

  2. [LeetCode] 76. Minimum Window Substring 最小窗口子串

    Given a string S and a string T, find the minimum window in S which will contain all the characters ...

  3. web安全编码Demo

    目录: 1.生成安全随机数 2.密码安全存储 3.文件上传 4.SQL注入 一.生成安全随机数 用于生成会话sessionid.防CSRF时的token.以及其他场景下的veritycode. 如下代 ...

  4. 聊聊Runloop

    1.什么是Runloop 在开始聊RunLoop之前,我们先来了解一下程序的执行原理.一般来说,程序是在线程中执行,一个线程一次只能执行一个任务(关于GCD,可看上篇文章介绍),执行完成后线程就会退出 ...

  5. Hanlp分词插件docker集群安装

    背景:我是用docker-compose的方式装的es集群,正常情况es镜像没有插件,如果在docker里面用命令安装了那么重启以后又没了,所以采用挂载离线安装的方式 版本: es7.2 1下载Han ...

  6. python面试题第一份

    阅读目录 1 Python的函数参数传递 2 Python中的元类(metaclass) 3 @staticmethod和@classmethod 4 类变量和实例变量 5 Python自省 6 字典 ...

  7. 大话设计模式Python实现-装饰模式

    装饰模式(Decorator Pattern):动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活. 下面是一个给人穿衣服的过程,使用装饰模式: #!/usr/bin/en ...

  8. 《Interest Rate Risk Modeling》阅读笔记——第一章:利率风险建模概览

    目录 第一章:利率风险建模概览 思维导图 一些想法 第一章:利率风险建模概览 思维导图 一些想法 久期向量模型类似于研究组合收益的高阶矩. 久期向量模型用的是一般多项式表达高阶久期,试试正交多项式? ...

  9. VisualHull && association4D 观摩记录

    简单记录一下自己对VisualHull 和 association4D 两个程序的理解,没有别的意思(当然是真的 由于进度还很慢,暂时只是简单记录一下发现的点和踩过的坑,做完再把资料汇总. Visua ...

  10. js、jscore与webkit、nodejs的关系

    js:编程语言 jscore:js语言的解释执行引擎,代表cpu: webkit.nodejs:js语言的运行平台,代表操作系统.计算机资源.