资源描述:
《《对部分总结的更新》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、对部分总结的更新很久没有来了,不解释,现在把以前总结的东西,再总结一次,考试完了,把总结放在这里以后可能还会用到。面向对象在JAVA中,一切都是对象,但我们用来操纵对象的却是引用。对象包括变量(属性)和方法,变量表示对象的属性,方法用来描述对象的功能,处理过程。对于对象的要求:高内聚、低耦合,这样容易拼装成为一个系统。实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚)。可复用性是OOP的基础。类方法中的一类特殊方法:构造方法。构造方法是当用类生成对象时,系统在生成对象的过程中利用的方法。注意:构造方法在生成对象的时候会被调用,但并不是构造方法生成了对象。构造方法没有返回
2、值。构造方法的方法名与类名相同。如果用户没有为类编写构数方法,则系统会为该类生成一个无参的默认构造方法,否则,系统将不再为该类自动生成无参构造方法。this表示当前对象,this()表示本类构造方法。super表示直接父类对象,super()表示直接父类构造方法。this(),super()均可带参数。继承父类(SuperClass)和子类(SonClass)。父类的非私有化属性和方法(非构造方法)可以默认继承到子类。classSonextendsFather{}JAVA中只支持单继承。JAVA通过接口和内部类实现多继承。父类的构造方法子类不能继承,子类只能在自已的构造方法中访问
3、父类的构造方法。方法覆盖(OVERRIDE):当父类中的非私有方法跟子类的方法名一样,参数一样,返回类型也一样时,称为子类方法对父类方法的覆盖。这时,子类方法的访问控制权限不能比父类方法的访问控制权限更严格,也不能抛出更多的异常,否则编译出错。这也是JAVA之所以有动态多态的原因。修饰属性和方法的修饰符,以下范围依次由严到宽:private:本类访问;default:同包可见。protected:同包可见+子类可见public:表示所有的地方均可见。当构造一个对象的时候,系统先递归构造父类对象,再构造子类对象。super()表示调用父类的构造方法。this()用于调用本类的构造方
4、法,可以有参或无参,以此调用相应的构造函数。Super()和this()一样,如果出现,则必须放在构造函数的第一行,且两者不能同时出现在同一构造函数中。如果没有调用super()和this()构造方法,那么系统会自动调用父类的无参构造方法,相当于super()。因此在编写类时,如果定义了有参构造方法,则应同时定义一个无参构造方法,以便别人断承。构造对象的顺序:静态变量,静态初始化块,static{}1.加载类2.判断构造函数中有没有this()和super(),如果有this(),则调用本类相应的构造函数;如果有super(),则调用父类相应的构造函数;如果两个都没有,则调用父类
5、无参构造函数;以此递归类推。3.实例变量初始化。4.执行动态初始化块。{xxxxxxxx}5.执行本类的构造方法。张老也给我们讲过,运行时是先追溯到顶层父类,挨个构造到子类提示:1.为什么初始化一个子对象时必须先调用基类的构造方法?因为子对象内部包含着一个父对象,所以,初始化子对象前必须先初始化这个在子对象内部的父对象。父类在子类构造器可以访问它之前就已经完成了初始化。2.执行类的所有特定的清理动作,其顺序跟生成对象的顺序相反,通常这就要求父类元素仍旧存活。3.组合和继承都允许在新的类中放置子对象,组合是显式地这样做,而继承是隐式地做。组合技术通常用于想在新类中使用现有类的功能而
6、非它的接口的这种情形。当想使用现有类,并开发一个它的特殊版本时,则使用继承。多态多态:多态指的是运行时类型识别。当对象调用覆盖方法时,系统在编译过程中不对对象类型进行识别和方法绑定,而是在运行时才对该对象进行类型识别,并根据该对象的具体类型绑定执行相应类型中定义的覆盖方法。如果在子类里找不到相应的方法,才到父类里去打。多态之所以能体现出来,正是由于子类跟父类间发生的方法覆盖。比如就拿练习的东西举例吧:classAnimal{voideat(){};}classDogextendsAnimal{voideat(){};}classPigextendsAnimal{voideat()
7、{};}Voidgo(Animalanimal){animal.eat();}Animala=newDog();Pigp=newPig();go(a);go(p);abstract修饰符abstract(抽象)可以修饰类、方法如果将一个类设置为abstract,此类不可生成对象,必须被继承使用。抽象类除了不能生成对象外,其它与变通类无异。抽像类继承一个类时,该类必须有无参构造方法,否则出错.abstract可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性。abs