java编程思想教案-复习大纲-PPT.ppt
《java编程思想教案-复习大纲-PPT.ppt》由会员分享,可在线阅读,更多相关《java编程思想教案-复习大纲-PPT.ppt(64页珍藏版)》请在咨信网上搜索。
java编程思想教案-复习大纲Java程序设计考试范围程序设计考试范围第一章第二章第三章第四章第五章第六章第七章第八章第九章第十章第十一章第十四章第十五章XXXX2Java程序设计考试题型程序设计考试题型选择题共选择题共20分,每小题分,每小题2分分填空题(共填空题(共20分,每空分,每空2分)分)判断题(共判断题(共10分,每小题分,每小题2分)分)程序阅读题(共程序阅读题(共30分,分,4题题)编程题(编程题(20分分,1题题)3面向对象三大特征面向对象三大特征封装隐藏实现细节,使得代码模块化,简单拿来,简单拿去继承代码重用多态分离了“做什么”和“怎么做”45多态多态分离“做什么”(吃中午饭)和“怎么做”(吃啥中午饭);消除类型之间的耦合关系;多态方法调用允许一种类型表现出与其他相似类型的区别区别这种区别根据方法行为的不同而表现出来;5JAVA运行运行*.java*.classjavacjava6源代码格式package包名;importjava.swing.*;;*能够导入swing目录下的所有文件但不包括子目录下的文件。假如要用到swing/event目录下的文件时,必须要加上importjava.swing.event.*才行。类定义方式:权限(可省略)static/final/abstract(可没有)class(必须有)类名(必须有)方法定义方式:权限(可省略)static/final/abstract(可没有)返回类型(必须有)方法名(必须有)(参数列表(可没有));7声明对象声明对象也叫实例化语法:类名对象名=new类名(参数列表)第一步:类名对象名,赋予对象引用;第二步:对象名=new类名(参数列表),获取该对象的一个实际物理副本并把它赋给那个变量;new为对象动态分配内存;一切都是引用用引用操作对象8大家学习辛苦了,还是要坚持继续保持安静继续保持安静9Java源代码(源代码(2)10Java的对象交换的对象交换变量:基本数据类型和对象形式参数:基本数据类型和对象11Java源代码(源代码(3)b1和b2指向同一个对象12Java源代码(源代码(4)classEmployeeprivateintsalary=0;privateStringname;publicvoidEmployee(Stringname,intsalary)this.name=name;this.salary=salary;13Java源代码(源代码(5)14classSwap1intcount=0;publicclassTestForSwap1publicstaticvoidmain(Stringargs)Swap1s1=newSwap1();Swap1s2=newSwap1();s1.count=5;s2.count=10;System.out.println(s1.count:+s1.count+and +s2.count:+s2.count);s1=s2;System.out.println(s1.count:+s1.count+and +s2.count:+s2.count);s2.count=30;System.out.println(s1.count:+s1.count+and +s2.count:+s2.count);s1.count:5ands2.count:10s1.count:10ands2.count:10s1.count:30ands2.count:3015x:10andy:20a:10andb:20a:20andb:20a:20andb:20 x:10andy:20publicclassTestForSwap2voidswapF(inta,intb)System.out.println(a:+a+and+b:+b);a=b;System.out.println(a:+a+and+b:+b);intc=0;c=a;a=b;b=c;System.out.println(a:+a+and+b:+b);publicstaticvoidmain(Stringargs)TestForSwap2t2=newTestForSwap2();intx=10;inty=20;System.out.println(x:+x+and+y:+y);t2.swapF(x,y);System.out.println(x:+x+and+y:+y);16x:10andy:20a:10andb:20a:20andb:10 x:10andy:20publicclassTestForSwap3voidswapF(inta,intb)System.out.println(a:+a+and +b:+b);a=20;b=10;System.out.println(a:+a+and +b:+b);publicstaticvoidmain(Stringargs)TestForSwap3t2=newTestForSwap3();intx=10;inty=20;System.out.println(x:+x+and +y:+y);t2.swapF(x,y);System.out.println(x:+x+and +y:+y);17s1:10ands2:20a:10andb:20a:20andb:20s1:10ands2:20classSwap2Intcount=0;publicclassTestForSwap4voidswapF(Swap2a,Swap2b)System.out.println(a:+a.count+and +b:+b.count);a=b;System.out.println(a:+a.count+and +b:+b.count);publicstaticvoidmain(Stringargs)TestForSwap4t2=newTestForSwap4();Swap2s1=newSwap2();Swap2s2=newSwap2();s1.count=10;s2.count=20;System.out.println(s1:+s1.count+and +s2:+s2.count);t2.swapF(s1,s2);System.out.println(s1:+s1.count+and +s2:+s2.count);18s1:10ands2:20a:10andb:20a:20andb:20s1:20ands2:20classSwap3Intcount=0;publicclassTestForSwap5voidswapF(Swap3a,Swap3b)System.out.println(a:+a.count+and +b:+b.count);a.count=b.count;System.out.println(a:+a.count+and +b:+b.count);publicstaticvoidmain(Stringargs)TestForSwap5t2=newTestForSwap5();Swap3s1=newSwap3();Swap3s2=newSwap3();s1.count=10;s2.count=20;System.out.println(s1:+s1.count+and +s2:+s2.count);t2.swapF(s1,s2);System.out.println(s1:+s1.count+and +s2:+s2.count);19基本语法(基本语法(1-3)20基本语法(基本语法(1-4)21classBasepublicstaticvoidtest(Stringstr)str=A;publicstaticvoidmain(Stringargs)Stringstring=B;test(string);System.out.println(string);P412223抽象类/接口是提取多种具有相似性的具体事物的共同特征而产生的,不是描述一类具体事物。24Super关键字关键字指代基类的数据或方法;基类和导出类有相同方法时;super.方法名()基类的构造器是有参的;Super();2526继承(继承(2)26static不用声明对象不用声明对象,仅通过类本身就能调用静态方法、静态域。仅通过类本身就能调用静态方法、静态域。27static+final意味着只占据一个不能改变的存储空间,变量名全部大写,并用下划线分割各个单词;private方法都隐式地指定为final。28访问权限控制访问权限控制publicprotected包权限private包权限关键字就是缺省;classTestClass29访问权限控制(访问权限控制(2)Eclipse/JustText/TestForImport2.javaEclipse/TestForImport.java30类的种类类的种类继承基类vs导出类一个导出类能否extends多个基类?抽象类接口一个接口能否extends多个接口?一个类能否implements多个接口?31初始化初始化初始化顺序编译时先初始化主类的基类的静态定义(包括静态块),再初始化主类的;执行主类的main方法;声明主类对象先依次初始化主类的基类的非静态定义和构造器,再初始化主类的;声明其他类对象先依次初始化其他类的基类的静态定义、非静态定义和构造器,再初始化其他类;323333重写(或覆盖重写(或覆盖overriding)与重载)与重载(overloading)重写基类与导出类方法的参数完全相同重载一个类中方法名一样,参数不一样?基类与导出类间有没有重载34重写(或覆盖重写(或覆盖overriding)与重载)与重载(overloading)(2)Eclipse/tij_code/TIJ4_CODE/reusing/Lisa.javapackagereusing;classLisaextendsHomerOverridevoiddoh(Milhousem)System.out.println();Overridechardoh(charc)return(1);35前期绑定前期绑定v.s.后期绑定后期绑定绑定绑定:将一个方法调用同另一个方法主题关联起来;static方法和方法和final方法(方法(private方法属于方法属于final方法);方法);可以编写只与基类打交道的程序代码,即,发送消息给某可以编写只与基类打交道的程序代码,即,发送消息给某个对象,让该对象去断定该如何做事情;个对象,让该对象去断定该如何做事情;36内部类内部类一种特殊的继承关系;语法把类的定义置于外围类的里面;37局部内部类局部内部类定义在方法的作用域38局部内部类(局部内部类(2)39局部内部类(局部内部类(3)局部类不能用局部类不能用public或或private访问说明符进行声明。访问说明符进行声明。它的作用域被限定在声明该局部类的块中。它的作用域被限定在声明该局部类的块中。局部类有个优势,即对外部世界可以完全地隐藏起来。局部类有个优势,即对外部世界可以完全地隐藏起来。不仅能访问它们外围类的域,不仅能访问它们外围类的域,还可以访问局部变量。还可以访问局部变量。40外围类的局部变量如果要被内部类使用,必须是外围类的局部变量如果要被内部类使用,必须是final变量。变量。41匿名内部类匿名内部类实例初始化实例初始化实现构造器效果实现构造器效果4243匿名内部类是否向上转型匿名内部类是否向上转型??43publicclassAnonymousConstructorpublicstaticBasegetBase(inti)returnnewBase(i)print(Insideinstanceinitializer);/构造器效果publicvoidf()print(Inanonymousf();44publicclassTestpublicstaticvoidmain(Stringargs)newTest().doSomeThing(1);publicvoiddoSomeThing(intattribute)newThread()publicvoidrun()doSystem.out.println(attribute);if(attribute3)attribute+;while(attribute5);.start();45静态内部类静态内部类vs非静态内部类非静态内部类静态内部类(嵌套类)对象生成:new外围类.内部类();必须通过对象来访问外围类的数据;非静态内部类对象生成:外围类对象.new内部类();可以直接访问访问外围类的数据;4647内部类对象的创建内部类对象的创建?47484849内部类对象的创建内部类对象的创建内部类对象的创建内部类对象的创建必须先创建外部类对象外部类的方法同一个名称不能声明两个局部变量,或一个局部变量和一个实例变量;外部类.new495050内部类总结内部类总结一个内部类对象可以访问创建它的外部类对象的内容,甚至包括私有变量!内部类具有属性一样的修饰符,所以可以像属性一样被封装成private;内部类的名称必须与所嵌套的类不同;静态内部类(嵌套类):要创建嵌套类的对象,并不需要其外围类的对象;静态内部类中可以定义静态或者非静态的成员。静态内部类只能访问外围类的静态成员(包括静态变量和静态方法),不能从嵌套类的对象中访问非静态的外围类对象(包括非静态变量和非静态方法)。51内部类总结(内部类总结(2)匿名内部类就是没有名字的内部类。什么情况下需要使用匿名内部类?如果满足下面的一些条件,使用匿名内部类是比较合适的:只用到类的一个实例。类在定义后马上用到。类非常小(SUN推荐是在4行代码以下)给类命名并不会导致你的代码更容易被理解。方法内部类不可以用private,public,protected修饰,只能用final和abstract修饰;内部类可以定义为abstract。52内部类总结(内部类总结(3)在使用匿名内部类时,要记住以下几个原则:匿名内部类不能有构造方法。由于构造器的名字必须与类名相同,匿名类没有类名,所以,匿名类不能有构造器。匿名内部类不能定义任何静态成员、方法和类。匿名内部类不能是public,protected,private,static。只能创建匿名内部类的一个实例。一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。5354内部类的继承内部类的继承/:innerclasses/InheritInner.javapackageinnerclasses;/*AddedbyEclipse.py*/Inheritinganinnerclass.classWithInnerclassInnerpublicclassInheritInnerextendsWithInner.Inner/!InheritInner()/WontcompileInheritInner(WithInnerwi)wi.super();publicstaticvoidmain(Stringargs)WithInnerwi=newWithInner();InheritInnerii=newInheritInner(wi);/:5455内部类的覆盖内部类的覆盖/:innerclasses/BigEgg.java/Aninnerclasscannotbeoverridenlikeamethod.importstaticnet.mindview.util.Print.*;classEggprivateYolky;protectedclassYolkpublicYolk()print(Egg.Yolk();publicEgg()print(New Egg();y=newYolk();publicclassBigEggextendsEggpublicclassYolkpublicYolk()print(BigEgg.Yolk();publicstaticvoidmain(Stringargs)newBigEgg();内部类和外围类是两个独立个体,不内部类和外围类是两个独立个体,不存在内部类覆盖存在内部类覆盖NewEgg()Egg.Yolk()5556/:innerclasses/BigEgg2.javapackageinnerclasses;/*AddedbyEclipse.py*/Properinheritanceofaninnerclass.importstaticnet.mindview.util.Print.*;classEgg2protectedclassYolkpublicYolk()print(Egg2.Yolk();publicvoidf()print(Egg2.Yolk.f();privateYolky=newYolk();publicEgg2()print(New Egg2();publicvoidinsertYolk(Yolkyy)y=yy;publicvoidg()y.f();publicclassBigEgg2extendsEgg2publicclassYolkextendsEgg2.YolkpublicYolk()print(BigEgg2.Yolk();publicvoidf()print(BigEgg2.Yolk.f();publicBigEgg2()insertYolk(newYolk();publicstaticvoidmain(Stringargs)Egg2e2=newBigEgg2();e2.g();/*Output:Egg2.Yolk()NewEgg2()Egg2.Yolk()BigEgg2.Yolk()BigEgg2.Yolk.f()声明主类对象声明主类对象先依次初始化主类的基先依次初始化主类的基类的非静态定义和构造类的非静态定义和构造器,再初始化主类的;器,再初始化主类的;5657内部类的作用内部类的作用2.最根本的作用就是实现最根本的作用就是实现JAVA中的多继承中的多继承!Java只能继承一个类,它的多重继承在我们没有学习内部类之前是用接口来实现的。但使用接口有时候有很多不方便的地方。比如我们实现一个接口就必须重写它里面的所有方法。而有了内部类就不一样了。它可以使我们的类继承多个具体类或抽象类。1.内部类可以很好的实现隐藏内部类可以很好的实现隐藏一般的非内部类,是不允许有private与protected权限的,但内部类可以。3.可以避免修改接口而实现同一个类中两种同名方可以避免修改接口而实现同一个类中两种同名方法的调用。法的调用。如果类要继承一个类,还要实现一个接口,可是你继承的类和接口里面有两个同名的方法怎么办?你怎么区分它们?这就需要我们的内部类了。5758很好的实现隐藏很好的实现隐藏接口packageinsidecategory;publicinterfaceIncrementablevoidincrement();具体类packageinsidecategory;publicclassExampleprivateclassInsideClassimplementsInterfaceTestpublicvoidtest()System.out.println(这是一个测试);publicInterfaceTestgetIn()returnnewInsideClass();客户端程序packageinsidecategory;publicclassTestExamplepublicstaticvoidmain(Stringargs)Examplea=newExample();InterfaceTesta1=a.getIn();a1.test();从客户端程序只知道Example的getIn()方法能返回一个InterfaceTest实例,但并不知道这个实例是这么实现的。而且由于InsideClass是private的,所以如果不看服务器代码的话,根本看不到这个具体类的名字,所以说它可以很好的实现隐藏。5859实现实现JAVA中的多继承中的多继承类一packageinsidecategory;publicclassExample1publicStringname()returnliutao;类二packageinsidecategory;publicclassExample2publicintage()return25;类三packageinsidecategory;publicclassMainExampleprivateclasstest1extendsExample1publicStringname()returnsuper.name();privateclasstest2extendsExample2publicintage()returnsuper.age();publicStringname()returnnewtest1().name();publicintage()returnnewtest2().age();publicstaticvoidmain(Stringargs)MainExamplemi=newMainExample();System.out.println(姓名:+mi.name();System.out.println(年龄:+mi.age();类三,里面分别实现了两个内部类test1,和test2,test1类又继承了Example1,test2继承了Example2,这样类三MainExample就拥有了Example1和Example2的方法和属性,也就间接地实现了多继承。5960实现同一个类中两种同名方法的调用实现同一个类中两种同名方法的调用接口packageinsidecategory;publicinterfaceIncrementablevoidincrement();类MyIncrementpackageinsidecategory;publicclassMyIncrementpublicvoidincrement()System.out.println(Otherincrement();staticvoidf(MyIncrementf)f.increment();packageinsidecategory;publicclassCallee2extendsMyIncrementimplementsIncrementablepublicvoidincrement()/代码packageinsidecategory;publicclassCallee2extendsMyIncrementprivateinti=0;privatevoidincr()i+;System.out.println(i);privateclassClosureimplementsIncrementablepublicvoidincrement()incr();IncrementablegetCallbackReference()returnnewClosure();60持有对象持有对象如何保存一组对象容器类库两种类型Collection一个独立元素的序列,这些元素都服从一条或多条规则。Map一组成对的“键值对”对象,允许使用键来查找值。61/队列:先进先出队列:先进先出(FIFO)/优先队列:元素按照其自然顺序进行排序,优先队列:元素按照其自然顺序进行排序,或者根据构造队列时提供的或者根据构造队列时提供的Comparator进行排序进行排序可重复可重复数组。查询快,增删慢。数组。查询快,增删慢。线程安全,但效率很差线程安全,但效率很差(现实中基本不用现实中基本不用)会按照数字将元素排列,为会按照数字将元素排列,为“可排序集合可排序集合”默认升序。默认升序。按二叉树排序按二叉树排序(效率非常高效率非常高);按按Comparable接口的接口的compareTo()比较是否重复比较是否重复/栈,后进先出栈,后进先出(LIFO)62Map63持有对象小结持有对象小结存放元素存放元素存放顺序存放顺序元素可否重复元素可否重复遍历方式遍历方式排序方式排序方式各自实现类各自实现类ListObject有序有序可可迭代迭代(2)ArrayList,TreeSetSetObject无序无序不可不可迭代迭代SortedSetHashSetSortedSetObject无序无序不可不可迭代迭代已排序已排序TreeSetMap(1)Key无序无序Key不可不可,value可可对对Key迭代迭代SortedMapHashMapSortedMap(1)无序无序,有排序有排序Key不可不可,value可可对对Key迭代迭代已对键值排序已对键值排序TreeMap(1)Object(key)Object(value);(2)Collections.sort();注:以上有序的意思是指输出的顺序与输入元素的顺序一致HashSet、HashMap通过hashCode(),equals()来判断重复元素在java中指定排序规则的方式只有两种:1、实现java.util包下的Comparator接口2、实现java.lang包下的Comparable接口64- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 编程 思想 教案 复习 大纲 PPT
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文