您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > java期末复习提纲
面向对象程序设计第2章Java概述•1、JDK的安装及环境变量的设置。path、classpath•2、Java程序的运行过程。•虚拟机、字节码*.java*.classJava虚拟机(JVM)操作系统WindowNTLinuxUNIXJavac.exeJava.exe第3章Java基本数据类型数据类型引用数据类型类接口数组基本数据类型整型:longintshortbyte字符型:char浮点型:floatdouble布尔型:boolean自动类型转换从低级到高级byteshort、int、long、float、doubleshortint、long、float、doubleintlong、float、doublelongfloat、doublecharint、long、float、doublefloatdouble强制类型转换•当程序需要从高级向低级转换数据类型时,就必须实施强制性的类型转换,其语法如图3.21所示。(欲转换的数据类型)字段名称;已定义的成员字段,符合命名规则,一般为较低级数据类型一般为较高级数据类型流程控制•选择:if语句、if…else语句、if…elseif…else语句、switch语句•循环:while循环、do…while循环、for循环•跳转语句:break语句、continue语句•带标签的语句第4章类和对象•1、面向对象的程序有着抽象、封装、继承和多态四大特点。•2、Java类模板publicclass类名{//定义属性部分属性1的类型属性1;属性2的类型属性2;…属性n的类型属性n;//定义方法部分方法1;方法2;…方法m;}类定义的语法规范[类的修饰符]class类名称[extends父类名称][implements接口名称列表]{变量定义及初始化;方法定义及方法体;}类体,其中定义了该类中所有的变量和该类所支持的方法,称为成员变量和成员方法。类的修饰符:[public][abstract|final]缺省方式为friendly标识符•标识符是指程序中类、变量、常量、方法等的名字。对类、方法等进行定义和引用时,就需要用到标识符。标识符的命名规则如图所示。HelloWorld标识符由字母、数字、下划线(-)、美元符($)组成标识符区分大小写,其表示的意思不同Java中的关键字不能用作标识符标识符命名时要做到“见名知意”首字母只能是字母或者下划线,不能用数字特殊规则规则对象的声明•使用对象,我们首先要对其进行声明。实例化对象的声明形式如图所示。类名对象名=new类名();用户自定义的标识符,必须符合标识符规范实例化对象的关键字实例化以分号表示结束紧跟在类名之后,注意加上两个类名必须一致,且是已经声明的类对象的使用•使用对象,主要是通过对象来访问对象里的某个成员字段或方法,它的语法大致如图所示。访问字段:对象名称.字段名访问方法:对象名称.方法名()对象名,字段名都要符合命名规则方法名后面要加小括号12final——到此为止•final在类之前•表示该类是最终类,不能再被继承。•final在方法之前•表示该方法是最终方法,该方法不能被任何派生的子类覆盖。•final在变量之前•表示变量的值在初始化之后就不能在改变;相当于定义了一个常量。方法的原理•一般方法的运用原理大致如图4.1所示。•我们可以把方法看成一个“黑盒子”,方法的使用者(对象)只要将数据送进去就能得到结果,而不用管其是如何工作的。当我们需要改变状态时,就由对象去调用方法,方法通过执行,再将结果返回。这就是方法的运用原理。对象调用返回(改变状态的代码)方法如何定义类的方法•类的方法定义类的某种行为(或功能)方法的定义方法的名称方法的主体方法返回的数据类型定义类的方法public返回值类型方法名(){//这里编写方法的主体}步骤一:定义方法名以及返回值步骤二:编写方法体方法的返回值•如果方法具有返回值,方法中必须使用关键字return返回该值,返回类型为该返回值的类型•如果方法没有返回值,返回类型为voidpublicclassStudent{Stringname=张三;publicvoidgetName(){returnname;}……}返回类型要匹配return表达式;编译错误调用方法类A{方法A(){}方法B(){}}类A{方法A(){}}类B{方法B(){}}调用调用调用者位于被调用的方法所在类的外部调用者与被调用的方法位于同一类方法调用•方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果•方法调用:执行方法中包含的语句对象名.方法名();形参与实参的关系•1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。•2、实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误,如图4.15所示。Mycanshu('a');Mycanshu(3.14,'a');staticvoidMyCanshu(charmyChar,doublemyDouble){}参数个数不匹配,不能调用参数类型不匹配,不能调用可在类中直接运用的字段--static关键字•首先我们来看static的用法。字段可以分为静态字段和非静态字段。静态字段可以通过类来访问,非静态字段需要通过对象来访问。静态字段用static关键字来修饰,其语法格式如图3.29所示。20static——类变量•static用在变量或方法之前,表明它们是属于类的,称为类方法(静态方法)或类变量(静态变量)。若无static修饰,则变量和方法分别是实例的方法和变量。classABCD{chardata;staticintshare_data;}classDemo{ABCDa,b,c,d;}objectachardataobjectcchardataObjectbchardatastaticintshare_dataobjectdchardata静态方法与非静态方法•前面已经介绍过,成员字段分为静态字段和非静态字段。其实方法也可以分为静态方法和非静态方法。其中,非静态方法必须在类实例化之后通过对象来调用,而静态方法可以在类实例化之前就使用。•使用了static修饰符的方法为静态方法,其定义格式如图所示。•没有使用static修饰的即为非静态方法。static返回类型方法名(){//方法主体}静态方法与非静态方法•静态方法与非静态方法的区别主要体现在以下两个方面:•外部调用静态方法时,可以使用“类名.方法名”的方式,也可以使用“对象名.方法名”的方式。而非静态方法只有后面的这种形式。即调用静态方法无需创建对象。•静态方法在访问本类的成员时,只允许访问静态方法,而不许访问非静态方法。非静态方法则无此限制。构造方法•在使用构造方法的时候需要注意以下几点:•构造方法的名字必须和类的名字完全相同。•构造方法没有返回值。•尽管没有返回值,其也不能用“void”修饰•构造方法不能用static和final来修饰。•一个类可以定义多个构造方法•在Java语言中,如果没有为类定义构造方法,那么会由编译器会自动调用一个默认的没有任何操作的无参数的构造方法以保证对象可以得到正确的初始化。第5章数组•若想存放一连串相关的数据,使用数组是一个相当好的选择。首先我们来对数组进行声明,数组声明的格式如图6.3所示。一维数组的声明数组类型数组名[];数组标识,括号内必须为空,不允许在其中指定数组的长度标识符,需要符合标识符规范所有数据类型一维数组的初始化•数组必须在访问之前进行初始化,数组的初始化有两种方式。第一种方式是以字面形式指定数组的完整内容。•intscore[]={15,32,65,14,27};•第二种方式是指定数组的大小,再使用new关键字初始化所有数组元素。数组类型数组名[]={值1,值2,值3……值n}数组类型数组名[]=new数组类型[常量值]关键字用来定义数组的大小这种方法会给所有的数组元素赋予同一个默认值,对数值类型来说,默认值是0。数组length属性的使用•Java中,对于每个数组都有一个属性length来指明其长度。如:inta[]={1,2,3};a.length就指明了数组list的长度•使用length属性表示数组长度会给程序带来很大的灵活性,使得处理数组的代码与数组的长度没有关系。二维数组的声明和初始化•二维数组是最常见的多维数组,它由行和列组成。每行包含相同的列数。二维数组的初始化与一维的没有多大区别,只是变成了两个下标,两边需标明数组的行数和列数,二维数组的声明格式与初始化如下图所示。数组类型数组名[][]任何数据类型标识符,需符合标识符规范数组名=new数组类型[行数][列数]关键字二维数组由行数个一维数组组成二维数组由行数个一维数组组成,每个一维数组中有列数个元素二维数组的初始化1、静态初始化inta[][]={{1,2},{2,3},{3,4,5}};intb[3][2]={{1,2},{2,3},{3,4}};//非法2、动态初始化inta[][]=newint[3][5];//对称二维数组intb[][]=newint[3][];//不对称二维数组b[0]=newint[2];b[1]=newint[3];b[2]=newint[5];创建字符串•Java中创建字符串主要有两种形式:一种是直接使用字符串常量创建字符串变量,另一种是使用new关键字创建字符串变量。具体形式如下图所示。•String类位于java.lang包中,具有丰富的方法•计算字符串的长度•连接字符串•比较字符串(内容相等equals)•提取字符串(indexOf()、lastIndexOf()、substring()、)String变量名=“值“;String变量名=newString(“值“);StringBuffer类的声明和创建•由于String对象中存放的字符串是不能修改的,所以如果要求频繁增加、删除和修改字符串中的某些字符,那么用String就不是很方便。在这种情况下,可以使用StringBuffer类。•创建StringBuffer对象,首先要进行声明,声明的一般形式如下图所示。StringBuffer变量名;标识符,遵循标识符规则StringBuffer类第8章继承与多态第6章继承的实现class父类名{//父类主体}class子类名extends父类名{//子类主体}用extends关键字实现继承定义一个父类访问修饰符•在编写程序的过程中,我们有时并不想父类所有的成员都被子类继承,这时就可以通过访问修饰符去限制继承和可访问权限。•我们先通过一个表大概了解一下有哪些修饰符以及它们对外部类和子类的可见性,如下表所示。成员访问修饰符对外部类是否可见对子类是否可见public是是private否否protected否是default否是33访问修饰符•访问修饰符可访问性位置private默认protectedpublic同一个类是是是是同一个包内的类否是是是不同包内的子类否否是是不同包并且不是子类否否否是方法的覆盖•方法的覆盖也是我们经常会遇到的情况。所谓“覆盖”,就是方法名称相同,但却在不同的场合做不同的事。当一个子类继承一个父类中的方法的名称、参数、类型等都完全一致时,就称子类中的这个方法覆盖了父类中的方法。同样,如果子类中重新定义了父类中已有的字段,则称子类的字段覆盖了父类中的字段。方法的覆盖格式•方法覆盖的语法格式如图8.11所示。class父类{访问权限方法返回值类型方法1(参数1){}}class子类extends父类{访问权限方法返回值类型方法1(参数1){}}覆盖父类中的方法36子类对父类方法的覆盖•如果子类声明了一个与父类的成员方法同名的成员方法,则称父类的该成员方法被重写或覆盖(overriding)•方法覆盖是Java实现多态性机制的另一种方式。•出现方法覆盖时,同样可通过this和super来区分是父类方法还是子类方法。•方
本文标题:java期末复习提纲
链接地址:https://www.777doc.com/doc-4484181 .html