查看: 1047|回复: 2

[知识归纳] Java三大特性总结

[复制链接]
  • TA的每日心情
    开心
    2018-4-17 22:59
  • 签到天数: 211 天

    [LV.7]常住居民III

    发表于 2015-4-30 10:41:35 | 显示全部楼层 |阅读模式
    Java三大特性:
    封装:
    抽象:处理各种问题的第一步,把具体的问题与解决问题的方法结合起来,这就是抽象的过程.
    Java常见的访问控制修饰符:
    Public :到处都可以访问,不受包和父子类关系的限制
    默认: 只在同包内可以访问,不受父子类关系限制
    Protected: 不同包的子类和同包的类中访问,这是一种继承访问。
    Private:只有自己类内部能访问,其他部分无论包内外,父子类都不能访问
    Final:修饰属性:常量,值不能被修改
                  要么在声明时候赋值,要么在构造方法中赋值,两次机会只能选取一次。
    修饰方法 :final方法子类不能将其重写
         修饰类:该类不能有子类
    Static:修饰属性:静态属性是类所有实例共有,可以用”类名.属性”的方式访问,对于数值型变量,系统会给定初始值,不强制要求赋初始值.
          方法:可以用”类名.属性”的方式访问,方法也为类的所有实例所共有
          代码块 : 加载的优先级最高,甚至比主方法的加载还要早.
    对于由final static共同修饰的变量,赋值的机会有两个,一是在声明的时候,二是在静态代码块中,两次机会有且只能有一次被选择.
    继承:
    允许存在父子类的关系,一个子类有且只有一个直接的父类(Java中的继承是类之间的单继承.)
         当在内存形成类的信息绑定的时候不会出现多个交叉点,结构的清晰程度较高.Java本身的运行效率较低,只能达到C语言的五分之一.Java语言舍弃效率的完美要求,换来学习和使用的简单.
         属性的遮盖: Father f = new Son(); 属性访问到的是父类的,方法访问到的是子类的.
         方法的重载 :在类的内部一种方法出现多种表达方式,如参数表的不同,构造方法的重载
         方法的重写:发生在父子类之间,子类方法对父类的方法有新的实现方法,但两个方法定义部分完全一致.
         继承的目的: 实现代码的复用.理顺类型对象之间的结构关系.
         构建一个父类的时候,要求他的子类与父类必须有理论上的确实的继承关系
         代码复用的方法:
    继承复用,完全的将父类非私有部分作为子类的内容,若需变化,子类只要重写父类的同名方法即可。
         组合复用:选取某个类型中的一个对象的方法实现作为该类的方法实现过程,这两个类也称为理论父类和理论子类. 程序中是不出现extends关键字对两个类关系的描述的.
    通过具体实例抽象出父类的过程称为泛化
    通过父类来确认子类的过程称为特化.
    在代码的类之间关系的设计阶段,理论上要求父子类之间没有相同的同名方法.但语法允许子类重写父类的方法.要求子类当中只有自己特有的方法和属性,其他部分与父类和其他同级子类相同的部分都从父类继承得来.
    有关抽象类:
    抽象类是用于描述自然界中层级较高的对象类,人们无法对一个抽象类实例化,如动物。只能用一个动物类的子类对抽象类的对象进行实例化。
    抽象修饰符abstract 可以修饰类,修饰方法。
    抽象类中可以定义非抽象的方法,但如果一个类中有抽象方法,则这个类必须被定义成抽象类。抽象类中有构造方法,但是没有抽象的构造方法。构造方法的存在完全是为了继承关系而存在。
    与之形成对比的就是接口,接口中的所有方法要求定义成公开抽象方法,因为这些方法所表示的就是标准,标准的信息必须做到公开化,透明化,例如体育竞赛中的规则。
    抽象类与接口之间的对比:接口与抽象类本质上是两个概念,但可以将接口看作是一个抽象层级比抽象类更高的特殊类。由于接口的信息中只有已知不可变值以及抽象方法,所以信息的绑定方式单一,从实现上可以满足继承但也不会出现网状的信息绑定效果,不会增加访问时的节点数。因此接口允许多继承。
    对于类的内容,不允许多继承,一个子类只能有一个直接的父类,信息绑定的复杂性加上Java本身运行原理的限制,使它不能像C语言一样高效的运行,若绑定的信息复杂度较高,数据的访问过程更加复杂,影响运行效率。
    抽象类就是类,接口就是接口,都处于较抽象的层级而使它们具有相近的特性。(接口可以看成是一个特殊的抽象类)
    多态: 一个接口多种实现,可以理解为一种语法上的允许,表现形式多样。以下的代码表达都可以认为是Java多态性的具体表现:
    IA ia = new TestIA(); 其中IA为定义的接口,TestIA为接口的实现类
    Father f = new Son()  其中Father为父类,Son为子类
    Animal a = new Dog() 其中Animal为抽象类,Dog为Animal类的子类.
    父子类中的方法重写
    一个类中的方法重载
    Java中的多态基本上是由接口实现的,抽象类与子类之间的多态只占一少部分,接口是在Java中抽象层级最高的一类,其内部的定义是纯抽象的,属性的定义是公开静态常量,纯抽象的方法和常量属性构成一个标准,其所有的实现类,包括抽象类都要遵守接口中定义的规则。
    Java类中的通信方式最好是以接口的形式进行值或对象的传递,如灯泡与台灯的关系。无论将何种类型的对象作为参数,只要是接口对象的一个实现类,就可以成为一个合理的参数.
    将两个模块的内容以接口的方式进行通信,可以使两个模块的开发方式相对独立,不依赖于任何一个模块的已实现的信息。形成在代码设计中要求的松藕合状态。
    对于多态不必要下明确的定义,只需要理解它的表现形式以及意义,代码中完全实现松藕合的接口方式通信的可能性基本为零,但要求尽量实现。
    接口的存在表面上是实现一种多态语法,实际上是实现了Java中的多继承方式,一个类可以同时继承一个类,并实现另一个或多个接口,以同时获得多个类型的信息(包括属性和方法)。


  • TA的每日心情
    郁闷
    2015-6-22 13:55
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2015-4-30 12:57:38 | 显示全部楼层
    三个东西理解得不是很透彻呀
  • TA的每日心情
    开心
    2018-4-17 22:59
  • 签到天数: 211 天

    [LV.7]常住居民III

     楼主| 发表于 2015-4-30 20:15:20 | 显示全部楼层
    林奉紫 发表于 2015-4-30 12:57
    三个东西理解得不是很透彻呀

    课工厂上的课程也可以听听的
    您需要登录后才可以回帖 登录 | 注册青鸟豆号

    本版积分规则

    Copyright 1999-2020 Beijing Aptech Beida Jade Bird Information Technology Co.,Ltd

    北大青鸟IT教育 北京阿博泰克北大青鸟信息技术有限公司 版权所有

    京ICP备11045574号-3 京公网安备11010802013845号

    快速回复 返回顶部 返回列表