java程序设计第三章PPT详细讲解.ppt

上传人:牧羊曲112 文档编号:6510024 上传时间:2023-11-07 格式:PPT 页数:69 大小:226.01KB
返回 下载 相关 举报
java程序设计第三章PPT详细讲解.ppt_第1页
第1页 / 共69页
java程序设计第三章PPT详细讲解.ppt_第2页
第2页 / 共69页
java程序设计第三章PPT详细讲解.ppt_第3页
第3页 / 共69页
java程序设计第三章PPT详细讲解.ppt_第4页
第4页 / 共69页
java程序设计第三章PPT详细讲解.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《java程序设计第三章PPT详细讲解.ppt》由会员分享,可在线阅读,更多相关《java程序设计第三章PPT详细讲解.ppt(69页珍藏版)》请在三一办公上搜索。

1、标识符、关键字和类型表达式与程序流控制数组,第三章 JAVA语言基础,标识符,标识符包括:变量名,类名,方法(函数)名以字母,_,或$开头大小写敏感,且长度没有限定如:usernameuser_name_sys_varl$change,风格约定:_,$不作为变量名,方法名开头 变量名、方法名首单词小写,其余单词只有首字母大写。如anyVariableName 接口名、类名首单词第一个字母大写。如AnyClassName 常量:完全大写 ANYCONSTANTVALUE 注释:/注释一行/*/注释一行或多行/*可用javadoc命令转化为HTML文件*/,标识符,关键字,*当前不使用*为Java

2、 2 增加的,Java 基本数据类型,逻辑型文字型整数类型浮点型,逻辑型:boolean,取值:true,false 如:boolean truth=true;,基本数据类型-逻辑型,文字型:char、String char:16位的unicode(国际码)字符。如,char mychar=Q;unicode字符集是一套字符编码系统,可以支持各类文字的字符,达34168个字符。定义形式:a;t;u?String 是类,String greeting=”Good Morning!n”;,基本数据类型-文字型,char型程序例,public class CharToInt public stati

3、c void main(String args)int intResult,intVar=10;char charVar=语;intResult=intVar+charVar;System.out.println(The char is:+charVar);System.out.println(The chars Unicode is:u+Integer.toHexString(charVar);System.out.println(The int value corresponding to the char is:+new Integer(charVar).toString();Syste

4、m.out.println(Int+intVar+adds the char,the result is:+intResult);,改改程序看结果,System.out.println(The char is:+intResult);System.out.println(The char is:+(char)intResult);System.out.println(The char is:+charVar+1);System.out.println(The char is:+(char)(charVar+1);,整数类型:byte,short,int 和 long,类型长度取值范围byte8

5、位-27 27-1short16位-215 215-1int32位-231 231-1long64位-263 263-1,基本数据类型-整数类型,Java中缺省整型是 int可有3种形式:十进制、八进制、十六进制十进制八进制十六进制int 2407710XAB07long24L0771L0XAB07L,整型常量,浮点型:float 和 double 长度:float:32位 double:64位缺省是 double 类型,如3.14(double 型)表达方法:E或e-科学记数法 6.02e23F或f-表示float类型,6.02e23FD或d-表示double 型,2.718D,基本数据类型

6、-浮点型,例3-2 基本数据类型,Assign.java,改改程序看结果,float z=3.414;double w=3.1415f;c=u0001;str=Hitoutttheren;str=Hi0outttheren;x=6.0;,exp3-3SomeConstTest.java,改改程序看结果,System.out.println(Float.NaN=+0/0);,类的初步概念,“日期”类型的两种不同表达:方式一:int day,month,year;/定义年、月、日int d1,m1,y1;/定义一个日期int d2,m2,y2;/定义另一个日期方式二:class Dateint d

7、ay;int month;int year;void setDate(int a,int b,int c).Java用class创建新的类型。,struct Dateint day;int month;int year;,类的变量的声明与引用,在Java中,一个类声明后,不能直接引用,必须经过实例化:基本类型声明后,直接开空间。如:int a;a=12;非基本类型不直接开空间,而是开辟引用空间,数据空间没有开。只有通过实例化,才能给数据开辟空间。,记不记得电视机遥控器?,类的变量的声明与引用,例:1Date today;2today=new Date();,today,遥控器,电视机,引用变量

8、之间的赋值,1Date a,b;2a=new Date();3b=a;,0 xabcd,0 xabcd,变量及作用域,变量的定义:变量的值是可以变化的,它的定义包括变量名、变量类型和作用域几个部分。注意以下几点:1)变量名必须是一个合法的标识符。变量名应具有一定的含义,以增加程序的可读性。2)变量类型可以为前面所说的任意一种数据类型。,3)声明一个变量的同时也就指明了变量的作用域,变量的作用域指明可访问该变量的一段代码。按作用域来分,变量可以有下面几种:局部变量、类成员变量、方法参数、异常处理参数。局部(local)变量是在一个方法内定义的变量,也被称作自动(automatic)、临时(tem

9、porary)或栈(stack)变量。当执行进入一个方法时,局部变量被创建,当执行离开该方法时,局部变量被清除,它的作用域为它所在的代码块(整个方法或方法中的某块代码)。在成员函数内定义的变量对该成员变量是“局部的”,因而,你可以在几个成员函数中使用相同的变量名而代表不同的变量。在一个确定的域中,变量名应该是唯一的。通常,一个域用大括号“”和“”来划定。,相对于一个方法的“局部”变量,如果在初始化之前想使用它,编译器会提示出错,如下面这样就是不允许的:void f()int i;i=i+1;,exp3-4TestInit.java,int y;,当一个对象被创建时,实例变量在分配存储器的同时被

10、值初始化。初始化值如下表所示。,补充例1:Java中的数据类型-SimpleTypes.java补充例2:Java中变量的作用域-Scope.java补充例3:Java中对象的初始化-InitVal.java,运算符与表达式,与C不同之处:Java是强类型语言,类型限制比C严格,运算符的操作对象的类型会受到更多限制。Java不提供指针运算符,增加了对象操作符instanceof,字符串运算符+和零填充的右移等。,算术运算操作符:+,-,*,/,%,+,-关系操作符:,=,&,|,(逐位异或),(按位取反)逻辑操作符:&,|,!,(异或),&,|赋值操作符:=,+=,-=,*=,/=,%=,&=

11、,|=,=,=,=其它操作符:?:,.,(),(type),new,instanceof,Java操作符类别,补充例4:Java中算术运算符的使用-ArithOp.java例3-5 一元算术运算符的使用TestUnary.java,逻辑操作符与位操作符相同的,根据操作数判定是何种运算符&,|-称为不短路与、或;&,|-称为短路与、或。,逻辑操作符与位操作符,补充例5:Java中逻辑运算符的使用-LogicOp.java,用+运算符连接字符串,String salutation=“Dr.”;String name=“Pete”+“Seymour”;String title=salutation+

12、name;则title 值:Dr.Pete Seymour,String and StringBuffer,一起看看网上的解释 String是不可变类型 StringBuffer 是可变类型 String 赋值后不能改变 StringBuffer 则没有这个问题 在内容需要变化的时候尽量用StringBuffer 比如拼SQL语句的时候最好用StringBuffer By hardas(孤魂一笑),String对象是不能更改的,java还有另外的一个标准库StringBuffer,这个对象是可以被直接更改的。当你对字符串进行转换的时候,如增加,删除,应该使用StringBuffer.如果你有静

13、态字符串,只是把他们连接起来,String对象是最佳选择!By zeusguitar(选择),String msg=“kkkk”;msg=“llll”你没有改变msg的内容,实际上是你抛弃了最初的“kkkk”对象,重新生成了llll对象。String msg=“kkkk”;String m=msg;msg=“llll”现在你得到了两个对象“kkkk”,“llll”.msg和 m 是引用,好比是个指向对象的东东。By wkrain(戈壁一沙鸥),右移操作符 和,:带符号右移1010 2 111010.:无符号右移,以0 填充1010 2 001010.,补充例6:Java中位运算符的使用-Bit

14、Op.java,Java 强制类型转换,一般形式:(type)expression例:(float)x/2对强制类型转换的限制:整型与浮点型可以相互转换,但基本类型 和数组、对象等复合类型之间不能互相转换。,补充例7:Java中的类型转换-TypeConversion.java,程序流控制,while do while for if else switch,while语句举例,例3-6:WhileDemo.java补充例8:用while语句计算10的阶乘-WhileOp.java,String copyFromMe=g;,do-while语句示例,例3-7:DoWhileDemo.java补充

15、例9:用do-while语句计算10的阶乘-DoWhileOp.java,String copyFromMe=g;,for语句,例3-8:ForDemo.java补充例10:用for语句计算10的阶乘-ForOp1.java补充例11:for语句的嵌套-ForOp2.java,*,if 语句,例3-9:IfElseDemo.java补充例12:求三个数中的最大者-MaxOfThree.java,switch 语句,例3-10:SwitchDemo.java SwitchDemo2.java补充例13:根据不同的四则运算符(+、-、*、/),对两个实数执行相应的运算并输出结果-SwitchOp2

16、.java,循环跳转语句,break label 从switch语句、循环语句中跳出。continuelabel 跳过标号循环体的其余部分,不带label 跳过 最内层循环的剩余语句。label:statement,例3-11:BreakDemo.java例3-12;3-13例3-14 ContinueWithLabelDemo.java(请考虑不用label如何处理?),数 组,声明数组数组的创建与初始化多维数组数组拷贝,数 组,数组中的元素都是同一种类型。数组的长度在创建的时候确定,并且在创建后固定不变。如果要建立存储不同类型数据的集合,或者要求集合的长度可以动态变化,可以使用Collec

17、tion(集合)类。,数组声明,可以声明基本类型和类类型的数组声明包含两部分:数组类型与数组名称。格式:C,C+标准形式:char s;Point p;char s;Point p;,推荐使用,数组的声明,在Java中数组作为类来处理,所以数组声明并不创建实例对象,而是创建一个可用来引用该数组的引用。,数组的创建与初始化,可以象其它对象一样,使用new来创建,格式:new elementTypearraySize 基本类型数组例:char s;s=new char20;/创建有20个字符的数组,尝试画出内存布局图,例3-15:ArrayDemo.java,对象数组,除了基本类型以外,还可以创建

18、对象类型的数组。Point p;/创建1个引用p=new Point100;/创建100个引用 创建100个Point对象:p0=new Point();p1=new Point();,数组的初始化,数组元素是被初始化的。字符串-u0000,null对象数组-null用初始值创建数组int a=1,2,3;String names=“Jack”,“Wang”,“Lee”;Date d=new Date(),new Date(),new Date();,对象数组举例,例3-16:ArrayOfStringsDemo.java,多维数组,声明方法 int a;或int a;实例化 a=new in

19、t44;/直接为每一维分配内存,生成规则数组 a=new int4;/只有最后维可以不给值,其它都要给,可/以生成不规则数组 a0=new int10;a1=new int5;数组成员变量length-数组元素个数:a=new int 1012;a.length=10;a0.length=12;,多维数组示例,补充例:ArrayOfArrays.java例3-17:ArrayOfArraysDemo1.java例3-18:ArrayOfArraysDemo2.java,数组拷贝,数组一旦创建,其大小不可变,但已有的数组变量 可指向全新的数组;该数组原指的内容丢失int a=new int6;a

20、=new int10;/不必重新声明 a 数组变量之间赋值是引用赋值。1 int a=new int 6;2 int b;3 b=a;,数组数据的复制,通过拷贝数组的函数。System.arrayCopy(Object source,int srcIndex,Object dest,int destIndex,int length),数组拷贝,数组拷贝示例,例3-19:ArrayCopyDemo.java补充例 ArrayCopy.java,数组拷贝示例,运行结果:,数组排序,思考:对数组9,1,3,4,2,5,7,6,8进行排序,如何写程序?补充例:ArraySort.java,说明:,在编

21、制程序中可以直接使用类Arrays提供的某个sort方法,来对数组排序。sort方法常见的使用形式如下:public static void sort(Xxx a);该方法用改进的快速排序方法对指定的数组a进行排序,其中数组a是类型为char、byte、short、int、long、float、double或者boolean的一个数组。,2查找 public static int binarySearch(Xxx a,Xxx v);该方法用折半查找算法在指定的数组a查找值为v的元素。其中数组a是类型为char、byte、short、int、long、float、double或者boolean的

22、一个数组,v是与数组a的元素类型相同的值。,3填充 public static void fill(Xxx a,Xxx v);该方法用指定的指定的值v来填充数组a,执行该方法的结果是:数组a中所有元素的值都变成v。其中数组a是类型为char、byte、short、int、long、float、double或者boolean的一个数组。,命令行参数,每一个Java Application程序都有一个含有String args参数的main方法。该方法的说明如下:public static void main(String args);这个参数String args表示main方法接收了一个字符串数组,该字符串数组就是从命令行上传递过来的参数。由于Java Application程序可以用命令行来启动,所以命令行参数就成为向Java Application程序传递参数数据的常用而且有效的手段。,补充例 CommandParam.java,上机题,P77 10,11,12,15,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号