资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Java,程序设计基础,-,国家级十二五规划教材,-,大连理工大学出版社,第,5,章,创建类的成员属性和方法,主讲:胡伏湘,回顾与复习,类的修饰符有哪些?,Java,提供了哪些基本数据类型?,Java,提供了哪些整型数据类型,有什么区别?,本章提要,主要知识点:,Java,语言的基本组成;,运算符与表达式;,程序控制结构;,Java,程序的编程规范;,类成员方法的创建方法。,学习目标:能根据,Java,语言的基本语法和程序结构声明类的成员方法,从而定义完整的类。,5.1 Java,语言的基本组成,5.1.1,分隔符,1空白符:换行、回车、空格、,tab,2注释语句,/一行的注释内容,/*一行或多行的注释内容*/,/*文档注释内容*/,3普通分隔符:,;,:共,4,种,5.1 Java,语言的基本组成,5.1.2,关键字,关键用来表示特定的意义,也叫保留字,由系统本身使用,不能用作标识符。,Java,的关键字共有,48,个,。,5.2,运算符与表达式,5.2.1,算术运算符,算术运算符作用于整型或浮点型数据,完成算术运算。,1.,双目算术运算符:,+,、,-,、*、,/,、,%,(取模)五种运算符。,2,单目算术运算符:,+,、,-,、,+,、,-,5.2.2,关系运算符,包括,、,=,、,、,=,、,=,、,!=,、,共,7,个,5.2.3,逻辑运算符,逻辑运算符包括,&,(逻辑与)、,|,(逻辑或)、,!,(逻辑非),逻辑表达式的结果是一个布尔值,true,或,false,5.2,运算符与表达式,例,5-2,:逻辑运算符的应用,public class Test502,public static void main(String,args,),int,a=25,b=3;,boolean,d=ab;/d=false,System.out.println(a,5),System.out.println(a/e,=+a/e);,int,f=0;,if(f,!=0&a/f5)/,注意此语句中被,0,除,System.out.println(a/f,=+a/f);,else,System.out.println(f,=+f);,5.2,运算符与表达式,5.2.4,赋值运算符,赋值运算符“,=”,把一个数据赋给一个变量,在赋值运算符两侧的类型不一致的情况下,如果左侧变量的数据类型的级别高,则右侧的数据被转化为与左侧相同的数据类型,然后赋给左侧变量,否则,需要使用强制类型转换运算符,5.2.5,条件运算符,条件运算符,?,:是三目运算符,一般形式为:,expression?statement1:statement2,5.2,运算符与表达式,5.2.6,表达式,表达式是变量、常量、运算符、方法调用的序列,它执行这些元素指定的计算并返回某个值。,在对一个表达式进行运算时,要按运算符的优先顺序从高向低进行,同级的运算符则按从左到右的方向进行,通过加,(),可以提高运算符的优先级,。,5.3,控制结构,5.3.1,分支语句,1.,条件语句,if-else,if-else,语句根据判定条件的真假来执行两种操作中的一种,格式为:,if(boolean,-expression),statement1;,else,statement2;,例,5-3,:判断某一年是否为闰年。闰年的条件是符合下面二者之一:(,1,)能被,4,整除,但不能被,100,整除;(,2,)能被,400,整除。,5.3,控制结构,5.3.1,分支语句,2,多分支选择语句,switch,switch,语句根据表达式的值来执行多个操作中的一个,一般格式如下:,switch(expression),case value1:statement1;,break;,case value2:statement2;,break;,case,valueN,:,statemendN,;,break;,default:,defaultStatement,;,例,5-4,:根据考试成绩的等级打印出百分制分数段,5.3,控制结构,5.3.1,分支语句,3,break,语句,在,switch,语中,,break,语句用来终止,switch,语句的执行,使程序从,switch,语句后的第一个语句开始执行。可以为每个代码块加一个括号,一个代码块通常是用大括号,括起来的一段代码。加标号的格式如下:,BlockLabel,:,codeBlock,5.3,控制结构,5.3.1,分支语句,即用,break,来实现程序流程的跳转,不过应该尽量避免使用这种方式。,4,返回语句,return,return,语句从当前方法中退出,返回到调用该方法的语句处,并从紧跟该语句的下一条语句继续程序的执行。返回语句有两种格式:,格式,1,:,return expression,用于返回一个值给调用该方法的语句,返回值的数据类型必须和方法声明中的返回值类型一致。可以使用强制类型转换来使类型一致。,格式,2,:,return,5.3,控制结构,5.3.2,循环语句,1,while,语句,while,语句实现“当型”循环,一般格式为;,initialization,while(termination),body;,iteration;,5.3,控制结构,5.3.2,循环语句,2,do-while,语句,do-while,语句实现“直到型”循环,一般格式为:,initialization,do,body;,iteration;,while(termination);,5.3,控制结构,5.3.2,循环语句,3,for,语句,for,语句实现固定次数的循环,一般格式为:,for(initialization;termination;iteration),body;,例,5-5,:用,while,、,do-while,和,for,语句实现累计求和。,5.3,控制结构,5.3.2,循环语句,4,continue,语句,continue,语句用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。对于,for,语句,在进行终止条件的判断前,还要先执行迭代语句。它的格式为:,continue,;,也可以用,continue,跳转到括号指明的外层循环中,这时的格式为:,continue,outerLable,;,5.3,控制结构,5.3.3 Java,编码规范,养成良好的编码风格是程序员应具备的基本素质,运用,Java,编程也要遵守,Java,的编码规范,这对于读懂别人的程序和让别人理解自己的代码都十分重要。,1,一般原则,尽量使用完整的英文单词描述符,采用适用于相关领域的术语,采用大小写混用,可读性更好,避免使用相似的名字,或者仅仅是大小写不同的名字,少用下划线(除静态常量等),5.3,控制结构,5.3.3 Java,编码规范,2,具体要求,包(,Package,):包名采用完整的英文描述符,都由小写字母组成。,类(,Class,):类名采用完整的英文描述符,所有单词的第一个字母大写。,接口(,Interface,):接口名采用完整的英文描述符说明接口封装,所有单词的第一个字母大写。,组件(,Component,):使用完整的英文描述来说明组件的用途,末端应接上组件类型,异常(,Exception,):通常采用字母,e,表示异常的实例,这是个特例,表示单词,Exception,的第一个字母,易于记忆。,变量:采用完整的英文描述,第一个字母小写,后面所有单词的首字母大写。,获取成员函数:被访问字段名的前面加上前缀,get,。,布尔型的获取成员函数:所有的布尔型获取函数必须用单词,is,做前缀,静态常量(,static final,):全部采用大写字母,单词之间用下划线分隔。,循环变量:用于循环语句中控制循环次数,通常用,i,,,j,,,k,或者,counter,表示。,5.4,数组,5.4.1,一维数组,1.,一维数组的定义,一维数组的定义方式为,:,type,arrayName,;,或者,type,arrayName,;,2,一维数组元素的引用,定义了一个数组,并用运算符,new,为它分配了内存空间后,就以引用数组中的每一个元素了。数组元素的引用方式为,:,arrayNameindex,5.4,数组,5.4.1,一维数组,3,一维数组的初始化,对数组元素可以按照上述的例子进行赋值。也可以在定义数组的同时初始化。,例如,:,int,a=1,2,3,4,5;,例,5-6,:从小到大冒泡法排序数组,。,5.4,数组,5.4.2,多维数组,多维数组可以看作是数组的数组。例如二维数组的每个元素又是一个一维数组。下面以二维数数为例来进行说明,多维数组的使用与此类似。,1,二维数组的定义,二维数组的定义方式为,:type,arrayName,;,例如,:,int,intArray,;,5.4,数组,5.4.2,多维数组,2,二维数组元素的引用,对二维数组中每个元素,引用方式为,:arrayNameindex1index2,其中,index1,、,index2,为下标,可为整型常数或表达式,如,a23,等。同样,每一维的下标都从,0,开始。,3,二维数组的初始化,有两种方式初始化:直接对每个元素进行赋值、在定义数组的同时进行初始化。,如,:,int,a=2,3,1,5,3,4;,例,5-7,:二维数组举例,-,矩阵的乘法运算,5.5,成员方法的声明,5.4.1,方法的声明,声明类的方法的格式是:,修饰符,返回值类型 方法名,(,形式参数列表,)throws,异常名列表,方法体;,局部变量声明;,语句序列;,5.5,成员方法的声明,5.4.2,方法的覆盖与重载,Java,是通过方法的覆盖和重载来实现多态的。类层次结构中,如果子类中的一个方法与父类中的方法有相同的方法名并具有相同数量和类型的参数列表,则称子类中的方法覆盖了父类中的方法。通过子类引用覆盖方法时,总是引用子类定义的方法,而父类中定义的方法被隐藏。,5.5,成员方法的声明,1.,方法的覆盖,在子类中,若要使用父类中被隐藏的方法,可以使用,super,关键字,class SuperClass,public void,printA,(),System.out.println,(,父类打印函数,);,class,SubClass,extends SuperClass,public void,printA,(),System.out.println,(,子类打印函数,);,public class,OverrideDemo,public static void,main(String,args,),SuperClass s1=new,SubClass,();,s1.printA();,5.5,成员方法的声明,2.,方法的重载,在同一个类中有二个或二个以上的方法可以有相同的名字,只要它们的参数声明不同即可,这种情况称为方法重载。,Java,用参数的类型和数量来确定实际调用的重载方法的版本。因此每个重载的方法的参数的类型或数量必须是不同的。,方法的重载举例:,5.5,成员方法的声明,class Calculation,public void,add(int,a,int,b),int,c=,a+b,;,System.out.println,(,两个整数相加得,:+c);,public void,add(float,a,float,b),float c=,a+b,;,System.out.println,(,两个浮点数相加得,:+c);,public void,add(String,a,String,b),String c=,a+b,;,System.out.println,(,两个字符串相加得,:+c);,public class,OverLoadDemo,public static void,main(String,args,),Calculation c=new Calculation();,c.add(10,20);,c.add(21.5f,32.3f);,c.add,(,早上,好,);,本章总结,主要内容:,1,、,Java,语言的基本组成,2,、运算符与表达式,3,、程序控制结构,4,、数组的使用,5,、成员方法的声明,
展开阅读全文