JAVA程序设计教案

上传人:da****ge 文档编号:243071772 上传时间:2024-09-15 格式:PPT 页数:47 大小:483KB
返回 下载 相关 举报
JAVA程序设计教案_第1页
第1页 / 共47页
JAVA程序设计教案_第2页
第2页 / 共47页
JAVA程序设计教案_第3页
第3页 / 共47页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,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,句或多句,它必须放在类定义的前面。,3,、类定义是,Java,源程序的主要组成部分,每个,文件中可以定义若干个类。,Java,程序中定义类使用,关键字,Class,每个类的,定义由类头和头体两部分组成。类头除了声明类名,之外,还可以说明类的继承特性,当一个类被定义,为是另一个已存在的类(父类)的子类时,它就可,以从其父类中继承一些已定义好的类成员而不必自,己重复编码。类体部分用来定义属性和方法这两种类的成员,其中,方法,类似于其他高级语言中的函数,,而,属性,则类似变量。,4,、在,java,源程序中只能有一个公共类,应用程序中包含,main,方法,整个类定义由大括号, ,括起来。 在方法或属性前面可以加修饰符, 如,public,、,static,、,void,等。,5,、,语句是构成,java,程序的基本单位之一。每一,条语句都由分号“,;,”结束,语句块可以使用, ,。,6,、,Java,程序允许任意多的空白。,7,、,/,后的内容为注释。注释也可使用下列方式,:,/*.,多行,.*/,或,/*,多行,*/,。,二、标识符、数据类型、变量与常量,2.1,标识符,任何一个变量、常量、方法、函数、对象和类,都需要有一个名字,这些名字就是标识符。标识,符由编程者自行确定。标识符要满足以下规定:,1,、标识符必须以字母、下划线或美元符号开,头,不能以数字开头;,2,、在字母、下划线或美元符号后可以跟数字、,字母、下划线或美元符号,没有长度限制;,3,、标识符区分大小写,如,Abc,不同于,abc,;,4,、,标识符不能为关键字,但是它可以包含关,键字作为它名字的一部分,如,thisone,。,有效标识符,如:,identifer thisWto User_na,In $max $123 q1 qqq_$567maqwww_111,无效标识符,如:,12qqqq wooo# wo wo,class 98.3,说明,:,类名首字母应大写;,变量、方法、对象的首字母应小写;,在标识符中的所有单词都应靠在一起,,而且大写中间单词的首字母,如,ThisIsClassName,;,常数初始化字符则全部大写。,2.2,数据类型,JAVA,编程语言有八个原始,(,基本,),数据类型,分为,以下四种:,1,、逻辑类,boolean,boolean,用来表示布尔型(逻辑)数据的数据类,型。,Boolean,型变量或常量的取值只有,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(,字节型,),、,short(,短整型,),、,int(,整型,),、,long(,长整型,),在内存中所占长度不同,分别是,1,,,2,,,4,,,8,字节。表示的范围是不一样的。,整数默认为,int,类,如在其后有一个字母“,L”,或“,l”,则表示为长整型值。,十进制整数,如,123,,,-314,,,0,八进制整数,要求以,0,开头,如,012,,,-021,十六进制整数,要求以,0x,开头,如,0x12,4,、,浮点类,double,,,float,如果一个数包括小数点或指数部分,或者在数字,后带有字母,F,或,f,(,float,)、,D,或,d,(,double,),则,该数为浮点数。如果不明确指明浮点数的类型,则,认为是,double,。,如:,3.14159 2.08E25 6.56f,float,为单精度,(32,位,),、,double,为双精度,(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,)变量名必须是一个合法的标识符。变量名,应具有一定的含义,以增加程序的可读性。,(,2,)变量类型可以为前面所说的任意一种数据,类型,。,(,3,)声明一个变量的同时也就指明了变量的作用域,变量的作用域指明可访问该变量的一段代码。,(4),变量的分类:,方法(语句块)局部变量、方法参数变量、例外处理参数变量、对象变量、实例变量、类变量等六种。,局部(,local,)变量,是在一个方法或语句块内定义的变量,也被称作自动(,automatic,)、临时(,temporary,)或栈(,stack,)变量。,当执行进入一个方法或语句块时,局部变量被创建,当执行离开该方法或语句块时,局部变量被清除,它的作用域为它所在的代码块 ( 整个方法或方法中的某块代码)。在成员函数方法内定义的变量对该成员变量是,“,局部的,”,,因而,你可以在几个成员函数方法中使用相同的变量名而代表不同的变量。,在一个确定的域中,变量名应该是唯一的。通常,一个域用大括号,“,”,和,“,”,来划定。, int a=0,方法参数变量,(,形参,),传递给方法,它的作用域就是这个方法。,例外处理参数变量,传递给例外处理代码,它的作用域就是例外处理部分。,对象变量,就是一个类的对象,如,: Student,aaa,。,实例变量和类变量,指在类中声明的变量,而不是在类的某个方法中声明,它的作用域是整个类。如描述汽车类时,有颜色、长短、重量、排气量、品牌等属性值。一部具体的汽车这些值有的不会相同,但当描述某一品牌的汽车时,品牌就是固定的,每部车都相同。这种情况下,颜色、长短、重量、排气量就是实例变量,而品牌就是类变量。用关键字,static,来区别。如:,static x,;,下面看一道考试题:,一、简述变量的类型,并用一个简单、片段程序说明哪些变量属于的类型(,10,分),。,一、答:,在面向对象编程中,变量可以分为,6,种类型,它们分别是:类变量、实例变量、局部变量、方法参数变量、对象变量、例外参数变量。如:,Class,aaa,int x;,static int y;,JButton,text;,public void,sa(string,w), Int cc=0;,上例中的,x,实例变量;,y,类变量;,w,方法参数变量;,cc,局部变量;,text,对象变量。,(,4,)下面是几个变量的声明:,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,;,/,这是声明,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,中对象的初始化,三、运算符,按照运算符功能来分,基本的运算符分包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符等。,3.1,算术运算,算术运算符包括加号(,+,)、减号(,-,)、乘号(,*,)、除号(,/,)、取模(,%,)、自增运算符(,+,)、自减运算符(,-,)等。,在算术运算中,有以下值得注意的地方:,(,1,)算术运算符的总体原则是先乘除、再加减,括号优先。,(,2,)整数除法会直接砍掉小数,而不是进位。,(,3,),与,C,语言不同,对取模运算符,%,来说,其操作数可以为浮点数。如:,37.2%10=7.2,。,(,4,),Java,也用一种简写形式进行运算,并同时进行赋值操作。例如,为了将,10,加到变量,x,,,并将结果赋给,x,,,可用:,x+=10,。,(,5,),Java,对加运算符进行了扩展,使它能够进行字符串的连接,如,abc+def,,,得到串,abcdef,。,(,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+;,结果:,x,16,j,16,y,15,k,16,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.println(“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,= op1=op2 op1,大于等于,op2 ture, op1op2 op1,小于,op2 ture,= op10),System.out.println,(,k,),; ,结果:,true,int a=9; int b=6; int c=6;,boolean d,e,f,g;,d=!(ab);,e=(ab),f=(b=c)|(ay&x+,y-;,运行结果:,b=false,对“或运算”如果运算符左边的表达式的值为,true,,,则整个表达式的结果为,true,,,不必对运算符右边的,表达式再进行运算;同样,对“与运算”,如果左边,表达式的值为,false,,,则不必对右边的表达式求值,,整个表达式的结果为,false,。,【,例,1.11,】,Java,中逻辑运算符的使用,逻辑表达式往往可用于表示比较复杂的条件,例如要判别某一年,year,是否为闰年,闰年的判别条件是:能被,4,整除但不能被,100,整除,或者能被,400,整除。,(year%4=0&year%100 !=0) | (year%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,语言中,位运算符有按位与运算符(,&,)、按位或运算符(,|,)、按位异或运算符(,)、按位取反运算符(,)、左移位运算符(,)。,1,按位与运算(,&,),参与运算的两个值,如果两个相应位都为,1,,则该位的结果为,1,,否则为,0,。,即:,0&0=0,,,0&1=0,,,1&0=0,,,1&1=1,2,按位或运算(,|,),参与运算的两个值,如果两个相应位都是,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=0,4,按位取反运算(,),按位取反运算(,)属于一元运算符,它只对一个自变量进行操作(其他所有运算符都是二元运算符)。按位取反生成与输入位的相反的值,若输入,0,,则输出,1,;输入,1,,则输出,0,。,即:,0=1,,,1=0,5,左移位运算符(,),运算符,执行一个左移位。作左移位运算时,右边的空位补,0,。在不产生溢出的情况下,数据左移,1,位相当于乘以,2,。例如:,int a=64,b;,b=a,与,),运算符,执行一个右移位(带符号),左边按符号位补,0,或,1,例如:,int a=16,b;,b=a2;/b=4,运算符,同样是执行一个右移位,只是它执行的是不带符号的移位。也就是说对以补码表示的二进制数操作时,在带符号的右移中,右移后左边留下的空位中添入的是原数的符号位(正数为,0,,负数为,1,);在不带符号的右移中,右移后左边留下的空位中添入的一律是,0,。,【,例,1.12,】,Java,中位运算符的使用,假若对主数据类型执行任何算术运算或按位运算,“比,int,小”的数据(,char,、,byte,、,short,),在正式执行运算之前,那些值会自动转换成,int,,,这样一来,最终生成的值就是,int,类型。,整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级。通常,表达式中最大的数据类型是决定了表达式最终结果大小的那个类型。例如:若将一个,float,值与一个,double,值相乘,结果就是,double,;,如将一个,int,值和一个,long,值相加,则结果为,long,。,不是所有的数据类型都允许隐含自动转换。例如,下面的语句,把,long,型数据赋值给,int,型数据,在编译时就会发生错误:,long i=10;,int j=i;,这是因为当把占用位数较长的数据转化成占用位数较短的数据时,会出现信息丢失的情况,因而不能够自动转换。这时就需要利用强制类型转换,执行非兼容类型之间的类型转换。上面的语句写成下面的形式就不会发生错误:,long i=10;,int j=(int)i;,强制类型转换的格式是:,(数据类型)变量名,经过强制类型转换,将得到一个在“()”中声明的数据类型的数据,该数据是从指定变量所包含的数据转换而来的。值得注意的是,指定变量本身不会发生任何变化。,将占用位数较长的数据转化成占用位数较短的数据时,可能会造成数据超出较短数据类型的取值范围,造成“溢出”。如:,long i=10000000000;,int j=(int)i;,因为转换的结果已经超出了,int,型数据所能表示的最大整数(,4294967295,),造成溢出,产生了错误。,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):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.out.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,运算符,运算符用于访问对象实例或者类的类成员函数。,6,new,运算符,new,运算符用于创建一个新的对象或者新的数组。,运算符优先级:,多种运算按预算符优先级从高向低进行,同级从左向右,。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!