Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞."— Presentation transcript:

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

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

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

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

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

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

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

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

9 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."); }

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

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

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

13 所有基本类型所占的位数都是确定的,并不因操作系统的不同而不同。 所有基本类型的关键词都是小写的。
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

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

15 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);

16 Eclipse简介 Eclipse(日食)

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

18 Eclipse使用 下载地址:eclipse.rar

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

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

21 Eclipse开发环境

22 项目构建 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”将会显示在里面 。

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

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

25 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的定义 //其它接口定义

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

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

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

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

30 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) 的区别。

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

32 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; 哪句是编译失败的呢?为什么呢?

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

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

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

36 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

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

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

39 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

40 布尔表达式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);

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

42 表达式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语句更简炼。

43 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);

44 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; } ……

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

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

47 练习(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);

48 练习(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!。

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

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

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

52 2019/1/17 谢谢


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

Similar presentations


Ads by Google