第三章 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. 【java】final修饰符介绍

    final: 最终,作为一个修饰符特点:1.可以修饰类,函数,变量2.被final修的的类不能被继承.因此类用final修饰可以避免被继承,被子类重写功能.3.被final修饰的方法不可以被重写.4. ...

  2. stm32在linux下使用clion开发

    参考大神的资料,淘宝买了个板子和jlink 几个概念 jlink / openJtag,实现调试协议的硬件 openocd,这个和上面的硬件一起组成调试器 这样有个感性的认识. 具体流程 libusb ...

  3. IntelliJ IDEA中Terminal路径的问题(win7环境)

    在安装java jdk,配置系统变量后,再安装idea,有时候会出现使用idea中Termimal进行编译运行java文件出现,javac/java不是内部命令,或者“错误: 找不到或无法加载主类”的 ...

  4. 20175311 2018-2019-2 《Java程序设计》第1周学习总结

    教材学习内容总结 第一周我们主要尝试了怎么安装各种以后可能需要用到的软件,根据老师提供的博客教程进行自主学习安装软件,然后编写一些简单的语言程序. 教材学习中的问题和解决过程 问题1:在学习过程中主要 ...

  5. Git和代码规范

    最近发现和代码有点问题,总是在上线的紧急关头,和代码浪费了很多的时间,那么总结一下和代码的规范吧. 1.首先我们从master拉取代码进行开发. 2.开发完成之后,把代码上到test上面进行测试,上t ...

  6. Django文件存储(一)默认存储系统

    Django默认使用的文件存储系统'django.core.files.storage.FileSystemStorage'是一个本地存储系统,由settings中的DEFAULT_FILE_STOR ...

  7. lvm管理:扩展lv、删除pv、lv等

    从卷组VG里扩展lv.删除pv,并删除物理卷PV 一.扩展LV.缩小LV 1.卸载LV 命令:umount  "挂载目录" 2.扩展LV 命令:lvextend -L +500m  ...

  8. 转载:Opencv调整运行窗口图片的大小

    本文来自:http://blog.csdn.net/cumtml/article/details/52807961 Opencv在运算时显示图片问题 总结在opencv中,图片显示的问题.简要解决图片 ...

  9. PHP 设计模式(一)

    基础的三种设计模式 工厂模式 为创建对象提供了一个统一的接口,好处是当被创建对象命名空间或者名称改变时,直接修改工厂的创建方法即可 <?php class Factory{ public sta ...

  10. 使用appium做自动化测试时,send_keyss只能输入字母数字,无法输入中文

    解决方案: driver中增加以下2行配置: "unicodeKeyboard":True, #unicode编码输入 "resetKeyboard":True ...