Java语言程序设计(1).ppt_第1页
Java语言程序设计(1).ppt_第2页
Java语言程序设计(1).ppt_第3页
Java语言程序设计(1).ppt_第4页
Java语言程序设计(1).ppt_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java 语言程序设计,第 2 章 Java基础,2019/7/11,2,上章回顾,Java开发平台有几种? Java 是如何实现跨平台运行? 开发和运行Java程序的步骤是什么?,2019/7/11,3,本章总体纲要,第一部分:标识符和关键字 第二部分:数据类型、常量和变量 第三部分:运算符和表达式,2019/7/11,4,学习目标,标识符和关键字 能够区分有效和无效的标识符; 掌握Java的关键字; 数据类型 掌握8个基本的数据类型; 掌握引用数据类型; 运算符 掌握运算符的使用; 掌握表达式的组成;,2019/7/11,5,本章总体纲要,第一部分:标识符和关键字 第二部分:数据类型、常量和变量 第三部分:运算符和表达式,2019/7/11,6,Java中的标识符,标识符是用来标识变量、常量、方法、类、对象等元素的有效字符序列。 标识符组成: 字母, 数字, 下划线“_” 和 美元符号“$”;长度不限,但实际命名不宜过长; 首字符必须是字母, 下划线“_” 或 美元符号“$”; 所有标识符是区分大小写的; 关键字、false、true和null不可作为操作符;,2019/7/11,7,Java的源程序中使用16位的Unicode,而不是位的ASCII码,所以在标识符中可以使用中文; 类名字必须使用ASCII字符。 合法的标识符:name, s_no, $2, boy_number 不合法的标识符:2y,a*b,w/,2019/7/11,8,课堂练习,myVariable 9pins MYVARIABLE i a+c testing1-2-3,_myvariable java¨ My Variable $myvariable _9pins Its 猫,下列标识符哪些是正确的?,2019/7/11,9,Java关键字,关键字是指具有特殊含义的字符序列 例如: public、 static和class 具有特殊用途,不能作为变量名、方法名和类名,2019/7/11,10,Java关键字(48个),abstract default if package this boolean do implements private throw break double import protected throws byte else instanceof public transient case extends int return try catch final long static void char finally native super volatile class float new switch while const goto strictfp short continue for interface synchronized,2019/7/11,11,本章总体纲要,第一部分:标识符和关键字 第二部分:数据类型、常量和变量 第三部分:运算符和表达式,2019/7/11,12,数据类型,2019/7/11,13,数据类型,基本数据类型是由一种简单数据组成的数据类型,其数据是不可分解的。 基本数据类型已由Java预定义,类型名是关键字,如int,float,char和boolean等。 基本数据的变量中保存数据值,而引用数据类型的变量保存地址。,2019/7/11,14,基本的数据类型,有8个基本的数据类型: 整数类型:byte,short,int,long 浮点类型:double,float 文本类型:char 逻辑类型:boolean,2019/7/11,15,Java基本类型表,2019/7/11,16,整数类型:byte,short,int,long,整数类型有: 字节(byte) 短整数(short) 整数(int) 长整数(long) Java提供三种进制的整数表示形式 十进制数:09之间的数字表示的数 八进制数:07之间的数字表示的数 十六进制数:0-9,a-f(A-F)之间的字母表示的数,以0x或0X作为前缀。,2019/7/11,17,数值的表示,例如: 2-十进制2 077-八进制 0xBAAC-十六进制 对一个数值,系统自动将它设为int类型,如要将它设为long类型,要在后面加“l”或“L” 例:2L,077L,0XBAACL,2019/7/11,18,浮点类型:float,double,有两类浮点数: 单精度浮点数(float):32位 双精度浮点数(double):64位 浮点数的表示: 6.836D-双精度浮点数 2.718F-单精度浮点数 6.02E23-大数值的双精度浮点数 5.682E20F-大数值的单精度浮点数,2019/7/11,19,文本类型:char,char类型表示一个16位的Unicode字符. 字符有如下的表示方式: a, 字 n:换行(Enter),b:退格(Backspace) u0061:Unicode 十六进制码,2019/7/11,20,文本类型:String,字符串(String)不是基本的数据类型,而是一个类。 字符串用双引号来表示: “This is a string!” “这是字符串!” null 表示空串,2019/7/11,21,文本类型:char和String,例子: 定义并初始化一个字符变量: char ch=A; 定义两个字符变量: char ch1,ch2; 定义两个字符串变量并初始化它们: String greeting=“Good Morning!n”; String errorMessage=“Record Not Found!”;,2019/7/11,22,逻辑类型:boolean,boolean用来定义逻辑变量,它的取值为:true或false 例如: boolean truth=true; 定义变量truth为boolean型变量,并将其值赋为true.,2019/7/11,23,引用数据类型,除8个基本数据类型外,其它的数据类型称为引用数据类型(Reference Types) 对象变量就是一种引用数据类型,2019/7/11,24,引用数据类型,public class Mydate private int myDay; private int myMonth; private int myYear; public MyDate(int day,int month,int year) public class TestMydate Mydate today=new Mydate(28,2,2009); today 是引用数据类型,它指向一个对象,2019/7/11,25,创建对象的过程,当用new来创建对象时: Mydate today=new Mydate(28,2,2009); 系统将执行如下操作: 为对象today分配内存空间,并将所有变量初始化为0和null; 执行构造方法; 引用变量today的值为该对象的地址。,2019/7/11,26,创建对象的过程,Mydate today=new Mydate(28,2,2009); Mydate today:today new : today myDay myMonth myYear,?,2019/7/11,27,创建对象的过程,Mydate(28,2,2009) today myDay myMonth myYear,2019/7/11,28,创建对象的过程,设置引用变量: today myDay myMonth myYear,2019/7/11,29,常量,常量是指在程序运行过程中其值始终保持不变的量。Java常量包括基本数据类型常量、字符串(String)常量和null,2019/7/11,30,常量,可以用标识符表示常量,称为符号常量。 符号常量必须先声明,后使用。符号常量的声明方式如下: final 修饰符 类型标识符 常量名=(直接)常量; 修饰符是表示该常量使用范围的权限修饰符:public,private,protected或缺省。 如:final float PI=3.14159; final char SEX=M; final int MAX=100;,2019/7/11,31,常量,声明符号常量的优点如下: 增加了程序的可读性,从常量名可知常量的含义。 增强了程序的可维护性,只要在常量的声明处修改常量的值,就自动修改了程序中所有地方所使用的常量值。,2019/7/11,32,变量,变量是指在程序运行过程中其值可以改变的量。变量必须先定义后使用。其格式为: 修饰符 类型标识符 变量名=常量;,2019/7/11,33,变量,变量在计算机内部对应着一个存储单元,变量具有数据类型: 基本数据类型 引用数据类型 变量总是具有与其数据类型相对应的值 每个变量均具有: 名字、类型、一定大小的存储单元以及值 变量名对应内存的位置,2019/7/11,34,例题,例2-1 使用整数型变量:Integers.java 例2-2 使用单精度和双精度型变量: Floats.java 例2-3 使用字符类型变量: Characters.java 例2-4 使用字符串类型数据: Samp2_5.java 例2-5 使用逻辑类型变量: Logic.java,2019/7/11,35,例2-1 Integers.java,public class Integers public static void main(String args) int a=015; /八进制数 int b=20; /十进制数 int c=0x25; /十六进制数 short x=30; long y=123456L; System.out.println(“a=“+a); /输出a的值 System.out.println(“b=“+b); System.out.println(“c=“+c); System.out.println(“x=“+x); System.out.println(“y=“+y); ,2019/7/11,36,例2-2 Floats.java,public class Floats public static void main(String args) float a=35.45f; double b=3.56e18; System.out.println(“a=“+a); System.out.println(“b=“+b); ,2019/7/11,37,例2-3 Characters.java,public class Characters public static void main(String args) char ch1=a; char ch2=B; System.out.println(“ch1=“+ch1); System.out.println(“ch2=“+ch2); ,2019/7/11,38,例2-4 Samp2_5.java,public class Samp2_5 public static void main(String args) String str1=“abc“; String str2=“n“; String str3= “123“; System.out.println(“str1=“+str1+str2+“str3=“+str3); ,2019/7/11,39,例2-5 Logic.java,public class Logic public static void main(String args) boolean instance1=true; boolean instance2=false; System.out.println(“逻辑状态1=“+instance1+“ “+“逻辑状态2=“+instance2); ,2019/7/11,40,本章总体纲要,第一部分:标识符和关键字 第二部分:数据类型、常量和变量 第三部分:运算符和表达式,2019/7/11,41,运算符和表达式,对数据进行加工和处理称为运算,表示各种运算的符号称为运算符,参与运算的数据称为操作数。 根据操作数的个数,可以将运算符分为单目、双目和多目运算符。单目运算符只对1个操作数运算,双目运算符对2个操作数运算。 根据操作数和运算结果,运算符分为:算术运算符、关系运算符、逻辑运算符、位运算符。,2019/7/11,42,1、Java运算符(Operator),算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 条件运算符 括号运算符,2019/7/11,43,(1)算术运算符,算术运算符分为: 1、单目运算符(一元运算符) “+” ,“- -” 例如:x=a+;y=b- 2、双目运算符(二元运算符) +, -, *, / 3、三目运算符(三元运算符) ?: 例如: a=2; z=(a3)?a+1:a-1;,2019/7/11,44,算术运算符,+, -, *, /, % ,+, -, int i,j; double k; i=3+6; j=30-i; /j=21 i=3*3; /i=9 k=j/i; /k=21/9=2 k=21%9; /k=3 k=21/9; /k=2.0 k=21.0/9; /k=2.333333,2019/7/11,45,算术运算符,i+=4; /i=i+4 j-=8; /j=j-8 i+; /i=i+1 i-; /i=i-1 +j; /j=j+1 -j; /j=j-1 int n=7,m=7; int a=2*+m; /a=16,m=8 int b=2*n+; /b=14,n=8 y=Math.pow(x,a); /y=xa,2019/7/11,46,课堂练习,-7 / 5 =? -7 % 5=? 7 % -5 =? 5.5 % 1.0=? 10.0/3=? int x=10; x+=11; / x=? int y=x+; /y= ? ,x= ? int z=-x; /z= ? ,x= ? x=Math.pow(5,2); /x= ?,-1,-2,2,0.5,3.3333333333333335,21,21 22,21 21,25,2019/7/11,47,(2)关系运算符,关系运算是2个操作数之间的比较运算。关系运算符有:、=、=、= =和!=。 “= =”和“!=”还可用于布尔类型及字符串类型操作数。 字符类型操作数的比较依据是其Unicode值,字符串从左向右依此对每个字符比较。 关系运算的运算结果是布尔类型值。如果关系成立,结果的值为true;否则,结果的值为false。,2019/7/11,48,关系运算符,六个关系运算符: 、=、= 和 != boolean b=(1 2); / false boolean b=(3.5 != 1); / true boolean b=(51.5 = 23.0); / true boolean b=(540 = 654); / true boolean b=(24 = 3*8); / true boolean test1=(10 10); / false,2019/7/11,49,课堂练习,int i=20,j=15; boolean b=(i=10); /b=? boolean b=(ij*2); /b=?,false,false,true,true,true,2019/7/11,50,(3)逻辑运算符,逻辑运算是对布尔类型操作数进行的与、或、非、异或等运算,运算结果仍然是布尔类型值。,2019/7/11,51,逻辑运算符,六个布尔逻辑运算符: & (逻辑与AND) | (逻辑或OR) (逻辑异或XOR ) ! (逻辑非NOT) 单目运算符, 即只有一个操作数 & (条件与AND) | (条件或OR),2019/7/11,52,逻辑运算符,boolean a,b,c; c=(a /c=true,如果a=false.,2019/7/11,53,逻辑运算符,int i=20,j=28; boolean b=(i=20) /b=true,2019/7/11,54,课堂练习,int i=100,j=25; boolean b=(i+j)2000); /b=true boolean b=(i120) | (j200); /b=true boolean b=(i20); /b=false boolean b=true,a=false; boolean c=(b /c=true,2019/7/11,55,(4)位运算符,位运算是对整数类型的操作数(byte,short,int,long)按二进制的位进行运算,其运算结果仍然是整数类型值。,2019/7/11,56,位运算符,位运算符包括: &(与)、|(或)、 (非)、(异或)、(带符号右移)、(不带符号右移)和(左移),2019/7/11,57,位运算符,byte c=0x4f; /c=01001111 c=c; /c=10110000=0xb0 c=c /c=0010110101001111=01100010=0x62,2019/7/11,58,位运算符,byte c=(byte)64; /c=0x40=01000000 c=c1; /c=00100000=0x20=32=64/21 c=644; / c=00000100=0x4=4=64/24 c=-644; /c=-64/24=-4 c=1305; /c=130/25=4 c=641; /c=64*21=128 c=172; /c=17*22=68,2019/7/11,59,课堂练习,int x=0x80; x=x /x=?,0,192,-129,192,32,240,2019/7/11,60,(5)赋值运算符,赋值运算用于给变量赋值,形式如下: 变量名=表达式; 赋值运算的次序是从右向左的,即先计算表达式的值,再将表达式的值赋予变量。 例如: int i=3, j; /i的初始值是3 j=i+2; /结果,j的值是5 i=2*j; /结果,i的值是10 j=j+4; /结果,j的值是9,2019/7/11,61,复合赋值运算符,赋值类运算符包括:=、+=、-=、*=、/=、 /x=x2,2019/7/11,62,(6)条件运算符,条件运算格式如下: 表达式1 ?表达式2 :表达式3 “?:”称为条件运算符,它是三目运算符。 如果“表达式1”的值是true, “表达式2”的值是最终表达式的值;如果“表达式1”的值是false,“表达式3”的值是最终表达式的值。,2019/7/11,63,条件运算符,例如: int min , x=4, y=20; min=(x=0) ? 1 : -1); /k取1,2019/7/11,64,(7)括号运算符,圆括号运算符“()”用于改变表达式中运算符的运算次序。先进行括号内的运算,再进行括号外的运算;在有多层括号的情况下,优先进行最内层括号内的运算,再依次从内向外逐层运算。,2019/7/11,65,其它运算符,串级联运算符:+ String salutation = “Dr. ”; String name = “Peter”+ “ ”+ “Wu”; String title = salutation+ “ ”+name; /title=“Dr. Peter Wu”,2019/7/11,66,其它运算符,类型转换(casting) long bigValue = 99L; int squashed = (int) bigValue;,2019/7/11,67,2、表达式,表达式是用运算符将操作数连接起来的符合语法规则的运算式。 例如: int i=5, j=10, k; k=(24+3*i)*j;,2019/7/11,68,运算符的优先级,2019/7/11,69,续前表,2019/7/11,70,运算符的优先顺序,x=3+4*5; /x=23 fruits=oranges+apples; /fruits=(oranges+)+apples a=b+c+10; /a=(b+c)+10 int a=1,b=1,c=1; a+=b=c+=d=10; /*a+=(b=(c+=(d=10), d=10,c=11,b=11,a=12 */ 在程序中,最好用( )来区分优先.,2019/7/11,71,表达式的数据类型,表达式的数据类型由运算结果的数据类型决定。 例如: int i=3, j=21, k; boolean f; k=(i+3)*4; /(i+3)*4是算术表达式 f=(i*2)j; /(i*2)j是布尔表达式,2019/7/11,72,数据类型的转换,各个数据类型之间有强弱关系: 弱的数据类型可以直接转换成强的数据类型: double d=10; /d=10.0 强的数据类型要通过强制转换成弱的数据类型: byte b=(byte)10; int i=102; short s=(short)i;,2019/7/11,73,例题,例2-6 单目操作符实例:OOperator.java 例2-7整数相除: 使用单精度和双精度型变量: Floats.java,2019/7/11,74,例2-6 单目操作符实例:OOperator.java,public class OOPerator public static void main(String args) int i=15,j1,j2,j3,j4; j1=i+; /在操作数的右面 System.out.println(“i+=“+j1); j2=+i; /在操作数的左面 System.out.println(“+i=“+j2); j3=-i; System.out.println(“-i=“+j3); j4=i-; System.out.println(“I-=“+j4); System.out.println(“i=“+i); ,2019/7/11,75,例2-7整数相除: Floats.java,public class Divide public static void main(String args) int i=15,j=4,k; float f1,f2; k=i/j; f1=i/j; f2=(float)i/j; System.out.printl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论