预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共45页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

面向对象四大特征:封装、继承、多态、抽象面向对象vs面向过程 特征一:封装与隐藏 特征二:继承性 特征三:多态性 特征四:抽象性学习面向对象内容的三条主线何谓“面向对象”的编程思想?面向对象与面向过程例子:人把大象装冰箱使用者对类内部定义的属性(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题。 publicclassAnimal{ publicintlegs; publicvoideat(){ System.out.println(“Eating.”); } publicvoidmove(){ System.out.println(“Moving.”); } } publicclassZoo{ publicstaticvoidmain(Stringargs[]){ Animalxb=newAnimal(); xb.legs=4; System.out.println(xb.legs); xb.eat();xb.move(); }}Java中通过将数据声明为私有的(private),再提供公共的(public)方法:getXxx()和setXxx()实现对该属性的操作,以实现下述目的: 隐藏一个类中不需要对外提供的实现细节; 使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作; 便于修改,增强代码的可维护性;面试题面试题<3/5>继承性通过继承,简化Student类的定义:作用: 继承的出现提高了代码的复用性。 继承的出现让类与类之间产生了关系,提供了多态的前提。 不要仅为了获取其他类中某个功能而去继承关于继承的规则: 子类不能直接访问父类中私有的(private)的成员变量和方法。子类对象的实例化过程OrderBorder=newOrderB("order_b",1001,1);classCreature{ publicCreature(){ System.out.println("Creature无参数的构造器"); } } classAnimalextendsCreature{ publicAnimal(Stringname){ System.out.println("Animal带一个参数的构造器,该动物的name为"+name); } publicAnimal(Stringname,intage){ this(name); ("Animal带两个参数的构造器,其age为"+age); } } publicclassWolfextendsAnimal{ publicWolf(){ super("灰太狼",3); ("Wolf无参数的构造器"); } publicstaticvoidmain(String[]args){ newWolf(); }}Question1 Assumethatcountryissetforeachclass. Given: 10.publicclassMoney{ 11.privateStringcountry,name; 12.publicStringgetCountry(){returncountry;} 13.} and: 24.classYenextendsMoney{ 25.publicStringgetCountry(){returnsuper.country;} 26.} 27. 28.classEuroextendsMoney{ 29.publicStringgetCountry(StringtimeZone){ 30.returnsuper.getCountry(); 31.} 32.}多态性,是面向对象中最重要的概念,在java中有两种体现: 方法的重载(overload)和重写(overwrite)。 对象的多态性——可以直接应用在抽象类和接口上。 Java引用变量有两个类型:编译时类型和运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。 若编译时类型和运行时类型不一致,就出现多态(Polymorphism)多态性(2)多态性(3)虚拟方法调用(VirtualMethodInvocation)较高级的基本数据类型练习:继承成员变量和继承方法的区别Question2 Given: 1.classTestA{ 2.publicvoidstart(){System.out.println(”TestA”);} 3.} 4.publicclassTestBextendsTestA{ 5.publicvoidstart(){System.out.println(”TestB”);} 6.publicstaticvoidmain(Strin