201871010107-公海瑜《面向对象程序设计(java)》第二周学习总结

            项目                          内容
  这个作业属于哪个课程        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基础语法的异同比较,总结本周理论知识

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

2、标识符可以用作类名、变量名、方法名、数组名以及文件名等。

3、关键字:Java中被赋予特殊意义的单词。   注意:关键字不做变量名。

4,注释:在Java语言中,注释的方法有三种。

 (1)① // ,行注释  ② /*    */ ,注释块       ③ /**    */,用来自动地生成文档

 (2)在Java语言中,源代码的文件名必须与公共类的名字相同,并用   .java    作为扩展名,而且区分大小写。

 (3)System.out.println();   和   System.out.print(); 其中第一个在输出之后换行,而第二个在输出之后不换行。

5、数据类型:(Java是一种强类型语言,所以它的每一个变量都要声明一种类型)。

 (1)8中基本的类型:

   整数类型:(int:占4个字节;    short:占2个字节;    long:占8个字节;  byte:占1个字节)

   浮点类型:(float:占四个字节;  double:占8个字节)

   字符类型:(char:字面量值要用单引号括起来)

   布尔类型:(Boolean:其值为:true   或者   false。 布尔值和整型值不能相互转换)

    注意:在Java语言中,没有任何无符号型(unsigned)形式的int, short, long,和byte类型。

   转义字符:\b(退格);    \t(制表);    \n(换行);     \r(回车);   \"(双引号);    \'(单引号);    \\(反斜杠)。

6、变量:在Java中每个变量都有一个类型。在声明变量时,变量所属的类型位于变量的前面。

变量名必须是以字母开头并由字母或数字组成的序列。变量名中,所有的字母都是有意义的,并且大小写敏感。

      不能使用Java中的关键字(保留字)来作为变量名。在一行可以声明一个或多个变量(不提倡),但是逐一声明每一个变量可以提高程序的可读性。

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

在Java语言中,可以在代码的任何位置进行变量的声明,但是变量的声明尽可能地在靠近变量第一次使用的地方。(在同一作用域内不能声明两个同名的变量)。

7、常量:在Java中,使用关键字final来指示常量。关键字final表示这个常量只能被赋值一次,一旦被赋值就不能再改了。在Java中,经常希望某个常量可以在一个类中的多种方法中使用,通常称这些常量为类常量。可以使用关键字  Static  final  声明一个类常量。

8、运算符:

 (1)各种条件运算符:包括算术运算符、自增运算符与自减运算符、关系运算符、逻辑运算符和位运算符。

 (2)Java提供的特殊运算符:New运算符和Instenceof,前者用来创建对象的运算符,或者用来返回一个布尔值来指出某个对象是否是一个特定类或者是它的子类的一个实例。

 (3)运算符的优先级与结合性:见书44~45.

 (4)数学函数与常量:数学函数包含在Math类中,提供幂函数、三角函数、指数函数及它的反函数等。

 (5)Java还提供了两种常量:——Math.PI, Math.E.

9、类型转换:                   char

             ↓                

       byte  →  short  →     int  →  long

                           ↓          ↓

                       float  → double

 隐式类型转换:

 (1)如果两个操作数中有一个是double类型的,则另一个会转换成double类型;

 (2)如果两个操作数中有一个是float类型的,则另一个会转换成float类型;

 (3)如果两个操作数中有一个是long类型的,则另一个会转换成long类型;

 (4)两个数都将转换成int类型。

 强制类型转换:

      强制类型转换的语法格式是在圆括号中给出想要转换的类型,后面紧跟带转换的变量名。

      (目标类型 )        变量名

      强制类型转换只是从那个变量计算出一个新的类型的值,并没有改变那个变量,无论是值还是类型都不改变。

10、字符串

 (1)Java中字符串是Unicode字符的序列,它是组织字符的基本数据结构。

 (2)有内置的字符串类型,在标准Java类库中提供了一个Java预定义类String。在Java中,字符串被当作对象来处理。

 (3)程序中需要用到的字符串有两类:创建之后不会再做修改和变动的不可变字符串String类;创建之后允许再做更改和变化的构建字符串StringBuilder类。

 (4)字符串常量:用双引号定义字符串常量;Java会自动为字符串常量生成一个String类的对象,所以可以直接初始化String类的对象。

 (5)String类:

    String类的构造方法:创建String类的一个对象,并对它初始化,需要调用类String的构造方法。

    A:String(): 创建一个空串;

    B:String(String  Value);

    C:String  (char  value []);

    D:String  (char[],  int   startIndex);

    E:String  (byte[],   byte   hibyte);

    F:String  (byte[],  byte  hibyte,  int   startIndex,  int numChars);

String类的基本方法:

获得字符串的字串;

   串连接(+): 注意,当获取一个字符串和一个非字符串时,后者将会转换成字符串;

   获取字符串的长度:使用String类中的length()方法可以获取一个字符串的长度;

   检测字符串是否相等:可以使用equals方法检测两个字符串是否相等;

   一定不能使用   “=”   运算符两个字符串是否相等,这个运算符只能确定两个字符串是否放置在同一个位置上。

 字符串检索:

   字符串数字与数值的转化:Java.lang包中的Interger类,Long类,Float类, Double类分别提供了相应的方法来进行字符串与数值间的转换。

   获得对象的字符串表示:所有的类都默认为Java.lang包中Object类的子类或间接子类。Object类中有一种方法获得对象的字符串表示:   toString()。

   String类的API及文档:String类中包含各类字符串处理的50多种方法,使用JDK在线API 文档可以查阅所有标准类及其方法,打开浏览器,指向JDK安装目录下的docs/spi/index.html。

(6)StringBuilder类字符串;

        StringBuilder类的说明:需多个小段字符串连接创建一个字符串时,每次连接字符串时,都会构建一个新的String类对象。

      eg:      StringBuilder  builder = new  StringBuilder();     创建一个字符串对象;

          builder.append(ch);                                                   appends  a   singer   character;

             Builder.append(str);                                              appends    a    String

   StringBuilder 类的API:

    (1)分配/获取字符串的长度;

    (2)分配/获取字符串的容量;

    (3)字符串的检索和字串;

    (4)字符串的修改;

    (5)字符串类型转换:   toString();

11、输入输出:

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

          Scanner  in= new   Scanner(System.in);

          Scanner类定义在java.util包中,使用时将包加载进来;

          Scanner类输入时可见的;

             (2)格式化输出:使用System.out.println();将数值输出到控制台。

12、控制流程:

  Java有5中语句:(1)方法调用语句:System.out.println("Hello!World");

           (2)表达式语句:

           (3)复合语句:用    {}    把一些语句括起来就构成了一个语句。

           (4)控制语句:程序控制流程由控制语句给出;if, switch, for, while,do_while.

           (5)package语句和import语句。

第二部分:实验部分

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

1.  实验目的:

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

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

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

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

3. 实验步骤与内容:

实验1 程序互评

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

代码如下:

package shiyaner;

public class shiyantwo {

    public static void main(String[] args) {
// TODO Auto-generated method stub
String s1="Hello!"; //定义了一个String,名为s1,并将字符串Hello赋值给s1
String s2="World"; //定义了一个String,名为s2,并将字符串World赋值给s2
String s3=s1+s2; //定义了一个String,名为上,并将s1+s2的值赋给s3
System.out.println(s3); //输出s3的值
} }

运行结果如下:

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

代码如下:

package shiyansan;

public class shiyanthree {

    public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuilder s1 = new StringBuilder("Hello!"); //在字符串构建器StringBuilder中创建一个新的StringBuilder
StringBuilder s2 = new StringBuilder("World");
StringBuilder s3 = new StringBuilder().append(s1).append(s2);//用StringBuilder将s1和s2拼接起来
System.out.println(s3); } }

运行结果如图:

实验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(“!”);

}

}

代码如下:

public class Message {

    public static void main(String[] args) {
// TODO Auto-generated method stub
if (args[].equals("-h")) System.out.print("Hello"); else if(args[].equals("-g")) System.out.print("goodbye,"); for(int i=;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示例程序,掌握两个程序循环控制结构的用途。

(1)运行结果如图:

(2)Retirement2运行结果如图:

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

运行结果如图:

4.实验总结

第三章内容主要为Java语法的基础知识,主要是C语言与Java语言异同的对比,也是我们学习Java的基础内容。通过此次实验,我学会了如何向eclipse导入其他文件夹中的程序,掌握Java语言构造基本程序的数据类型、变量、运算符、各类表达式、输入输出、流程控制的基本语法。虽然感觉有些吃力,有些跟不上节奏,但是在助教老师和同学的帮忙下,以及通过看慕课视频,已经基本上能够进行实验。

201871010107-公海瑜《面向对象程序设计(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. Web协议详解与抓包实战:HTTP1协议-请求与响应的上下文(7)

    一.请求的上下文: User-Agent 指明客户端的类型信息,服务器可以据此对资源的表述做抉择 二.请求的上下文: Referer 浏览器对来自某一页面的请求自动添加的头部 截图2 这对于我们的防盗 ...

  2. [LeetCode] 647. Palindromic Substrings 回文子字符串

    Given a string, your task is to count how many palindromic substrings in this string. The substrings ...

  3. oracle--10GRAC集群(NFS共享存储)

    一,NFS服务器配置 01, 安装包查看 [root@standby2 ~]# rpm -qa|grep nfs nfs-utils-lib--.el6.x86_64 nfs4-acl-tools-- ...

  4. nodejs调用cmd命令

    使用 child_process.exec 实现 child_process即子进程可以创建一个系统子进程并执行shell命令,在与系统层面的交互上非常有用 NodeJS子进程提供了与系统交互的重要接 ...

  5. SpringBoot第十七篇:定时任务

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11076555.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   相信大家对 ...

  6. torch_07_卷积神经网络案例分析

    1. LeNet(1998) """ note: LeNet: 输入体:32*32*1 卷积核:5*5 步长:1 填充:无 池化:2*2 代码旁边的注释:卷积或者池化后的 ...

  7. IScroll Unable to preventDefault inside passive event listener due to target being treated as passive

    最近两天企业微信下IScroll突然无法滚动了,特别慢,之前好好的,发现主要是有红色的Unable to preventDefault inside passive event listener du ...

  8. Redis(一) redis安装、启停

    Redis是开源的内存数据存储,常被用作为内存数据库.缓存.全局队列.计数器等等. Redis安装 Redis分为多种模式:单机模式.高可用模式.集群模式.这篇中主要简介单机版的安装方式. 源码构建式 ...

  9. Oracle高危安全漏洞:具有查询权限用户可绕开安全限制进行数据修改

    数据库版本 11.2.0.* 检查数据库是否存在此bug的脚本: Oracle用户执行此脚本 #!/bin/bash # Usage: 检查ORACLE数据库是否存在高危安全漏洞(具有查询权限用户可绕 ...

  10. IIS8.5中的强制https直接修改web.config文件和顶级域名跳转www和过滤子目录不强制跳转

    亲测可用 <?xml version="1.0" encoding="UTF-8"?> <configuration> <syst ...