《Java基础重点整理》PPT课件.ppt_第1页
《Java基础重点整理》PPT课件.ppt_第2页
《Java基础重点整理》PPT课件.ppt_第3页
《Java基础重点整理》PPT课件.ppt_第4页
《Java基础重点整理》PPT课件.ppt_第5页
已阅读5页,还剩34页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.1有关面向对象的概念,变量:即指对象的所知道的状态方法:指对象的功能单元。什么是消息?软件对象通过相互间传递消息来相互作用和通信一个消息由三部分组成:1.接受消息的对象2.要完成方法的名字3.方法需要的参数,1.1有关面向对象的概念,什么是封装?封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际,私有数据,方法,上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。,方法,数据,对象A,对象B,公有数据,1.1有关面向对象的概念,什么是子类?子类是作为另一个类的扩充或修正所定义的一个类.,bicycle,(superclass),Mountainbikes,Racingbikes,Tandembikes,subclass,1.1有关面向对象的概念,什么是继承?继承是子类利用父类中定义的方法和变量就像它们属于子类本身一样.,classCarintcolor_number;intdoor_number;intspeed;push_break()add_oil(),classTrash_CarextendsCardoubleamount;fill_trash(),1.1有关面向对象的概念,什么是方法的覆盖?在子类中重新定义父类中已有的方法。,classCarintcolor_number;intdoor_number;intspeed;push_break()speed=0;add_oil(),classTrash_CarextendsCardoubleamount;fill_trash()push_break()speed=speed-10;,1.1有关面向对象的概念,什么是方法的重载(多态性)?在同一个类中至少有两个方法用同一个名字,但有不同的参数。,类,voidshow(intint_num),voidshow(doubledouble_num),voidshow(nitnit_um,floatfloat_um),123,1.23,123,1.23,1.2Java语言的特点,Java是什么?Java=“C+”-“复杂性和奇异性”+“安全性和可移植性”Java由那些特性?(1)面向对象封装性、多态性、继承性、动态链接(2)操作平台无关性严格的语言定义:“没有依据机器的不同而不同”或“由编译器决定”等字眼,最后的目标码都是一致的,初值都是确定的,1.2Java语言的特点,(4)多线程Java提供现成的类Thread,只要继承这个类就可以编写多线程的程序。(5)Java与C及C+的区别不再有#include和#define等于处理功能不再有structure,union及typedef不再有函数、不再有指针、不再有多重继承不再有goto不再有操作符重载(OperatiorOverloading)取消自动类型转换,要求强制转换,1.3Java的开发环境,产生如下目录结构javabin的目录下包含义下主要文件:javac:Java编译器,用来将java程序编译成Bytecodejava:Java编译器,执行已经转换成Bytecode的java应用程序.jdb:Java调试器,用来调试java程序javap:反编译,将类文件还原回方法和变量.javadoc:文档生成器,创建HTML文件appletviwer:Java解释器,用来解释已经转换成Bytecode的java小应用程序.,1.5Java类型系统,1.5Java类型系统,byte8位2的补码(byte)0short16位2的补码(short)0int32位2的补码0long64位2的补码0Lfloat32位IEEE754浮点数标准0.0fdouble64位IEEE754浮点数标准0.0dchar16位同一码字符集u0000(Unicodecharacter),1.5Java类型系统,程序:保留字,标识符(类名、域名、方法名、符号常量、局部变量,标号、),操作符、界定符,字面常量。声明一个变量intdata=10;BooleanisAlived;Java中的操作符:与C基本一致Java中不再有指针了,1.5Java类型系统,在Java中”引用“是指向一个对象在内存中的位置,在本质上是一种带有很强的完整性和安全性的限制的指针.当你声明某个类,接口或数组类型的一个变量时,那个变量的值总是某个对象的引用或者是null引用.指针就是简单的地址而已,引用除了表示地址而外,还象被引用的数据对象的缩影,还提供其他信息.指针可以有+,-运算,引用不可以运算.,1.5Java类型系统,s1,s2,10001,s2=s1;,astring,10001,classMydateintyear;intmonth;intday;,Mydatetoday=newMyDate(),10008,today,s1=“astring”;,例:Strings1;Strings2;,1.5Java类型系统,能够动态取得的内存有两种,一种是对象实体,一种数组.Java用new申请内存,不需要自己释放不用的内存.在Java中,定义数组时不必给出数组的大小,因为Java的数组是动态分配的。数组变量实际上是一个引用变量,因此要实例化才能使用。例:intArray;Array=newint8;,1.5Java类型系统,例:StringarrayOfString=newString10;每个数组元素包含一个对字符串对象的引用,此时值分配了包含字符串引用的空间,并没有对字符串本身分配内存,此时不能访问。,arrayOfString,for(inti=0;iarrayString.length;i+)arrayOfStringi=newString(“Hello”+i),arrayOfString0arrayOfString1arrayOfString8arrayOfString9,对数组的引用,对字符串的引用,1.6Java中的字符串,有两个字符串str1,str2str1=str2;是指两个引用指向同一个地址str1.equals(str2)是指两个字符串内容相等获取String对象的信息例如:Strings=“thisisastring”;intlen=s.length();booleanresult=s.equal(“thisisa特test”);charch=s.charAt(6);,1.8Java名空间及访问规则,每个类都创造了有自己的名字空间,指方法和变量可以知道彼此的存在,可以使用。abstract类不能直接产生属于这个类的对象final类不能被其他任何类所继承(安全的考虑)public类不但可以被同一程序包中的其它类使用,别的程序包中的类也可以使用.friendly(缺省)类只能被本包中的其它类使用,1.7Java中的类、方法和变量,类的严格定义及修饰字,类的修饰字class类名称extends父类名称.,public,abstract,final或者没有,变量修饰字变量数据类型变量名1,变量名2=变量初值;,方法修饰字方法的返回值类型方法名称(参数1,参数2,/方法的内容,方法和变量的定义及修饰字,public、protected、private,1.8Java名空间及访问规则,变量和方法的修饰字public、protected、privatepublic:任何其它类、对象只要可以看到这个类的话,那么它就可以存取变量的数据,或使用方法。,classABCpublicintpub_i=5;publicvoidshow)()System.out.println(“pub_i”+pub_i);,1.8Java名空间及访问规则,classDemopublicstaticvoidmain(Stringargs)ABCabc=newABC();System.out.println(“abc.pub_i”+abc.pub_i);abc.pub_i=10;abc.show();,abc.pub_i=5pub_i=10;,1.8Java名空间及访问规则,protected变量和方法如果一个类中变量或方法有修饰字protected,同一类,同一包可以使用。不同包的类要使用,必须是该类的子类可以存取变量或调用,publicclassABCprotectedintpro_i=5;protectedvoidshow()System.out.println(“pro_i=”+pro_i;),1.8Java名空间及访问规则,不同中的类不能使用,classDEFpublicstaticvoidmain(Stringargs)ABCabc=newABC();System.out.println(“_i=“+_i);abc.pub_i=10;abc.show();,importmytest.pack.ABC;classDEFextendsABCpublicstaticvoidmain(Stringagrs)DEFdef=newDEF();System.out.println(def.i);def.i=10;def.show();,pro_i=5pro_i=10,1.8Java名空间及访问规则,不同包但是是子类,1.8Java名空间及访问规则,private不允许任何其他类存取和调用friendly(前边没有修饰字的情况)在同一程序包中出现的类才可以直接使用它的数据和方法.,1.8Java名空间及访问规则,当子类中的变量名与父类的相同,原来的变量被遮盖.,classAintdata_a=3;classBextendsAintdata_a=5;classCextendsBvoidprint_out()System.out.println(“data_a=”+data_a);System.out.println(“A.data_a=”+A.data_a);System.out.println(“B.data_a=”+B.data_a);,data_a=5A.data_a=3B.data_a=5,classdemopublicstaticvoidmain(Stringargs)Cc=newC();c.println_out();,1.8Java名空间及访问规则,方法的覆盖(overriding)和重载(overloading)子孙类中定义的方法和祖先类中某个方法同名,同参数行,则祖先类中的该方法被覆盖.方法的重载是指一个对象的多态性,即多个方法用相同的名称,但参数行不同.,类,voidshow(intint_num),voidshow(doubledouble_num),voidshow(nitnit_um,floatfloat_um),123,1.23,123,1.23,1.8Java名空间及访问规则,到此为止-finalfinal在方法之前,防止该方法被覆盖.final在类之前,标是该类不能被继承final在变量之前,定义一个常量.属于类的变量和方法-staticstatic在变量或方法之前,表明它们是属于类的,classABCDchardata;staticint_share_data;classDemoABCDa,b,c,d,1.8Java名空间及访问规则,静态变量在各实例间共享如果是public静态变量,则其它类可以不通过实例化访问它们静态方法称为类的方法,因此不用实例化即可调用(面向过程)一个对象的方法可以访问对象的数据成员,尽管不属于方法的局部变量一个类的方法只能访问自己的局部变量,1.8Java名空间及访问规则,例:不正确的引用classStaticErrorStringmystring=“hello”;publicstaticvoidmain(Stringargs)System.out.println(mystring);错误信息:cantmakeastaticreferencetononstaticvariable.为什么不正确?只有对象的方法可以访问对象的变量.,1.8Java名空间及访问规则,解决的办法:1.将变量改称类变量classStaticErrorstaticStringmystring=“hello”;publicstaticvoidmain(Stringargs)System.out.println(mystring);,1.8Java名空间及访问规则,2.先创建一个类的实例classNoStaticErrorpublicstaticvoidmain(Stringargs)Stringmystring=“hello”;System.out.println(mystring);,1.9Java中的抽象类、接口和程序包,抽象类是指不能直接被实例化的类,因此一般作为其它类的超类,与final类正好相反抽象类中的抽象的方法-在该类中定义但不在该类中提供实现,由继承类提供细节publicabstractclassSomeAbstractClassvoidmethod1()System.out.println(“Hi,Java”);voidmethod2();定义抽象方法的类必须是抽象类.,1.9Java中的抽象类、接口和程序包,利用接口可实现多重继承(可同时实现多个接口)接口的作用和抽象类类似,指定原型,不直接定义方法的内容.关键字implement用来实现方法,即在使用时要用给出方法的实际内容接口中的方法和变量是public的,interfaceStackvoidpush(objectx);object

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论