【教学课件】第一章Java概述.ppt
第一章 Java概述 Java Java程序调试步骤程序调试步骤程序调试步骤程序调试步骤JavaJava源程序的构成(见例:源程序的构成(见例:源程序的构成(见例:源程序的构成(见例:Fname.javaFname.java)JavaJava程序的文件名要与程序中的程序的文件名要与程序中的publicpublic类名一致类名一致一一个个文文件件中中可可出出现现多多个个类类,但但只只有有一一个个可可以以定定义义为为PublicPublic的主类,也可以没有的主类,也可以没有PublicPublic的主类的主类包含包含mainmain方法的类称为方法的类称为javajava应用程序的主类应用程序的主类一一个个文文件件中中出出现现多多个个类类,则则编编译译后后将将产产生生多多个个字字节节码码文件文件程序的编译命令程序的编译命令程序的编译命令程序的编译命令javacjavac 文件名文件名.javajava程序的编译命令程序的编译命令程序的编译命令程序的编译命令javajava主类名主类名第二章 Java程序的基本概念Java符号:符号:JavaJava语言主要由五种元素组成:语言主要由五种元素组成:标识符标识符、关键字关键字、运运算符算符、分隔符分隔符和和注释注释。1.1.标识符的定义标识符的定义 标识符是以标识符是以字母,下划线(字母,下划线(_ _),美元符美元符($)($)开始开始的的一个字符序列,后面可以跟字母,下划线,美元符,数一个字符序列,后面可以跟字母,下划线,美元符,数字字。2.2.关键字关键字 JavaJava语言中将一些单词赋以特殊的用途,不能当作一语言中将一些单词赋以特殊的用途,不能当作一般的标识符使用,这些单词称为般的标识符使用,这些单词称为关键字关键字(Key wordKey word)或)或保留字保留字(reserved word)(reserved word)。3.3.分隔符分隔符 在在JavaJava中,圆点中,圆点“.”“.”、分号、分号“;”、空格和花括号、空格和花括号“”等符号具有特殊的分隔作用。我们将其统称为等符号具有特殊的分隔作用。我们将其统称为分隔分隔符符。每条每条JavaJava语句是以语句是以分号分号作为结束标记。一行可以写多条作为结束标记。一行可以写多条语句,一条语句也可以占多行。语句,一条语句也可以占多行。JavaJava中可以通过中可以通过花括号花括号将一组语句合并为一个将一组语句合并为一个语句块语句块。4.4.注释注释注释是程序中的可选部分,但在程序的关键部分书写注注释是程序中的可选部分,但在程序的关键部分书写注释是良好的习惯。释是良好的习惯。单行注释符单行注释符setLayoutsetLayout(new(new FlowLayout FlowLayout()();/默认的布局默认的布局 多行注释:多行注释:以以“/*/*”和和“*/*/”进行标记,其中进行标记,其中“/*/*”标标志着注释块的开始,志着注释块的开始,“*/*/”标志注释块的结束。标志注释块的结束。/*/*以下程序段循环计算并输出以下程序段循环计算并输出 2 2!、!、3 3!9!9!的值的值*/*/文档注释文档注释:类似前面的多行注释,但注释开始标记为:类似前面的多行注释,但注释开始标记为“*”,结束仍为,结束仍为“*/*/”。文档注释除了起普通注释的。文档注释除了起普通注释的作用外,还能够被作用外,还能够被JavaJava文档化工具(文档化工具(javadocjavadoc)识别和处识别和处理,在自动生成文档时有用。理,在自动生成文档时有用。基本数据类型基本数据类型常量与变量常量与变量常量常量:是指在程序运行过程中其值保持不变的量是指在程序运行过程中其值保持不变的量truefasle120540 xA0X1112L6.373e-23e-21.0fdn“abc”“12”“常量常量”变量变量变量变量:在程序中通过变量来保存那些运行可变的数据,在程序中通过变量来保存那些运行可变的数据,JavaJava中的变量必须先声明,后使用。中的变量必须先声明,后使用。格式:类型格式:类型 变量名变量名=值值 ,变量名,变量名=值值,;int count;int count;double m,n=0;double m,n=0;char c=a;char c=a;count=0;count=0;赋值与强制类型转换赋值与强制类型转换:赋值语句的格式为:赋值语句的格式为:变量变量=表达式;表达式;系统自动转换系统自动转换:B B byte-short-char-int-long-float-byte-short-char-int-long-float-doubledouble强制类型转换格式为强制类型转换格式为:变量变量=(数据类型数据类型)表达式表达式运算符与表达式运算符与表达式算术运算符算术运算符l l“/”“/”运算对与整数和浮点数情况不同,运算对与整数和浮点数情况不同,7/27/2结结果为果为3 3,而,而7.0/2.07.0/2.0结果为结果为3.53.5。l l取模运算取模运算“%”“%”一般用于整数运算,它是用来一般用于整数运算,它是用来得到余数部分。但当参与运算的量为负数时,结果的正得到余数部分。但当参与运算的量为负数时,结果的正负性取决与被除数的正负。负性取决与被除数的正负。7%-2 7%-2 7%2 7%2-7%2-7%2-7%-2-7%-2 7.2%2.8=7.2%2.8=1.60000000000000051.6000000000000005 l l+/-运算符运算符a+/+a a+/+a 功能等价功能等价 a=a+1 a=a+1 a-/-a a-/-a 功能等价功能等价 a=a-1 a=a-1变量的自增与自减与变量的自增与自减与+出现的前后位置无关。出现的前后位置无关。无论是无论是+x+x还是还是x+x+均表示均表示x x要增要增1 1。ll表达式的值与运算符位置有关。表达式的值与运算符位置有关。m=3 m=3 n=36+4*2%m-n=36+4*2%m-/m=2,n=38/m=2,n=38 m=m=36+4*2%m-36+4*2%m-/m=36,n=38/m=36,n=38m=3m=m+/m=3m=+m/m=4关系运算符关系运算符(、=、=、=、!=)也称比较运算符,是用于比较两个数据之间的大小关系也称比较运算符,是用于比较两个数据之间的大小关系的运算。的运算。关系运算关系运算结结果是布果是布尔尔值值(true(true或或false)false)int X=5;int X=5;y=(x=5);y=(x=5);y=(x=5);y=(x=5);逻辑运算符逻辑运算符x=2;x=2;(5=2)&(2(x+)(5=2)&(2(x+)(5=2)|(2(x+)(5=2)|(2(x+)!(5=2)|(2(+x)!(5=2)|(2,其他运算符其他运算符运算符 描述?:作用相当于if-else语句 用于声明数组,创建数组以及访问数组元素.用于访问对象实例或者类的类成员函数(type)强制类型转换 new 创建一个新的对象或者新的数组 instanceof 判断对象是否为类的实例 第三章 Java结构化程序设计字符类型数据的输入字符类型数据的输入(见例(见例ch03SimpleCharInOut.java)利用标准输入流利用标准输入流(System.inSystem.in)的的read()read()方法,可以方法,可以从键盘读取字符。但要注意,从键盘读取字符。但要注意,read()read()方法从键盘获取的方法从键盘获取的是输入的字符的字节表示形式(是输入的字符的字节表示形式(返回结果为返回结果为intint类型类型),),需要使用强制转换将其转化为字符型。需要使用强制转换将其转化为字符型。字符串的输入字符串的输入 方法方法1 1:利用获取字符的办法将一个个字符拼接为一个:利用获取字符的办法将一个个字符拼接为一个字符串。但这样做除了编程复杂外,更重要的是效率也字符串。但这样做除了编程复杂外,更重要的是效率也比较低比较低;方法方法2 2:将键盘输入的数据看作字符流,利用:将键盘输入的数据看作字符流,利用InputStreamReaderInputStreamReader将从键盘输入的字节流数据转化为将从键盘输入的字节流数据转化为字符序列来识别。利用字符序列来识别。利用BufferReaderBufferReader对字符流序列进行对字符流序列进行过滤,借助过滤,借助BufferReaderBufferReader流对象提供的方法流对象提供的方法readLine()readLine()从键盘读取一个字符串。从键盘读取一个字符串。BufferedReaderbuf;buf=newBufferedReader(newInputStreamReader(System.in);Stringstr;System.out.print(“Inputastring:”);Str=buf.readLine();数值类型的输入数值类型的输入其它类型的数据输入必须通过字符串输入方法得到其它类型的数据输入必须通过字符串输入方法得到数据,再通过基本数据类的方法将字符串转换为相数据,再通过基本数据类的方法将字符串转换为相应类型的数据。应类型的数据。例例:String x=123String x=123;int m=Integer.parseInt(x)int m=Integer.parseInt(x)/m/m的值为的值为123123 条件选择结构条件选择结构(1)(1)格式格式:无无elseelse的的ifif语句语句格式格式格式格式:if(boolean-expression)if(boolean-expression)if(boolean-expression)if(boolean-expression)statement1;statement1;statement1;statement1;【(2)(2)格式格式:有有elseelse的的ifif语句语句格式格式格式格式:If(boolean-expression)If(boolean-expression)If(boolean-expression)If(boolean-expression)statement1;statement1;statement1;statement1;/if/if/if/if块块块块 else else else else statement2;statement2;statement2;statement2;/else/else/else/else块块块块 (3)(3)格式格式:嵌套的嵌套的ifif语句语句概念概念概念概念:所谓所谓所谓所谓ifififif嵌套就是在嵌套就是在嵌套就是在嵌套就是在ifififif语句的语句的语句的语句的ifififif块或块或块或块或elseelseelseelse块中继续块中继续块中继续块中继续含有含有含有含有ifififif语句。语句。语句。语句。例例例例:现在有三个整数现在有三个整数现在有三个整数现在有三个整数a a a a、b b b b、c c c c,要判别它们能否构成三角形的,要判别它们能否构成三角形的,要判别它们能否构成三角形的,要判别它们能否构成三角形的三条边,则首先应判别这三个整数是否都大于零,然后才判三条边,则首先应判别这三个整数是否都大于零,然后才判三条边,则首先应判别这三个整数是否都大于零,然后才判三条边,则首先应判别这三个整数是否都大于零,然后才判别其任意两个数之和是否大于第三个数,其程序块为:别其任意两个数之和是否大于第三个数,其程序块为:别其任意两个数之和是否大于第三个数,其程序块为:别其任意两个数之和是否大于第三个数,其程序块为:if (a0)&(b0)&(c0)if (a0)&(b0)&(c0)if (a0)&(b0)&(c0)if (a0)&(b0)&(c0)if(a+bc)&(a+cb)&(b+ca)if(a+bc)&(a+cb)&(b+ca)if(a+bc)&(a+cb)&(b+ca)if(a+bc)&(a+cb)&(b+ca)System.out.prinlnt(Yes);System.out.prinlnt(Yes);System.out.prinlnt(Yes);System.out.prinlnt(Yes);else else else else System.out.prinlnt(No);System.out.prinlnt(No);System.out.prinlnt(No);System.out.prinlnt(No);elseelseelseelse System.out.prinlnt(No);System.out.prinlnt(No);System.out.prinlnt(No);System.out.prinlnt(No);(4)(4)格式格式:阶梯阶梯if-elseif-else语句语句用于处理用于处理多个分支多个分支的情况,的情况,格式格式格式格式:if if 1 语句块语句块1 1 else if else if 2 语句块语句块2 2 else if else if n 语句块语句块n n else else 语句块语句块n+1n+1 (5)(5)格式格式:switch:switch语句语句也是用于也是用于处理多个分支处理多个分支的情况,的情况,格式格式格式格式:switch(expression)switch(expression)case value1:statement1;break;/case value1:statement1;break;/分支分支1 1 case value2:statement2;break;/case value2:statement2;break;/分支分支2 2 .case valueN:statementN;break;/case valueN:statementN;break;/分支分支n n default:default:缺省语句块缺省语句块;/;/分支分支n+1,n+1,均不符合均不符合 循环结构循环结构一一):):概述概述 循环结构循环结构循环结构循环结构:是在一定条件下反复执行是在一定条件下反复执行是在一定条件下反复执行是在一定条件下反复执行一段代码,被反复执行的程序段称为一段代码,被反复执行的程序段称为一段代码,被反复执行的程序段称为一段代码,被反复执行的程序段称为循循循循环体环体环体环体。类型及特点类型及特点类型及特点类型及特点 whilewhilewhilewhile语句语句语句语句:先判断后执行先判断后执行先判断后执行先判断后执行 do-whiledo-whiledo-whiledo-while语句语句语句语句:先执行后判断先执行后判断先执行后判断先执行后判断 forforforfor语句语句语句语句:循环次数有规律循环次数有规律循环次数有规律循环次数有规律 循环嵌套循环嵌套循环嵌套循环嵌套:不能出现结构交叉不能出现结构交叉不能出现结构交叉不能出现结构交叉(1)(1)格式格式:for:for语句语句(用于事先能确定循环次数的场合用于事先能确定循环次数的场合用于事先能确定循环次数的场合用于事先能确定循环次数的场合)for(控制变量设定初值;循环条件;迭代部分)循环体(2)(2)格式格式:While:While语句语句(用于先判断后执行用于先判断后执行用于先判断后执行用于先判断后执行)while(条件表达式)循环体(3)(3)格式格式:Do While:Do While语句语句(用于先执行后判断用于先执行后判断用于先执行后判断用于先执行后判断)do 循环体 while(条件表达式);(1)(1)格式格式:Break:Break语句语句在在在在各各各各类类类类循循循循环环环环语语语语句句句句中中中中,breakbreakbreakbreak语语语语句句句句也也也也给给给给提提提提供供供供了了了了一一一一种种种种方方方方便便便便的的的的跳跳跳跳出出出出循循循循环环环环的的的的方方方方法法法法。它它它它有有有有两两两两种种种种使使使使用用用用形形形形式式式式:(1)(1)(1)(1)break break break break /不不不不带带带带标标标标号号号号,从从从从breakbreakbreakbreak直直直直接接接接所所所所处处处处的的的的循循循循环环环环体中跳转出来。体中跳转出来。体中跳转出来。体中跳转出来。(2)(2)(2)(2)break break break break 标标标标号号号号名名名名 /带带带带标标标标号号号号,跳跳跳跳出出出出标标标标号号号号所所所所指指指指的的的的代代代代码块,执行块后的下一条语句。码块,执行块后的下一条语句。码块,执行块后的下一条语句。码块,执行块后的下一条语句。(2)(2)格式格式:Continue:Continue语句语句continuecontinuecontinuecontinue语语语语句句句句用用用用来来来来结结结结束束束束本本本本次次次次循循循循环环环环,跳跳跳跳过过过过循循循循环环环环体体体体中中中中下下下下面面面面尚尚尚尚未未未未执执执执行行行行的的的的语语语语句句句句,接接接接着着着着进进进进行行行行终终终终止止止止条条条条件件件件的的的的判判判判断断断断,以决定是否继续循环。以决定是否继续循环。以决定是否继续循环。以决定是否继续循环。对对对对于于于于forforforfor语语语语句句句句,在在在在进进进进行行行行终终终终止止止止条条条条件件件件的的的的判判判判断断断断前前前前,还还还还要要要要先执行迭代语句。它有两种形式:先执行迭代语句。它有两种形式:先执行迭代语句。它有两种形式:先执行迭代语句。它有两种形式:(1)(1)(1)(1)continue continue continue continue /不不不不带带带带标标标标号号号号,终终终终止止止止当当当当前前前前一一一一轮轮轮轮的的的的循循循循环环环环,继续下一轮判断继续下一轮判断继续下一轮判断继续下一轮判断 (2)(2)(2)(2)continue continue continue continue 标标标标号号号号名名名名 /带带带带标标标标号号号号,跳跳跳跳转转转转到到到到标标标标号号号号指指指指明的外层循环中明的外层循环中明的外层循环中明的外层循环中 (3)Return(3)Return语句语句作用作用:结束方法的运行,并将结果结束方法的运行,并将结果返回给方法调用者返回给方法调用者。方法方法一一):):方法定义方法定义(声明声明)定义方法由方法头和方法体组成定义方法由方法头和方法体组成定义方法由方法头和方法体组成定义方法由方法头和方法体组成,其一般格式如下其一般格式如下其一般格式如下其一般格式如下:type type type type 方法名(方法名(方法名(方法名(type type type type 参数参数参数参数1 1 1 1,type type type type 参数参数参数参数2 2 2 2,)程序语句;程序语句;程序语句;程序语句;return return return return 表达式;表达式;表达式;表达式;二二):):方法调用方法调用(1)(1)对象的创建对象的创建语句语句语句语句:类名类名类名类名 对象名;对象名;对象名;对象名;/声明声明声明声明语句语句语句语句:对象名对象名对象名对象名=new=new=new=new 类名(参数);类名(参数);类名(参数);类名(参数);/创建创建创建创建例例例例:如要创建圆柱体类的对象,用下面的语句:如要创建圆柱体类的对象,用下面的语句:如要创建圆柱体类的对象,用下面的语句:如要创建圆柱体类的对象,用下面的语句:Cylinder yz1=new Cylinder()Cylinder yz1=new Cylinder()Cylinder yz1=new Cylinder()Cylinder yz1=new Cylinder()(2)(2)(2)(2)分类分类分类分类:根据方法的不同定义根据方法的不同定义根据方法的不同定义根据方法的不同定义,有两种不同类型的有两种不同类型的有两种不同类型的有两种不同类型的方法:实例方法与类方法。方法:实例方法与类方法。方法:实例方法与类方法。方法:实例方法与类方法。实例方法实例方法实例方法实例方法 对于类中所定义的方法,必须先创建对象,再利对于类中所定义的方法,必须先创建对象,再利对于类中所定义的方法,必须先创建对象,再利对于类中所定义的方法,必须先创建对象,再利用对象来调用它,具有这种用对象来调用它,具有这种用对象来调用它,具有这种用对象来调用它,具有这种“必须通过对象才能被必须通过对象才能被必须通过对象才能被必须通过对象才能被调用调用调用调用”特性的方法,在特性的方法,在特性的方法,在特性的方法,在JavaJavaJavaJava中被称之为实例方法。中被称之为实例方法。中被称之为实例方法。中被称之为实例方法。类方法类方法类方法类方法 与实例方法不同,类方法是可以在不产生对象与实例方法不同,类方法是可以在不产生对象与实例方法不同,类方法是可以在不产生对象与实例方法不同,类方法是可以在不产生对象的情况下,直接用类来调用的方法。的情况下,直接用类来调用的方法。的情况下,直接用类来调用的方法。的情况下,直接用类来调用的方法。调用方法就是要执行方法,方法调用的形式为:调用方法就是要执行方法,方法调用的形式为:调用方法就是要执行方法,方法调用的形式为:调用方法就是要执行方法,方法调用的形式为:对象名对象名对象名对象名.方法名(实际参数表)方法名(实际参数表)方法名(实际参数表)方法名(实际参数表)实例方法调用实例方法调用实例方法调用实例方法调用类方法调用类方法调用类方法调用类方法调用类名类名类名类名.方法名(实际参数表)方法名(实际参数表)方法名(实际参数表)方法名(实际参数表)三三):):参数传递参数传递当方法当方法当方法当方法不需要传递参数时不需要传递参数时不需要传递参数时不需要传递参数时,方法名后面的小括号内,方法名后面的小括号内,方法名后面的小括号内,方法名后面的小括号内可以什么都不写,只是该小括号不可省略。可以什么都不写,只是该小括号不可省略。可以什么都不写,只是该小括号不可省略。可以什么都不写,只是该小括号不可省略。当调用方法时当调用方法时当调用方法时当调用方法时需要传递参数时需要传递参数时需要传递参数时需要传递参数时,括号内的参数可以,括号内的参数可以,括号内的参数可以,括号内的参数可以是是是是数值、字符串,甚至是对象。数值、字符串,甚至是对象。数值、字符串,甚至是对象。数值、字符串,甚至是对象。在在在在JavaJavaJavaJava中,基本数据类型的参数传递是中,基本数据类型的参数传递是中,基本数据类型的参数传递是中,基本数据类型的参数传递是以传值的方以传值的方以传值的方以传值的方式式式式进行,即将实际参数的值传递给形参,而不是将进行,即将实际参数的值传递给形参,而不是将进行,即将实际参数的值传递给形参,而不是将进行,即将实际参数的值传递给形参,而不是将实参的地址传递给形参。实参的地址传递给形参。实参的地址传递给形参。实参的地址传递给形参。而而而而引用类型(如对象、数引用类型(如对象、数引用类型(如对象、数引用类型(如对象、数组等)参数传递是按地址进行传递的。组等)参数传递是按地址进行传递的。组等)参数传递是按地址进行传递的。组等)参数传递是按地址进行传递的。数组数组【创建【创建JavaJava一维数组需要三个步骤】一维数组需要三个步骤】声明数组声明数组:是数组的标志是数组的标志 声声明明数数组组的的名名称称、数数组组所所包包含含的的元元素素的的数数据据类类型或元素的类名。型或元素的类名。语法格式语法格式语法格式语法格式:数组元素类型数组元素类型 数组名数组名 ;数组元素类型数组元素类型 数组名数组名;例例:int MyIntArrayint MyIntArray;创建数组空间创建数组空间创创建建数数组组时时必必须须指指明明数数组组长长度度,以以确确定定所所开开辟辟的的连连续续内存空间大小。内存空间大小。语法格式语法格式语法格式语法格式:数组名数组名=new new 数组元素类型数组元素类型 数组元素的个数数组元素的个数;例例:MyIntArrayMyIntArray=new=new int int10;10;/创建数组空间创建数组空间【数组的赋值方法】【数组的赋值方法】在声明时直接赋值在声明时直接赋值,省去创建空间的省去创建空间的newnew运算符运算符 例:例:intint mm=2,4,6,8,10,12,14,16,18,20 mm=2,4,6,8,10,12,14,16,18,20/创创建建并并赋赋初初值值,编编译译器器根根据据数数值值个个数数决决定定数数组组长长度度并且依次给各元素存放并且依次给各元素存放 mm0=2mm0=2,mm1=4mm1=4,mm9=20mm9=20 采用循环遍历方式对数组元素进行有规律赋值采用循环遍历方式对数组元素进行有规律赋值数组下标数组下标:=0:=0且且 数组长度数组长度,确保循环终止条件没有确保循环终止条件没有超出数组范围。超出数组范围。【声明和引用【声明和引用JavaJava的二维数组】的二维数组】声明矩阵数组声明矩阵数组 语法格式语法格式语法格式语法格式:数组元素类型数组元素类型 数组名数组名=new new 数组元素类型数组元素类型 个数个数个数个数;例例:intint My2array=new My2array=new int int56;56;说说明明:55表表示示该该数数组组有有5 5行行,每每一一行行有有6 6个个元元素素,因因此整个数组有此整个数组有3030个元素。个元素。在声明时可直接赋值在声明时可直接赋值 例:例:int ssaint ssa=20,25,26,22,23,24,20,28;=20,25,26,22,23,24,20,28;结果结果:ssassa00=20;00=20;ssassa01=25;01=25;ssassa02=26;02=26;ssassa03=22;03=22;ssassa10=23;10=23;ssassa11=24;11=24;ssassa12=20;12=20;ssassa13=28;13=28;声明非矩阵数组声明非矩阵数组 例例例例:在在JavaJava中可以随时中可以随时动态地动态地建立数组。建立数组。typetype arrN arrN =new type 5 =new type 5;arrN arrN0=new type 10=new type 1;arrN arrN1=new type 31=new type 3;arrN arrN2=new type 52=new type 5;arrN arrN3=new type 53=new type 5;arrN arrN4=new type 54=new type 5;A AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA A字符串处理字符串处理【声明及初始化】【声明及初始化】初始化初始化StringString对象对象:采用构造函数采用构造函数采用构造函数采用构造函数 使用使用StringString类的类的缺省构造函数缺省构造函数将它赋给引用变量将它赋给引用变量s1,s1,长度为长度为0(0(空串空串):):String s1=new String();String s1=new String();使用由字符数组为参数的使用由字符数组为参数的StringString类构造函数:类构造函数:charchar ch ch =s,t,o,r,y;s,t,o,r,y;String s2=new String(String s2=new String(chch););直接用字符串常量来初始化字符串:直接用字符串常量来初始化字符串:String s3=“Hello!Welcome to String s3=“Hello!Welcome to Java!”;Java!”;【常用【常用StringString类的方法】类的方法】比较两个字符串比较两个字符串:booleanequals(ObjectanObject)求字符串长度求字符串长度:length()字符串的替换字符串的替换:Stringreplace(charoldchar,charnewchar)Stringx=“abc“,y;y=x.repace(a,d);/y=“dbc”,x=“abc”大小写字符的转换:大小写字符的转换:StringtoUpperCase()StringtoLowerCase()Stringx=“aBc“,y;y=x.toUpperCase();/y=“ABC”,x=“aBc”x=y.toLowerCase();/y=“ABC”,x=“abc”第四章 Java面向对象程序设计重点:重点:掌握类的声明、对象的创建和使用;掌握类的声明、对象的创建和使用;熟悉不同变量的作用域熟悉不同变量的作用域掌握类的继承方法掌握类的继承方法掌握掌握null,this,super掌握类的多态性掌握类的多态性了解接口的实现方法了解接口的实现方法 了解包的定义与使用了解包的定义与使用类的声明类的声明 修修饰饰符符 class class 类类名名 extends extends 父父类类 implements implements 接口名接口名 /类成员变量声明类成员变量声明 修饰符修饰符 变量类型变量类型 变量名变量名=变量初值变量初值;/类方法声明类方法声明 修饰符修饰符 返回值类型返回值类型 方法名方法名(参数列表参数列表)方法体:方法体:【访问权限修饰符访问权限修饰符】修饰符修饰符publicpublic类类、变量、方法、变量、方法所有类所有类protectedprotected变量、方法变量、方法其他包中它的子其他包中它的子类访问父类类访问父类defaultdefault类类、变量、方法、变量、方法同一包中类同一包中类privateprivate变量、方法变量、方法同一类同一类(本类本类)【非访问权限修饰符非访问权限修饰符】staticstaticstaticstatic变量、方法变量、方法静态的静态的finalfinalfinalfinal变量、类、方法变量、类、方法常量、终类和方法常量、终类和方法abstractabstractabstractabstract类、方法类、方法抽象类和方法抽象类和方法对象的创建和使用对象的创建和使用类名类名 对象名对象名new new 构造函数构造函数(参数);(参数);【构造函数构造函数】使用原则使用原则:(:(写在自定义的类中写在自定义的类中)1 1、构造函数的方法名与类名相同、构造函数的方法名与类名相同;2 2、构造函数没有返回值、构造函数没有返回值;3 3、构造函数的主要作用是完成对类对象的初始化、构造函数的主要作用是完成对类对象的初始化 4 4、通常、通常一个类可提供多个构造方法一个类可提供多个构造方法【对象的使用对象的使用】对象名对象名.成员变量名;成员变量名;/变量的引用变量的引用 对象名对象名.成员方法名(参数列表)成员方法名(参数列表)/方法的调用方法的调用变量作用域变量作用域变量的作用域也称变量的有效范围。根据变量在程序变量的作用域也称变量的有效范围。根据变量在程序声明的位置,可以将变量分为声明的位置,可以将变量分为4 4类情形类情形成员变量成员变量 局部变量局部变量方法参数方法参数 异常处理参数异常处理参数类的继承类的继承子类的创建格式子类的创建格式 class class extends extends 子类体子类体 【数据成员继承数据成员继承】:隐藏】:隐藏(Hiding)(Hiding)原则原则【方法成员继承方法成员继承】:覆盖】:覆盖(Override)(Override)原则原则【构造函数继承构造函数继承】当子类未定义构造方法:当子类未定义构造方法:子类在自己定义构造方法中如果没有用子类在自己定义构造方法中如果没有用supersuper明确调明确调用父类的构造方法:用父类的构造方法:对于父类的含参数构造方法:对于父类的含参数构造方法:null,this,super:null:null在定义一个对象但尚未为其开辟内存单元时在定义一个对象但尚未为其开辟内存单元时,可指定可指定这个对象为这个对象为nullnull。:this:this表示的是当前对象本身:表示的是当前对象本身:this.this.调用本类的构造函数:调用本类的构造函数:this(this(参数列表参数列表):supersuper的应用的应用代表的是当前对象的直接父类对象:代表的是当前对象的直接父类对象:调用超类的构造方法:调用超类的构造方法:super(super(参数列表参数列表)类的多态性类的多态性所谓多态所谓多态:是指在一个程序中同名的不同方法共存是指在一个程序中同名的不同方法共存在的情况。在的情况。面向对象的多态性主要指两个方面:面向对象的多态性主要指两个方面:q 方法的方法的重载重载(override):override):在同一个类中定义多在同一个类中定义多个同名的不同形态方法。个同名的不同形态方法。重载的关键是重载的关键是参数个数或类型参数个数或类型,顺序必须不同。顺序必须不同。q子类对父类方法的覆盖子类对父类方法的覆盖(overload)overload)应与父类具有完全相同的方法名、返回值和参数列表接口接口接口的定义接口的定义publicinterface接口名接口名extends父接口名父接口名列表列表publicstaticfinal域类型域类型域名域名=常量值常量值;/常量域声明常量域声明publicabstractnative返返回回值值方方法法名名(参参数数列列表表)/抽象方法声明抽象方法声明接口的实现接口的实现 修饰符修饰符 class class 类名类名 implements implements 接口名表接口名表 注:实现接口中所有定义的抽象方法注:实现接口中所有定义的抽象方法包的定义与使用包的定义与使用包的定义包的定义引用包中的类引用包中的类import import 包的名字包的名字.*;.*;创创建建包包的的语语句句需需要要使使用用关关键键字字package,package,而而且且要要放放在在源文件的第一行源文件的第一行。格式格式:Package Package 包名包名第五章 Java图形用户界面重点:重点:1、掌握小应用程序的开发、调试和运行;、掌握小应用程序的开发、调试和运行;2、掌握、掌握JavaAWT中的事件处理机制;中的事件处理机制;3、掌握常用、掌握常用GUI组件的创建、使用和事件处理组件的创建、使用和事件处理Apple创建的基本框架结构创建的基本框架结构import java.awt.*;import java.awt.*;import java.applet.*;import java.applet.*;public class public class 子类名子类名 extends Applet extends Appletpublic void init()public void init()方法体方法体 /初始化变量、装载图片、读取参数值等初始化变量、装载图片、读取参数值等public void start()public void start()方法体方法体 /启动程序执行或恢复程序执行启动程序执行或恢复程序执行public void stop()public void stop()方法体方法体 /挂起正在执行的程序,暂停程序的执行挂起正在执行的程序,暂停程序的执行public