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

第一部分:(理论知识部分)

本章主要学习:基本内容;数据类型;变量;运算符;类型转换,字符串,输入输出,控制流程,大数值以及数组。

1.基本概念:

1)标识符:由字母、下划线、美元符号、数字、汉字组成, 且第一个符号不能为数字。标识符可用作: 类名、变量名、方法名、数组名、文件名等

2)关键字:  关键字就是Java语言中已经被赋予特定意义 的一些单词。 Eg:class、public、void等。 注意:关键字不做变量名

3)三种注释方式:

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

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

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

2.数据类型:

Java是一种强类型语言。这意味着每一个变量必须声明一种为类型。
 Java共有8种基本类型
– 整数类型(int、short、long、byte)Java中没有unsigned类型 。
– 浮点类型(float、double)
– 布尔类型(boolean )    在Java中,布尔值和整数不能相互转换。只有true、false两个值。

– 字符类型 (char)     英语引号             Java采用unicode字符编码集

1)常量

2)变量:定义 ;定义同时赋值

(3)字符集:Java采用unicode字符编码集,该编码集16 位,含有65536个字符。

(4)转义字符:

3.变量

 1)声明变量:在Java中,每一个变量属于一种类型。在声明变量时,变量所属的类型位于变量名之前,一行可以声明多个变量。。如;– int vacationDays;– int i,j;

2)变量初始化:一个变量声明后,必须通过赋值语句对它进行明确的初始化——永远不要使用一个未初始化的变量的值。  在Java中,不能在同一作用域内声明两个同名的变量。一个变量声明后,必须通过赋值语句对它进行明确的初始化。

4.运算符(与面向对象运算相关):

1)各种运算符:算术运算符;自增运算符与自减运算符; 关系运算符;逻辑运算符;

2)运算符的优先级与结合性:

优先级 操作符 结合性
1 [ ] . () (方法调用) 从左到右
2 ! ~ ++ -- +(一元) –(一元) ()(强制类型转换) new 从右到左
3 * / % 从左到右
4 + - 从左到右
5 << >>(算术右移) >>>(逻辑右移) 从左到右
6 < <= > >= instanceof 从左到右
7 == != 从左到右
8 & 从左到右
9 ^ 从左到右
10 | 从左到右
11 && 从左到右
12 || 从左到右
13 ?: 从右到左
14 = += -= *= /= %= &= |= ^= <<= >>= >>>= 从右到左

Java提供的两个特别运算符:new(创建对象),Instanceof(返回一个布尔值来指出某个对象是否是一个特定类或者是它的子类的一个实例)。

5.类型转换(长字节向短字节转换):

1) 隐式类型转换:大多数的数值转换是遵循优先级的关系自动完成的。 转换原则如下: 如果两个操作数中有一个是double类型的,则另一个将 会转换成double类型。float、long型同理。否则,两个操作数都将转换成int类型。

2) 强制类型转换

6.字符串

String:不可变字符串

基本操作:(a) 获得字符串的子串;

                  (b)串连接(+);

                   (c)  获取字符串的长度;

                  (d) 检测字符串是否相等;

                   (5) 字符串检索;

获得对象的字符串表示:所有的类都默认为是java.lang包中Object类的子类或间接子类----同族同宗,所有的类都可以享用一些基本功能。

StringBuilder:允许更改和变化的构建字符串StringBuilder.

7.输入与输出:

1) 读取输入:通过控制台进行输入时,需要构造一个Scanner对象,并 与“标准输入流”System.in关联。Scanner类定义在java.util包中,因此使用时需将相应的包加载进来。
     2)格式化输出:需要构造一个PrintWriter对象, 在构造器中,只需提供文件名。
     3)文件输入与输出:需要一个用File对象构 造一个Scanner对象。

8.控制流程:if、switch、for、while、do-while。

循环语句分为三种: while; do-while;for

几点注意:
 表达式值、常量i的值为整型,不能是字符串。
 常量i != 常量j
 执行:先计算表达式值,若与常量i相同,则执行语句序列i;若都不相同,则执行语句序列n+1。
 注意case子句后的break!!

9. 大数值
 如果基本的整型和浮点型数据无法达到要求的精度,那么可以使用 java.math 包中的两个类,BigInteger和BigDecimal。这两个类可以操作任意长的数字。
 BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点运算。

10.数组: 对元素的确定是由数组名和它的下标实现的,如a[0]代表数组a的第一个元素,a[1]代表数组a的第二个元素,依次类推。
  1)声明:
       一维数组格式:
                                数组元素类型 数组名字[];
                                数组元素类型[] 数组名字; //推荐使用
      二维数组格式:
                                数组元素类型 数组名字[][];
                                 数组元素类型[][] 数组名字;//推荐使用
其中数组元素类型可以为Java中的任意类型,包括基本类型和复合类型。

2)创建:格式如下:数组名字=new 数组元素类型[个数]

3)初始化

第二部分:(实验部分)

1、实验目的与要求

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

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

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

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

2、实验内容和步骤

实验1:编写java 应用程序,输出以下4个表达式的值。

 int i=1;
double d=1.0;
(1) 45+45*50%i--
(2) 1.5*3+d++
(3) (true)&&(3>4)
(4) (i>0)||(i<0)

实验代码及调试结果如下图:

实验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如下图:

(1)   选择File->import->File ystem->Next,打开文件导入窗口如下图,点击上方Browse选择导入源程序并选中,点击下方Browse选择源程序导入位置为新项目InputTest/src位置后,点击finish完成导入。

(1)   打开InputTest项目src文件夹的缺省包,双击InputTest.java在IDE源程序编辑区打开文件。

(2)   右键单击InputTest.java文件名打开快捷菜单,选择Run as->java application运行此程序,结合程序运行结果,理解代码中Scanner类对象用法,掌握java控制台输入方法。

示例代码:

实验6按照实验5的操作步骤,导入WriteReadFileTest.java示例程序,结合程序运行结果理解程序代码,观察项目文件夹下文件myfile.txt的内容,掌握文件的输入输出操作。

 import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
import java.util.Arrays; public class WriteReadFileTest { /**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException { //写入文件演示
PrintWriter out = new PrintWriter("myfile.txt");
out.println("姓名 高数 Java 数据结构 平均成绩 总成绩");
out.println("张三 20 30 40 0 0");
out.println("李四 50 60 70 0 0");
out.close();//切记,输出完毕,需要close //读入文件演示
Scanner in = new Scanner(new File("myfile.txt"));//为myfile.txt这个File创建一个扫描器in
int number = 1;//行号
while(in.hasNextLine()){//判断扫描器是否还有下一行未读取,该循环把文件的每一行都读出
String line = in.nextLine();//读出myfile.txt的下一行
System.out.println("第"+(number++)+"行的内容" +"="+line); Scanner linescanner = new Scanner(line);//对每一行的内容建立一个扫描器
linescanner.useDelimiter(" ");//使用空格作为分隔符
String name = linescanner.next();
String math = linescanner.next();
String java = linescanner.next();
String ds = linescanner.next();
String avg = linescanner.next();
String total = linescanner.next();
System.out.println("name="+name+" math="+math+" java="+java+" ds="+ds+" avg"+avg+" total="+total);
}
in.close();//读入完毕,最后需要对其进行close。 }
}

按上述步骤导入运行截图如下:

实验7:按照实验5的操作步骤,导入第3章示例程序,每个示例程序从语法、算法两个角度总结学习内容。

(1)测试Retirement.java,Retirement2.java,LotteryOdds.java掌握循环控制结构;

1)

2)

3)

(2)测试BigIntegerTest.java,掌握大数值类的用法;

(3)测试LotteryDrawing.java,掌握数组的用法;

(4)测试CompoundInterest.java,掌握多维数组的用法;

(5)测试LotteryArray.java,掌握不规则数组的用法。

第三部分:实验总结

通过本周学习,学习到了Java的一些基本内容,认识到其语言确实与C语言极其相似,学完C语言很容易理解其中一些内容,在做实验的过程中对理论知识部分有了更深一层的理解和体会,。每个实验的语言都值得仔细体会和玩味,尤其在实验7中,通过测试Retirement.java,Retirement2.java,LotteryOdds.java等示例程序基本认识了循环控制结构、大数值类的用法、数组的用法、多维数组的用法和不规则数组的用法,除此之外,也通过几个实验熟悉了文件的导入与输出。但随着学习的深入,也让我发现了更多的问题和疑惑,我想我还需要更多的时间去琢磨这门语言!

杨其菊201771010134《面向对象程序设计Java》第二周学习总结的更多相关文章

  1. 201771010134杨其菊《面向对象程序设计java》第十周学习总结

    第8章泛型程序设计学习总结 第一部分:理论知识 主要内容:   什么是泛型程序设计                   泛型类的声明及实例化的方法               泛型方法的定义      ...

  2. 201771010134杨其菊《面向对象程序设计java》第九周学习总结

                                                                      第九周学习总结 第一部分:理论知识 异常.断言和调试.日志 1.捕获 ...

  3. 201771010134杨其菊《面向对象程序设计java》第八周学习总结

    第八周学习总结 第一部分:理论知识 一.接口.lambda和内部类:  Comparator与comparable接口: 1.comparable接口的方法是compareTo,只有一个参数:comp ...

  4. 201771010134杨其菊《面向对象程序设计java》第十二周学习总结

    第十二周学习总结 第一部分:理论知识 内容概要: AWT与Swing简介:框架的创建:图形程序设计: 显示图像: 1.AWT组件: 2.Swing 组件层次关系 3 .AWT与Swing的关系:大部分 ...

  5. 201771010134杨其菊《面向对象程序设计java》第七周学习总结

    第七周学习总结 第一部分:理论知识 1.继承是面向对象程序设计(Object Oriented Programming-OOP)中软件重用的关键技术.继承机制使用已经定义的类作为基础建立新的类定义,新 ...

  6. 201771010134杨其菊《面向对象程序设计(java)》第十六周学习总结

    第十六周学习总结 第一部分:理论知识 1. 程序是一段静态的代码,它是应用程序执行的蓝本.进程是程序的一次动态执行,它对应了从代码加载.执行至执行完毕的一个完整过程.操作系统为每个进程分配一段独立的内 ...

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

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

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

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

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

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

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

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

随机推荐

  1. Linux之find

    命令功能: find命令是用来在给定的目录下查找符合给定条件的文件.它需要从磁盘中查找,效率低,whereis和locate是基于缓存中数据库查找,效率很高,但是一些新建的文件可能未加入到数据库中,使 ...

  2. [转]C#程序性能优化

    C#程序性能优化 1.显式注册的EvenHandler要显式注销以避免内存泄漏 将一个成员方法注册到某个对象的事件会造成后者持有前者的引用.在事件注销之前,前者不会被垃圾回收.   private v ...

  3. tinycc update VERSION to 0.9.27

    TinyCC全称为Tiny C Compiler, 是微型c编译器,可在linux/win/平台上编译使用. 在用代码里面使用tcc当脚本,性能比lua还快,目前已有网游服务端使用TCC脚本提高性能. ...

  4. centos7-软件安装-jdk1.8

    JDK1.8下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 安装目录 ...

  5. PAT 甲级 1041 Be Unique (20 分)

    1041 Be Unique (20 分) Being unique is so important to people on Mars that even their lottery is desi ...

  6. 解决Error:Could not determine the class-path for interface com.android.builder.model.AndroidProject.

    见https://blog.csdn.net/qq_21397217/article/details/65630730博客

  7. springboot整合mybatis之注解方式

    1. 创建maven项目,工程目录如下图 2. 在pom.xml文件中添加mybatis依赖. 3. 创建实体类,并生成construct方法,getter和setter方法.同时在数据库中创建对应的 ...

  8. [ExcelHome]VLOOKUP的别样用法

    请看题: 如上图所示,是某小区多名业主的信息表.如诸君所见,A列是业主的姓名,B列是一些有趣的信息,要求在C列,使用VLOOKUP函数,提取出B列的手机号码. B列的信息真是奇葩,除了手机号码,还有职 ...

  9. Mybatis调用数据库的存储过程和方法

     转载. https://blog.csdn.net/ml0228123/article/details/81002258   上次的项目,要求我用java代码调用存储过程,折腾了好久.最后总算成功了 ...

  10. git 提交小备注

    总结: ·  git add -A  提交所有变化 ·  git add -u  提交被修改(modified)和被删除(deleted)文件,不包括新文件(new) ·  git add .  提交 ...