面向对象特性一

面向对象特性

封装

  • 定义:隐藏对象得属性和实现细节, 仅仅对外提供公共访问得方法
  • 好处: 将变化隔离, 便于使用; 提高重用性,安全性。
  • 原则:将不需要对外提供得内容隐藏起来, 把属性隐藏起来,提供公用得方法对其访问。
  1. this: 式对象得引用代表对象。作用是减少命名得冲突。
  2. static:是静态修饰符,是静态关键字。
    特点:
  1. 通过它实现对象之间数据得共享
  2. 可以通过类名直接调用
  3. 静态随着类加载而加载, 它优于对象存在

注意点:

  • 某个对象需要特别持有得数据是不能够被静态修饰否则, 共享
  • 因为静态方法优先于对象加载, 所以不可访问非静态得方法
  • 静态方法中没有对象这个概念, 也就不能用对象所特有得super, this 关键字得使用
  • 主函数是静态得, 加载顺序是和静态方法平级,按照排列顺序加载。

3.什么时候定义静态:

公用同一个方法或者变量得时候可以定义成静态得

4. 成员变量和静态变量得区别

  1. 成员变量属于对象,也被称为实例变量。静态对象属于类, 被称为类对象
  2. 成员变量存放在堆中,静态变量存放在方法区中
  3. 成员变量随着对象创建而存在, 随着对象被回收, 而静态变量随着类加载而存在, 随着类得消失而消失,所以静态变量得生命周期较长
  4. 成员变量指能被对象所调用, 静态对象可以被对象调用, 也能被类名调用。

静态代码块、构造代码块、构造函数同时存在时的执行顺序:
静态代码块> 构造代码块 > 构造函数;

关于设计模式:

就是一套经验总结出来得模式或者称为棋谱,java中有23种设计模式

5. 单例设计模式

思想:

  1. 不让其他程序创建该类对象
  2. 在本类中创建一个本类对象
  3. 对外提供方法

第一点:可将构造方法私有化实现。

代码体现:

//饿汉式
class Single{
private Single(){} //私有化构造函数。
private static Single s = new Single(); //创建私有并静态的本类对象。
public static Single getInstance(){ //定义公有并静态的方法,返回该对象。
return s;
}
}
//懒汉式:延迟加载方式。
class Single2{
private Single2(){}
private static Single2 s = null;
public static Single2 getInstance(){
if(s==null)
s = new Single2();
return s;
}
}

继承

  1. 好处: 提高代码复用性, 让类与类之间产生了关系提供了多态的前提。

  2. 父类的由来:多个类不断向上抽取共性的内容

  3. Java中只支持单继承不支持多继承,因为多继承让项目变得更加复杂。

  4. super:父类内存空间中的引用

  5. this: 本对象的引用

  • 第一:两者是否同时出现:因为都要定义在第一行所以不能
  • 第二:为什么要定义在第一行:这两者是用于调用构造方法的, 构造方法初始化操作要先于完成

6. 什么时候使用继承:当符合is-a

方法覆盖时候,注意两点:

子类覆盖父类, 必须要保证子类的访问权限不低于父类的访问权限

  1. final特点:
  2. 这个关键字是一个修饰符, 可以修饰类, 方法, 变量
  3. 被final修饰的类是一个最终类, 不可以被继承
  4. 被final修饰的方法是最终方法, 不可以被覆盖
  5. 被final修饰的变量是一个常数,只能赋值一次。
posted @ 2017-11-29 21:09  老螃蟹  阅读(132)  评论(0编辑  收藏  举报