程_编_象_对_向_面

                         JavaOOP复习

  1.对象的定义:一切具有可描述性的状态和行为的实体(对象抽象成类)
               程序中的对象就是一块内存空间。
  2.类的定义:具有相同属性和方法的一组对象的集合(类实例成对象)
       new一个对象:就是分配一块内存空间,通过构造方法创建一个对象
  3.初始化:
           1.通过new关键字分配内存空间
           2.通过构造方法初始化属性
  4.一个类有一个私有的构造方法:说明该类无法在类外创建对象,也不能被继承
  5.静态类(static):
           1.非静态方法依靠对象产生
           2.staic可以修饰属性和方法,但是不能修饰方法中的变量
           5.静态属性和方法通过类名直接调用,不依赖对象
           6.静态类在类加载器运行时就已经加载(没有对象之前,静态成员和                静态方法就已经存在)
           7.静态方法不能调用非静态成员,实例方法可以调用静态成员
  6.终态(final) :
           1.修饰方法,但是该方法不能被重写
           2.修饰属性,但是该属性的值不能被修改
           3.修饰类,但是该类不能被继承  
  7.参数:
          1.形参:方法定义时的参数(形参是方法中的局部变量,所以方法内不                     能有与形参同名的变量)
          2.实参:方法调用时的参数
          3.方法中的形参修改的是对象本身,对实参没有影响,如果修改的是类                    属性和方法,将对实参产生影响

          4.方法形参:
               1.基本数据类型:形参和实参是两个变量,占用不同的内存空间
               2.引用数据类型:形参只是一个引用,即实参是将内存地址赋值给形参
                               因此形参和实参指向的是同一个内存地址
                    引用传递会改变实参的值
  8.封装:将属性和方法一起包裹在类中,并隐藏类的实现细节,使用方法访问的                   一种手段
          1.隐藏对象的实现细节
          2.隐藏对象的属性信息
          3.将已有数据类型的变量封装可以得到新的自定义类型
       体现:
              1.封装属性:将属性私有化,提供公有方法访问私有属性
              2.封装功能:使用方法实现功能,通过访问修饰符,限制范乃文权限
              3.封装数据类型:定义类,包括属性和方法
       作用:
              1.隐藏实现细节,保证数据的安全性
              2.限制数据访问,提高程序的可维护性
  9.访问修饰符:
                   public:  公有的:  任何地方都可以访问
                protected:受保护的:  在本包和子类可以访问
                  freindly   默认的:   在本包内可以访问
                  private:  私有的:  在当前类内可以访问
  10.this关键字:在对象内部指代自身的引用
                 1.在静态方法中不能使用this关键字
                 2.可以用this关键字调用静态方法
                 3.解决可能在实例变量和局部变量之间发生地任何同名冲突
  11.继承(extends):在原有数据类型的基础上,通过添加新的属性和方法创建新的数                    据类型
           (继承在已有类的基础上派生出新类,但又不需要完全重新编码)
          1.子类继承父类所有的属性和方法(除父类构造方法,通过公有方法访问私有属性)
          2.super关键字在子类构造方法中显示调用父类带参的构造方法
          3.super关键字在子类中指代父类的引用
             特点:1.调用父类的构造方法,只能在子类构造方法的第一行
                   2.调用父类被重写的方法
                   3.调用父类有参的构造方法(系统自动调用父

类无参构造方法)
  12.抽象类(abstract):不能实例化对象,用于继承
                     1.抽象类不一定有抽象方法,有抽象方法一定是抽象类
                     2.子类继承抽象类时,必须实现所有的抽象方法
       抽象的过程是从众多同类对象中抽取相同的属性和相同的方法的过程。
  13.接口(interface):接口是不同事物,相同功能的抽象,是一组方法的集合
                   1.接口中的方法都是公共的抽象(public abstract)
                   2.接口中的方法都没有实现(即没有方法体)
                   3.实现类必须实现接口所有的方法
                   4.实现类可以实现多继承
                   5.接口可以继承接口
                   6.接口的属性都是常量            public static final
  14.多态:具有表现多种形态的能力的特征
           面向对象最为重要的特点就是多态,它是指方法名称相同,实现细节却不同
          专业术语:同一个实现接口,使用不同的实例而执行不同的操作
          1.方法重载:同一个类中,方法名相同,参数列表不同
                      (参数类型不同,参数个数不同)
           (编译时多态)
                      1.形参不能作为重载的标准
                      2.返回类型不能作为重载的标准
          2.方法重写:在类的继承结构中,子类覆盖重写父类已有的方法
           (运行时多态)
                      1.返回类型,方法名,参数列表相同
                      2.访问修饰符不能缩小,异常不能扩大
          3.上溯造型:父类引用指向子类对象
                     缺陷:1.只能调用父类有的方法,被重写后调用子类重写的方法
                           2.丢失子类特有的属性
                     优势:1.减少重载方法的数量(代码复用)
                           2.新增实现类或子类时,不需修改代码(可扩展性)
  15.同步方法或同步块
        作用:保证方法或同步块只能让一个用户访问
        缺陷:资源消耗比普通方法大
  16.单例模式:
       饿汉单例模式:
                    1.定义一个私有的构造方法
                    2.定义私有的静态的本类对象
                    3.定义一个公有的静态方法返回对象
       懒汉单例模式:
  17.软件设计的五大原则
      单一职责原则 (SRP)
            一个设计元素只做一件事
      开-闭原则 (OCP)
            一个软件实体应当对扩展开放,而对修改关闭。
      里氏替换原则(LSP)
            一个软件实体如果使用的是一个基类的话那么一定适用于其子类,而且它察            觉不出基类对象和子类对象的区别。也就是说,在软件里面,把基类都替换            成它的子类,程序的行为没有变化
      依赖倒转原则(DIP)
            要依赖于抽象,不要依赖于具体
      接口隔离原则
            不应该强迫客户使用于他们不用的方法

你可能感兴趣的:(设计模式,数据结构)