2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

第 2 章 Java 运行环境搭建 2.1 Java 的运行系统 2.1 Java 的运行系统 2.2 JDK 的安装与配置2.2 JDK 的安装与配置 2.3 Java 开发工具包 2.4 Java 源文件编辑环境的选择 2.5 Application 和 Applet 程序的编写与运行.
Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
Java 程序设计 案例教程 北京大学出版社 第 01 章. Java 程序设计案例教程 第 01 章 Java 语言与面向对象程序设计 Java 语言的历史 Java 语言的特点 Java 程序的分类 Java 环境配置 Eclipse 的安装 Java 程序的调试 教学目标.
Java 程序设计(第二版) 普通高等教育 “ 十一五 ” 国家级规划教材 辛运帷等 编著 徐小平 主讲.
单元二:面向对象程序设计 任务二:借书卡程序设计.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第一單元 建立java 程式.
项目6 通用堆栈.
《 Java开发环境配置》 主讲人:耿力.
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
四資二甲 第三週作業 物件導向程式設計.
C#程序设计案例教程 第3章 程 序 结 构.
第一章 C语言概述 计算机公共教学部.
《Java程序设计之网络编程》 教学课件 重庆大学计算机学院
南京理工大学 第2章 Java基本语法 本章我们将学习Java编程语言的基本语法,包括变量、操作符、表达式、语句、字符串、数组、控制流以及如何使用帮助文档。 使用下面的编程框架: public class Test{ public static void main(String []args){ //以下添加测试代码.
第二章 JAVA语言基础.
第三章 控制结构.
程式設計實作.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
控制流程 邏輯判斷 迴圈控制.
第二章 C# 基础知识.
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
2018/11/22 Java语言程序设计-程序流程 教师:段鹏飞.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
本單元介紹何謂變數,及說明變數的宣告方式。
2018/11/27 Java语言程序设计-程序流程 教师:段鹏飞.
程式設計實作.
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第三章 C++中的C 面向对象程序设计(C++).
2018/12/7 Java语言程序设计 教师:段鹏飞.
實作輔導 3 日期: 4/14(星期六) 09:10~12:00、13:10~16:00
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
Java程序设计 第2章 基本数据类型及操作.
第5讲 使用类和对象编程(三) 内部类 实例 程序控制结构 选择语句.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
第一單元 建立java 程式.
第三章 C# 基础知识.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
《JAVA程序设计》 语音答疑 辅导老师:高旻.
第二章Java基本程序设计.
第三课 标识符、关键字、数据类型.
第二章 Java基本语法 讲师:复凡.
C语言概述 第一章.
Java變數 2014/6/24.
4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3
第二章 Java基本语法 讲师:复凡.
C语言程序设计 李祥 QQ:
C++语言程序设计教程 第2章 数据类型与表达式 第2章 数据类型与表达式 制作人:杨进才 沈显君.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
第二章 基本数据类型 ——数据的表示.
Review 1~3.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
JAVA 程式設計與資料結構 第三章 物件的設計.
變數、資料型態、運算子.
第2章 Java语言基础.
第6章 PHP基本語法介紹.
迴圈(重複性結構) for while do while.
判斷(選擇性敘述) if if else else if 條件運算子.
第二章 Java基础语法 北京传智播客教育
第二章 Java基本语法 讲师:复凡.
Summary
Presentation transcript:

2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞

类 顾客类 轿车类 …… 类是模子,确定对象将会拥有的状态(属性)和行为(方法) 类 具有相同属性和方法的一组对象的集合

对象:用来描述客观事物的一个实体,由一组状态和行为构成 对象的特征——行为 行为(方法)——对象执行的操作 对象:用来描述客观事物的一个实体,由一组状态和行为构成 收银 收银员李明 方法 打印账单 刷卡

如何定义类 定义一个类的步骤 1、定义类名 2、编写类的属性 3、编写类的方法

类将现实世界中的概念模拟到计算机程序中 Java类模板 public class 类名 { //定义属性部分 属性1的类型 属性1; 属性2的类型 属性2; … 属性n的类型 属性n; //定义方法部分 方法1; 方法2; 方法m; }

对象、变量和属性命名,驼峰命名法,首字母小写 常量命名,全大写,下划线连接 首字符必须是字母(包括汉子,_和$) 回避Java保留字 命名约定 Java用Unicode编码来记录字符 允许中文变量名(不推荐) 类命名,驼峰命名法,首字母大写 对象、变量和属性命名,驼峰命名法,首字母小写 常量命名,全大写,下划线连接 首字符必须是字母(包括汉子,_和$) 回避Java保留字

程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier)包括:类名、变量名、常量名、方法名、… 1.1标识符与关键字(考点) 程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier)包括:类名、变量名、常量名、方法名、… 组成规则: 汉子、字母(A~Z、a~z)、特殊符号($、_)和数字(0~9) 第1个符号不能为数字 不能为关键词、true、false、null 区分大小写

举例: 1.2注释 // 单行注释,简单的解释语句含义. /* 多行注释,用来说明更多的内容,包括算法等. …… */ /** Java文档注释,可以通过javadoc生 * 成类和接口的HTML格式的帮助文档. * 这种注释有其特殊的格式(参见相关文档)

public static void main(String[] args) { Java注释 /** * Exam1_1 class实现一个应用 * 将特定的字符串显示到标注输出 */ public class Exam1_1 { public static void main(String[] args) { System.out.println(“This is a Java Application Program."); }

Java注释 文档注释:当程序员编完程序以后,可以通过JDK提供的javadoc命令,生成所编程序的API文档,而该文档中的内容主要就是从文档注释中提取的。该API文档以HTML文件的形式出现,与java帮助文档的风格与形式完全一致。凡是在“/**”和“*/”之间的内容都是文档注释。如:DocTest.java文件。      

/** 这是一个文档注释的例子,主要介绍下面这个类 */ public class DocTest{ Java注释 /** 这是一个文档注释的例子,主要介绍下面这个类 */ public class DocTest{   /** 变量注释,下面这个变量主要是充当整数计数 */   public int i;   /** 方法注释,下面这个方法的主要功能是计数 */   public void count( ) {} }

在命令行输入:javadoc DocTest.java,生成了介绍类DocTest的index.html文件 文档注释的生成 在命令行输入:javadoc DocTest.java,生成了介绍类DocTest的index.html文件

所有基本类型所占的位数都是确定的,并不因操作系统的不同而不同。 所有基本类型的关键词都是小写的。 2.1 Java基本数据类型 所有基本类型所占的位数都是确定的,并不因操作系统的不同而不同。 所有基本类型的关键词都是小写的。 数据类型 Java C/C++ 所占位数 值的范围 char 16 0 ~65535 8 -27~27-1 byte 0-255 short -215~215-1 int 32 -231~231-1 16/32 - long 64 -263~263-1 32/64 float 3.4e-038 ~3.4e+038 double 1.7e-308 ~1.7e+308

ascii Latin-1/iso8859-1(0-255) GB2312/GBK,GBK兼容繁体字 2.1 字符发展 ascii Latin-1/iso8859-1(0-255) GB2312/GBK,GBK兼容繁体字 (GB2312 1981年实施,收录6763个汉字, GBK收录21886个字) BIG5,台湾标准,收录13461个字 unicode,支持七千多个汉字 UTF8

2.1 Unicode char c = ‘\u5E74’; //char c = ‘年’; String s1 = “Java\u8BED\u8A00”; //String s1 = “Java语言”; String s2 = "\u0030\u0031"; //String s2 =“01”; System.out.println(c ); System.out.println(s1); System.out.println(s2);

Eclipse简介 Eclipse(日食)

Eclipse简介 Eclipse简介 Eclipse是一种可扩展的开放源代码IDE。2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。 常见的JAVA集成开发环境 IntelliJ IDEA、Sun的NetBeans、Sun的Sun Java Studio、Borland的JBuilder 、 Oracle 的JDeveloper 等

Eclipse使用 下载地址:eclipse.rar

Eclipse 安装与使用 安装步骤: 安装JDK 将Eclipse压缩包解压即可。 运行:执行解压目录中eclipse.exe

/links 其他plugins和features的连接地址的存放目录 /readme eclipse.exe 启动Eclipse程序 /workspace 具体的项目目录。workspace目录下还有一个.metadata的目录,这个目录存着你这个启动的工作区的所有配置 。

Eclipse开发环境

项目构建 1.选择文件→新建→项目; 2.项目类别选Java; 3.项目列表选Java项目; 4.点击“下一步”; 5.输入项目名称,例如:HelloProject; 6.点击“完成”; 7.在工具条里点击“创建Java类”的按钮 ; 8.在名称域输入HelloWorld; 9.点击public static void main(String[] args) 的复选框,让Eclipse创建 main方法 ; 10.点击“完成”; 11.一个Java编辑窗口将打开,在main方法中输入 System.out.println(“Hello World”)行; 12.使用Ctrl-s保存,这将自动编译 HelloWorld.java; 13.点击工具条里的“运行”按钮; 14.测试成功,控制台窗口,一句 “Hello World”将会显示在里面 。

Eclipse有一个增量编译器,每次保存一个Java文件时它就自动进行编译。这个特性被称做“自动构建”。 调试运行 Eclipse有一个增量编译器,每次保存一个Java文件时它就自动进行编译。这个特性被称做“自动构建”。

Java程序结构 package语句 //0或1条,必须放在文件开始 import语句 //0或多条,必须放在所有类定义之前 public classDefinition //0或1个。文件名必须与该类的类名完全相同 classDefinition //类定义,个数不限 interfaceDefinition //接口定义,个数不限

Java程序结构示例 package javawork.helloworld; /*把编译生成的所有.class文件放到包 import java.awt.*;   //告诉编译器本程序中用到系统的AWT包 import javawork.newcentury; /*告诉编译器本程序中用到用户自定义                的包javawork.newcentury*/ public class HelloWorldApp{......} /*公共类HelloWorldApp的定义,                    名字与文件名相同*/ class TheFirstClass{......} //第一个普通类TheFirstClass的定义 class TheSecondClass{......} //第二个普通类TheSecondClass的定义 ......         //其它普通类的定义 interface TheFirstInterface{......} //第一个接口TheFirstInterface的定义 ...... //其它接口定义

Java编程规范 包名 类名 接口名 方法名 变量名 常量名 全小写,一般为名词,如:java.awt.event; 首字母大写,每个单词的首字母大写,如:class HelloWorldApp;  接口名 同类名,如:interface Collection; 方法名 一般为动词,小写字母开头,每个单词的首字母都要大写,如:balanceAccount, isButtonPressed; 变量名 一般为动词,小写字母开头,每个单词的首字母都要大写,如:length; 常量名 基本类型的常量名为全大写,如:int YEAR, int WEEK_OF_MONTH;对象常量大小写混合。

布尔型数据只有两个值true和false,且它们不对应于任何整数值 布尔型变量的定义如: 2.1 布尔类型(boolean) 布尔型数据只有两个值true和false,且它们不对应于任何整数值 布尔型变量的定义如: boolean b = true; 布尔型数据只能参与逻辑关系运算: && || == != ! 示例: boolean b1; boolean b2 = true; b = !b2; boolean b = (b1 && b2) != false;

2.2常量和变量 与 C、 C++不 同,Java中 不 能 通 过 #define命 令 把 一 个 标 识 符 定 义 为 常 量,而 是 用 关 键 字 final来 定义,定义常量的一般格式为: final 类型 常量标识符 = 常数值; final int MAX_NUM = 100; final double PI = 3.1415926;

程序中的基本存储单元,其定义包括变量名、变量类型和作用域几个部分,定义格式为: 2.2常量和变量 程序中的基本存储单元,其定义包括变量名、变量类型和作用域几个部分,定义格式为: 类型 变量名 = 值 ; int n1 = 3, n2 = 4; Java中变量的缺省初值都是确定的: 布尔变量的初值为:false 整数变量的初值为:0 浮点数变量的初值为:0.0 引用(复合)变量的初值为:null 在方法实现中定义的变量必须显式的初始化。 变量的作用域 指可访问变量的一段代码,在程序中不同的地方声明的变量具有不同的作用域:局部变量、类变量、方法参数、例外处理参数。在一定的作用域内,变量名必须唯一。

2.3数据类型的转换 自动类型转换 整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级: 低----------------------------------------------------->高 byte,short,char—> int —> long—> float —> double 操作数1类型 操作数2类型 转换后的类型 byte、short、char int int byte、short、char、int long long byte、short、char、int、long float float byte、short、char、int、long、float double double System.out.println(‘a’)与System.out.println(’a’+1) 的区别。

2.3 常量与变量 自动类型转换(也叫隐式类型转换) 强制类型转换(也叫显式类型转换) 类型转换的原理 什么时候要用强制类型转换? 表达式的数据类型自动提升 • 所有的byte型、short型和char的值将被提升到int型。 • 如果一个操作数是long型,计算结果就是long型; • 如果一个操作数是float型,计算结果就是float型; • 如果一个操作数是double型,计算结果就是double型。 分析 System.out.println(‘a’)与System.out.println(’a’+1) 的区别。

2.3数据类型的转换 自动类型提升 byte b = 3; int x = 4; x = x + b;//b会自动提升为int类型进行运算。  自动类型提升 byte b = 3; int x = 4; x = x + b;//b会自动提升为int类型进行运算。 强制类型转换 b = b + 4;//报错 b = (byte)b+4;//强制类型转换,强制将b+4的结果转换为byte类型,再赋 值给b。 思考: byte b1=3,b2=4,b; b=b1+b2; b=3+4; 哪句是编译失败的呢?为什么呢?

3、Java运算符和表达式 3.1 优先级、结合性以及单/双目运算 3.2 Java 运算符和表达式

优先级、结合性以及单/双目运算 3.1 优先级、结合性以及单/双目运算 1) . , [] , () 9) & 1) . , [] , () 9) & 2) ++ , -- , ! , ~ , instanceof 10) ^ 3) new (type) 11) | 4) * , / , % 12) && 5) + , - 13) || 6) >> , >>> , << 14) ?: 7) > , < , >= , <= 15) = , += , -= , *= , /= , %= , ^= 8) == , != 16) &= , |= , <<= , >>= , >>>= Stu s = new Stu(); int a = ++s.age*3>>;

(1)运算符 3.2 Java 运算符和表达式 算术运算符: +,―,*,/,%,++,―― 关系运算符: >,<,>=,<=,==,!= 布尔逻辑运算符: !,&&,|| 位运算符: >>,<<,>>>,&,|,^,~ 赋值运算符: =,及其扩展赋值运算符如+=,―=,*=,/=等。 条件运算符: ? :

3.2 Java 运算符和表达式 位运算符 运算符 << >> >>> & | ^ ~ 运算 左移 右移 无符号右移 与运算 或运算 异或运算 反码 范例 3 << 2 = 12 ‐‐> 3*2*2=12 3 >> 1 = 1  ‐‐> 3/2=1 3 >>> 1 = 1 ‐‐> 3/2=1 6 & 3 = 2 6 | 3 = 7 6 ^ 3 = 5 ~6 = ‐7

3.2 Java 运算符和表达式 “&”和“&&”的区别: 单&时,左边无论真假,右边都进行运算; 双&时,如果左边为真,右边参与运算,如果左边为假,那 么右边不参与运算。 “|”和“||”的区别同理,双或时,左边为真,右边不参与运算。

表达式是由操作数和运算符按一定的语法形式组成的符号序列。 3.2 Java 运算符和表达式 (2)表达式 表达式是由操作数和运算符按一定的语法形式组成的符号序列。 一个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值; 表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。 例: x num1+num2 a*(b+c)+d 3.14 x<=(y+z) x&&y||z

4.1 选择语句:if-else, switch-case 4.2 循环语句:while, do-while, for 4、Java控制结构 4.1 选择语句:if-else, switch-case 4.2 循环语句:while, do-while, for 4.3 跳转语句:continue, break, return

布尔表达式boolean-expression是任意一个返回布尔数据类型的表达式,而且必须是(比C或C ++要严格)。 4.1 选择语句:if-else 布尔表达式boolean-expression是任意一个返回布尔数据类型的表达式,而且必须是(比C或C ++要严格)。 与C或C++一样,每个单一语句后面都要有分号。为了增强程序的可读性,应将if或else后的语句用{}括起来。 else子句是任选的,不能单独作为语句使用,它必须和if语句配对使用,并且总是与离它最近的if配对。 int i1 = 123; int i2 = 456; if( i1>i2 ) { System.out.println(“The bigger one is: ”+i1); } else System.out.println(“The bigger one is: ”+i2);

4.1 选择语句:switch switch (expression) { case value1 : statements1; break; } …… case valueN : statementsN; [default : defaultStatements; }]

表达式expression的返回值类型必须是这几种类型之一:int、byte、char、short char(String在java7 4.1 选择语句: switch 表达式expression的返回值类型必须是这几种类型之一:int、byte、char、short char(String在java7 中被支持) 。 case子句中的值valueI必须是常量,而且所有case子句中的值应是不同的。 default子句是任选的。 break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。 (如果某个case分支后没有break语句,程序将不再做比较而执行下一个分支。) switch语句的功能可以用if-else语句来实现,但某些情况下,使用switch语句更简炼。

4.2循环语句 for循环 while循环 do-while循环 int sum =0; for( int i=1; i<=10; i++ ) { sum += i; } int n = 1, sum = 0; while ( n<=10 ) { sum = sum + n; n++; } do-while循环 int n = 10, sum = 0; do { sum += n; n--; }while( n>0);

4.3 跳转语句: continue outer: for( int i=0; i<10; i++ ) //外层循环 { inner: for( int j=0; j<10; j++ ) //内层循环 if( i<j ) …… continue outer; } } //内层循环结束 } //外层循环结束 for( int i= 0; i <10; i++ ) { if( i == 5 ) continue; } ……

4.3跳转语句: break a:{ //标记代码块a …… b:{ //标记代码块b c:{ //标记代码块c break b; …… //这段语句将不执行 } //代码块c结束 …… //这段语句也不执行 } //代码块b结束 …… //从这段语句开始执行 } //代码块a结束

1.下列标识符中,哪些是合法的变量名,哪些是不合法的变量名? 练习(1) 1.下列标识符中,哪些是合法的变量名,哪些是不合法的变量名? (1)char (2)2abc (3)$_isTrue (4)i+j (5)_istrue(6)变量6 (7)String (8)3.14159 2.判断下面的程序段是否正确,若有错误,错在哪里,应该如何改正,并且测试改正后的输出结果。 public static void main(String[] args){ ch = ‘a’; char ch; System.out.println(“ch=”+ch); }

练习(2) 3.写出下面程序的运行结果。 //Examplex2_3.java public class Example2_3{ public static void main(String[] args){ int x = 1,a = 0,b = 0; switch(x){ case 0: b++; case 1: a++; case 2: a++,b++; } System.out.prinln(“a=”+a); System.out.prinln(“b=”+b);

练习(3) 4.写出下面表达式的最后运算结果,并且令a = 1,b = 2,c =3,d = false。 (1)a+=b--/++c; (2)d = !((a>=--b/b++<=c--)&&a==b); (3)d = b>c^a!=c; 5.编写Java程序,计算sum = 1!+2!+……+10!。

练习(4) 6.编写Java程序,输出从公元1990年到2007年所有闰年的年号,每输出两个年号换一行。判断年号是否为闰年的条件是: (1)若年号能被4整除,而不能被100整除,则是闰年; (2)若年号能被400整除也是闰年。

7.利用for循环编写一个程序,将如下图案分别打印输出。 * *** ***** ******* 练习(5) 7.利用for循环编写一个程序,将如下图案分别打印输出。 * *** ***** *******

8.编写一个方法来计算正方形的面积和周长。 9.编写程序找出所有的水仙花数;水仙花数是三位数,它的各位数字的立方和等于这个三位数本身。 练习(6) 8.编写一个方法来计算正方形的面积和周长。 9.编写程序找出所有的水仙花数;水仙花数是三位数,它的各位数字的立方和等于这个三位数本身。

2019/1/17 谢谢