JAVA程序设计教案 (2).ppt

上传人:牧羊曲112 文档编号:6510002 上传时间:2023-11-07 格式:PPT 页数:47 大小:434.50KB
返回 下载 相关 举报
JAVA程序设计教案 (2).ppt_第1页
第1页 / 共47页
JAVA程序设计教案 (2).ppt_第2页
第2页 / 共47页
JAVA程序设计教案 (2).ppt_第3页
第3页 / 共47页
JAVA程序设计教案 (2).ppt_第4页
第4页 / 共47页
JAVA程序设计教案 (2).ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《JAVA程序设计教案 (2).ppt》由会员分享,可在线阅读,更多相关《JAVA程序设计教案 (2).ppt(47页珍藏版)》请在三一办公上搜索。

1、Java程序编写过程就是设计类、实现类,定义其属性、行为的过程。例1-1 HelloWorldApp.java 例1-2 MyMusic.java 例1-3 ColorRect.java 例1-4 HelloWorld.java,一、Java程序的构成,从上面演示的程序可以看出,一般的Java源程序文件由以下三部分组成:1、Package 语句(0句或1句)2、import 语句(0句或多句)3、类定义 说明:1、Package语句表示本程序所属的包。它只能有 1句或没有。如果有,必须放在最前面。如果没有,表示属于默认包。,2、import表示引入其他类的库,便于使用。该语句可以有0句或多句,

2、它必须放在类定义的前面。3、类定义是Java源程序的主要组成部分,每个文件中可以定义若干个类。Java程序中定义类使用关键字Class,每个类的定义由类头和头体两部分组成。类头除了声明类名之外,还可以说明类的继承特性,当一个类被定义为是另一个已存在的类(父类)的子类时,它就可以从其父类中继承一些已定义好的类成员而不必自己重复编码。类体部分用来定义属性和方法这两种类的成员,其中方法类似于其他高级语言中的函数,,而属性则类似变量。4、在java源程序中只能有一个公共类,应用程序中包含main方法,整个类定义由大括号 括起来。在方法或属性前面可以加修饰符,如public、static、void等。5

3、、语句是构成java程序的基本单位之一。每一条语句都由分号“;”结束,语句块可以使用。6、Java程序允许任意多的空白。7、/后的内容为注释。注释也可使用下列方式:/*.多行.*/或/*多行*/。,二、标识符、数据类型、变量与常量,2.1 标识符 任何一个变量、常量、方法、函数、对象和类都需要有一个名字,这些名字就是标识符。标识符由编程者自行确定。标识符要满足以下规定:1、标识符必须以字母、下划线或美元符号开头,不能以数字开头;2、在字母、下划线或美元符号后可以跟数字、字母、下划线或美元符号,没有长度限制;3、标识符区分大小写,如Abc不同于abc;4、标识符不能为关键字,但是它可以包含关,键

4、字作为它名字的一部分,如thisone。有效标识符,如:identifer thisWto User_naIn$max$123 q1 qqq_$567maqwww_111 无效标识符,如:12qqqq wooo#wo woclass 98.3 说明:类名首字母应大写;变量、方法、对象的首字母应小写;在标识符中的所有单词都应靠在一起,而且大写中间单词的首字母,如ThisIsClassName;常数初始化字符则全部大写。,2.2 数据类型,JAVA编程语言有八个原始(基本)数据类型,分为以下四种:1、逻辑类boolean boolean用来表示布尔型(逻辑)数据的数据类型。Boolean型变量或常

5、量的取值只有true和false两个。true代表“真”,false代表“假”。2、字符类char 使用char类型可表示单个字符,用单引号括起来的一个字符,如q,H等。它在内存中占两个字节。,它表示的是Unicode集。Java也提供转义字符,以反斜杠()开头,将其后的字符转变为另外的含义。用“”引用的文字是字符串类型,不是字符类型。ddd:1到3位八进制数据所表示的字符rxxx:1到4位十六进制数据所表示的字符:单引号字符“:双引号字符:反斜扛字符 r:回车n:换行 f:进纸t:水平制表符 b:退格,3、整数类byte、short、int、long 四种整数类型byte(字节型)、shor

6、t(短整型)、int(整型)、long(长整型)在内存中所占长度不同,分别是1,2,4,8字节。表示的范围是不一样的。整数默认为int类,如在其后有一个字母“L”或“l”则表示为长整型值。十进制整数,如123,-314,0 八进制整数,要求以0开头,如012,-021 十六进制整数,要求以0 x开头,如0 x12,4、浮点类double,float 如果一个数包括小数点或指数部分,或者在数字后带有字母F或f(float)、D或d(double),则该数为浮点数。如果不明确指明浮点数的类型,则认为是double。如:3.14159 2.08E25 6.56f float为单精度(32位)、dou

7、ble为双精度(64位).,2.3 常量与变量 在Java中,不同类型的数据既可以以常量的形式出现,也可以以变量的形式出现。常量就是指在程序执行期间其值不能发生变化的数据,常量是固定的。如整型常量123,实型常量1.23,字符常量A,布尔常量true等。a.整型常量 b.浮点型常量 c.布尔常量 d.字符常量 如A、D e.字符串常量 如“ASD”、“A123”,变量的值则是可以变化的,它的定义包括变量名、变量类型和作用域几个部分。声明变量语句如下:类型 变量名,变量名=变量初值 例如:int a,b,c;double d1=3.2,d2=0.0;注意以下几点:(1)变量名必须是一个合法的标识

8、符。变量名应具有一定的含义,以增加程序的可读性。(2)变量类型可以为前面所说的任意一种数据类型。,(3)声明一个变量的同时也就指明了变量的作用域,变量的作用域指明可访问该变量的一段代码。(4)变量的分类:方法(语句块)局部变量、方法参数变量、例外处理参数变量、对象变量、实例变量、类变量等六种。局部(local)变量是在一个方法或语句块内定义的变量,也被称作自动(automatic)、临时(temporary)或栈(stack)变量。,当执行进入一个方法或语句块时,局部变量被创建,当执行离开该方法或语句块时,局部变量被清除,它的作用域为它所在的代码块(整个方法或方法中的某块代码)。在成员函数方法

9、内定义的变量对该成员变量是“局部的”,因而,你可以在几个成员函数方法中使用相同的变量名而代表不同的变量。在一个确定的域中,变量名应该是唯一的。通常,一个域用大括号“”和“”来划定。int a=0,方法参数变量(形参)传递给方法,它的作用域就是这个方法。例外处理参数变量传递给例外处理代码,它的作用域就是例外处理部分。对象变量就是一个类的对象,如:Student aaa。实例变量和类变量指在类中声明的变量,而不是在类的某个方法中声明,它的作用域是整个类。如描述汽车类时,有颜色、长短、重量、排气量、品牌等属性值。一部具体的汽车这些值有的不会相同,但当描述某一品牌的汽车时,品牌就是固定的,每部车都相同

10、。这种情况下,颜色、长短、重量、排气量就是实例变量,而品牌就是类变量。用关键字static来区别。如:static x;,下面看一道考试题:一、简述变量的类型,并用一个简单、片段程序说明哪些变量属于的类型(10分)。,一、答:在面向对象编程中,变量可以分为6种类型,它们分别是:类变量、实例变量、局部变量、方法参数变量、对象变量、例外参数变量。如:Class aaaint x;static int y;JButton text;public void sa(string w)Int cc=0;上例中的x实例变量;y类变量;w方法参数变量;cc局部变量;text对象变量。,(4)下面是几个变量的声

11、明:int a,b,c;/定义a,b,c为int型变量 double d,e;/定义d,e为double型变量 float f=2.5,g=5.8;/定义f,g为float型变量,并赋初值。其中,多个变量间用逗号隔开。(5)在Java程序中声明变量后,需给该变量赋值。可用赋值语句来初始化变量任何局部变量都不能没有初始值(否则,则无法通过编译)。,赋值方式如下:将已声明的变量名放在左边,然后是等号(),右边是有适当值的Java表达式。它的意思是“取得右边的值,把它复制到左边”。右边的值可以是任何常数、变量或者表达式,只要能产生一个值就行。但左边的值必须是一个明确的、已命名的变量。如:int a;

12、/这是声明 a=45;/这是赋值 char c;/这是声明 c=y;/这是赋值,相对于一个方法的“局部”变量,如果在初始化之前想使用它,编译器会提示出错,如下面这样就是不允许的:void f()int i;i=i+1;当一个对象被创建时,实例变量在分配存储器的同时被值初始化。初始化值如表3-4所示。,下面给出几个Java程序的例子,使大家对数据类型进一步加深理解。【例1.5】Java中的数据类型【例1.6】Java中变量的作用域一【例1.7】Java中变量的作用域二【例1.8】Java中对象的初始化,三、运算符,按照运算符功能来分,基本的运算符分包括算术运算符、关系运算符、逻辑运算符、位运算符

13、、赋值运算符、条件运算符等。3.1 算术运算 算术运算符包括加号(+)、减号(-)、乘号(*)、除号(/)、取模(%)、自增运算符(+)、自减运算符(-)等。在算术运算中,有以下值得注意的地方:(1)算术运算符的总体原则是先乘除、再加减,括号优先。(2)整数除法会直接砍掉小数,而不是进位。,(3)与C语言不同,对取模运算符%来说,其操作数可以为浮点数。如:37.2%10=7.2。(4)Java也用一种简写形式进行运算,并同时进行赋值操作。例如,为了将10加到变量x,并将结果赋给x,可用:x+=10。(5)Java对加运算符进行了扩展,使它能够进行字符串的连接,如abc+def,得到串abcde

14、f。(6)前缀+、-与后缀+、-的区别:+i(前缀+)在使用i之前,使i的值加1,因此执行完+i后,整个表达式和i的值均为i+1;i+(后缀+)在使用i之后,使i的值加1,因此执行完i+后,整个表达式的值为i,而i的值变为i+1。,例子:int j=15,k=15;int x=+j;int y=k+;,结果:x16j 16y15k16,int i=3;System.out.println(+i);,结果为4,i=4,int i=3;System.out.println(i+);,结果为3,i=4,int a=1;int b=2;int c=+b;int d=a+;c+;System.out.p

15、rintln(“a=”+a);System.out.println(“b=”+b);System.out.println(“c=”+c);System.out.println(“d=”+d);,结果:a=2 b=3 c=4 d=1,-i在使用i之前,使i的减1,因此执行完-i后,整个表达式和i的值均为i-1;i-在使用i之后,使i的减1,因此执行完i-后,整个表达式的值为i,而i的值变为i-1。【例1.9】Java中算术运算符的使用,3.2 关系运算 关系运算符用来比较两个值,返回布尔类型的值true或false。关系运算符都是二元运算符,如下所示。op1op2 op1大于op2 ture=o

16、p1=op2 op1大于等于op2 ture op1op2 op1小于op2 ture=op1=op2 op1小于等于op2 ture=op1=op2 op1等于op2 ture!=op1!=op2 op1不等于op2 ture【例1.10】Java中关系运算符的使用,3.3 逻辑运算 逻辑与(&)逻辑或(|)逻辑非(!),public class abc public static void main(string args)int a=58;boolean k=(a0),结果:true,int a=9;int b=6;int c=6;boolean d,e,f,g;d=!(ab);e=(a

17、b),/false/ture/ture/false,例如:int x 5,y 6;boolean b xy,运行结果:b=false,对“或运算”如果运算符左边的表达式的值为true,则整个表达式的结果为true,不必对运算符右边的表达式再进行运算;同样,对“与运算”,如果左边表达式的值为false,则不必对右边的表达式求值,整个表达式的结果为false。,【例1.11】Java中逻辑运算符的使用,逻辑表达式往往可用于表示比较复杂的条件,例如要判别某一年year是否为闰年,闰年的判别条件是:能被4整除但不能被100整除,或者能被400整除。,(year%4=0&year%100!=0)|(ye

18、ar%400=0)当year为某一数值时,上述表达式值为true,则year年为闰年,否则为非闰年。,在逻辑表达式的求解中,并不是所有的逻辑运算都被执行,例如:1.a&b&c:如果a非真,则不用判别b和c,直接输出false;若a为真,则判别b,若b非真,则不用判别c,直接输出false;当a、b都为true时,才判别c的真假。2.a|b|c:如果a为真,则不用判别b和c,直接输出true;若a为非真,则判别b,若b为真,则不用判别c,直接输出true;当a、b都为false时,才判别c的真假。,3.4 位运算 在Java语言中,位运算符有按位与运算符(&)、按位或运算符(|)、按位异或运算符

19、()、按位取反运算符()、左移位运算符()。1按位与运算(&)参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0。即:0&0=0,0&1=0,1&0=0,1&1=12按位或运算(|)参与运算的两个值,如果两个相应位都是0,则该位结果为0,否则为1。即:0|0=0,0|1=1,1|0=1,1|1=1,3按位异或运算()参与运算的两个值,如果两个相应位的某一个是1,另一个是0,那么按位异或()在该位的结果为1。也就是说如果两个相应位相同,输出位为0,否则为1。即:00=0,01=1,10=1,11=04按位取反运算()按位取反运算()属于一元运算符,它只对一个自变量进行操作(其他所

20、有运算符都是二元运算符)。按位取反生成与输入位的相反的值若输入0,则输出1;输入1,则输出0。即:0=1,1=0,5左移位运算符(与)运算符执行一个右移位(带符号),左边按符号位补0或1例如:int a=16,b;b=a2;/b=4,运算符同样是执行一个右移位,只是它执行的是不带符号的移位。也就是说对以补码表示的二进制数操作时,在带符号的右移中,右移后左边留下的空位中添入的是原数的符号位(正数为0,负数为1);在不带符号的右移中,右移后左边留下的空位中添入的一律是0。【例1.12】Java中位运算符的使用,假若对主数据类型执行任何算术运算或按位运算,“比int小”的数据(char、byte、s

21、hort)在正式执行运算之前,那些值会自动转换成int,这样一来,最终生成的值就是int类型。整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级。通常,表达式中最大的数据类型是决定了表达式最终结果大小的那个类型。例如:若将一个float值与一个double值相乘,结果就是double;如将一个int值和一个long值相加,则结果为long。,不是所有的数据类型都允许隐含自动转换。例如,下面的语句把long型数据赋值给int型数据,在编译时就会发生错误:long i=10;int j=i;这是因为当把占用位数较长的数据转化成占用位数较短的数

22、据时,会出现信息丢失的情况,因而不能够自动转换。这时就需要利用强制类型转换,执行非兼容类型之间的类型转换。上面的语句写成下面的形式就不会发生错误:long i=10;int j=(int)i;,强制类型转换的格式是:(数据类型)变量名 经过强制类型转换,将得到一个在“()”中声明的数据类型的数据,该数据是从指定变量所包含的数据转换而来的。值得注意的是,指定变量本身不会发生任何变化。将占用位数较长的数据转化成占用位数较短的数据时,可能会造成数据超出较短数据类型的取值范围,造成“溢出”。如:int j=(int)i;因为转换的结果已经超出了int型数据所能表示的最大整数(4294967295),造

23、成溢出,产生了错误。,3.5 其他运算符1三目条件运算符(?:)在Java语言中,三目条件运算符(?:)与C语言中的使用规则是完全一致的,使用的形式是:x?y:z;上面的三目条件运算的规则是:先计算表达式x的值,若x为真,则整个三目运算的结果是表达式y的值;若x为假,则整个三目运算的结果是表达式z的值。下面的例子实现了从两个数中找出较大的数的功能。int a=3,b=4;int max=ab?a:b;max的值为4。,三目条件运算是可以嵌套的,如有以下的语句,则max表示的是a、b、c三个数中的最大值,其值为5。int a=3,b=4,c=5;int max=(ab?a:b)c?(ab?a:b

24、):c;2复合赋值运算符 赋值运算符“=”的作用是将运算符右边表达式的值赋给左边的变量。复合赋值运算符的作用是先进行某种运算后,再对运算的结果进行赋值操作。Java可以用一种简写形式进行运算,并同时进行赋值操作。例如,为了将10加到变量x,并将结果赋给x,可用:x+=10(等价与x=x+10)。实际上不只是“+”可以这么做,表3-7列出了Java中的所有复合赋值运算符。,复合赋值运算符的简单使用:int a=5,b=8;System.out.println(“a=”+a+”,b=”+b);a+=b;System.out.println(“a=”+a+”,b=”+b);a-=b;System.o

25、ut.println(“a=”+a+”,b=”+b);a*=b;System.out.println(“a=”+a+”,b=”+b);a/=b;System.out.println(“a=”+a+”,b=”+b);,结果:a=5,b=8 a=13,b=8 a=5,b=8 a=40,b=8 a=5,b=8,3对象运算符(instanceof)对象运算符instanceof用来判断一个对象是否是某一个类或者其子类的实例。如果对象是该类或者其子类的实例,返回ture;否则返回flase。4()和 括号运算符()的优先级是所有运算符中最高的,所以它可以改变表达式运算的先后顺序。在有些情况下,它可以表示方法或函数的调用。方括号运算符 是数组运算符。5 运算符 运算符用于访问对象实例或者类的类成员函数。6new运算符 new运算符用于创建一个新的对象或者新的数组。,运算符优先级:多种运算按预算符优先级从高向低进行,同级从左向右。,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号