A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张俊生 高级黑马   /  2013-9-1 12:03  /  1269 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张俊生 于 2013-9-1 12:14 编辑

面向对象
1. 什么是面向对象
  |-- 人们解决现实中问题的一种思维模式,思想
  |-- 万物皆对象
  |-- 日后开发:当你想完成一个功能的时候,找有没有可以完成这个功能的对象
      如果有,建立这个对象,指挥这个对象做事情
      如果没有,自己创建对象,指挥这个对象做事情

2. 什么是对象
|-- 对象就是现实生活中,确实存在的那个个体
|-- 对象是可以相互转换的:
    |-- 做家务的,找了具备做家务功能的对象(媳妇)
    |-- 将我培养成了具备做家务功能的对象
|-- 光波炉,具备烧烤,加热..... ,找到这个光波炉这个对象,指挥你做事情
     光波炉对象.烧烤(){..........}

3. 什么是类
|-- 是描述现实中对象的抽象,类就是描述对象的

    class Person{
      String name;
      int age;
      public void eat(){}
    }
    Person p = new Person();建立对象,相当于产生了一个现实生活中的人
    p.name = lisa;
    p.age = 20;

    Person p1 = new Person();
    p1.name = gaga;
    p1.age 23;

4. 成员变量的存储情况
  |-- 跟随对象,在堆内存中存储
  |-- 堆中的成员变量,都有默认值
  |-- 跟随对象的消失而消失


5. 封装
  |-- 隔离变化
  |-- 提高安全性,
  |-- 提高维护性
  |-- 面向对象的三大特征之一
  |-- private修饰符,最低权限,封装的一种形式,凡是被private修饰的成员,外面的类,访问不到的
  |-- 将类中的成员变量私有化,并对外提供公共的访问形式
                             赋值set  取值get
               
6. 构造方法  *****
  |-- 必须和类名一模一样
  |-- 没有返回值,不需要写void
  |-- 构造方法,在建立对象的时候,运行一次,仅仅运行一次
  |-- 作用是,给对象中的成员变量进行初始化赋值
  |-- 构造方法,是可以进行重载的
  |-- 构造方法,是可以用权限修饰的
  |-- 每一个类,都有一个空参数的默认构造方法

7. this关键字
  |-- 表示本类对象的引用,换句话说,哪个对象调用的,this就表示哪个对象
  |-- 区分类中的成员变量和方法内部的局部变量重名的情况
  |-- this()语句,可以在构造方法之间进行调用

8. 成员变量和局部变量的区别  *****
  |-- 成员变量跟随对象,在堆内存中存储
  |-- 局部变量,跟随方法,在栈内存存储

  |-- 成员变量都有默认值
  |-- 局部变量,必须手动赋值

  |-- 成员变量跟随对象的消失而消失,生命相对较长
  |-- 局部变量,跟随方法的弹栈消失而消失,生命相对较短

  |-- 成员变量作用于整个类中
  |-- 局部变量作用于定义的大括号中

9. 静态static
  |-- 成员变量,被static修饰,变成所有对象的共享数据了
      如果我们的程序中,假定有一个数据,是所有人共享的
  |-- 静态修饰的成员变量,可以直接类名调用
  |-- 被静态修饰的成员变量和成员方法,随着类加载而加载,方法区
  |-- 静态不能直接访问非静态,原因是静态的成员先于对象存在于内存中

10. 什么时候使用静态修饰呢?
  |-- 当对象中出现了共享数据的时候,就将这个成员变量使用static修饰
  |-- 什么时候将方法定义成静态的呢,当这个方法没有访问过对象的特有数据(非静态的),这个方法定义成静态

11. 静态使用注意事项
  |-- 静态不能直接访问非静态
  |-- 静态方法中不能写this,super
  |-- 由于静态的声明较长,建议少用

12. 实例变量(对象,非静态)和类变量(static)的区别  *****
  |-- 实例变量,跟随对象堆内存存储
  |-- 类变量,是随类的加载而加载

  |-- 实例变量,类变量,都有默认值
  |-- 实例变量,只能对象调用,类变量即可对象调用,也可以类名调用(强烈推荐)

  |-- 实例变量,跟随对象存储堆内存,比类变量进内存要晚些
  |-- 类变量优先于对象存在于内存中,生命周期最长


13. 继承 extends
  |-- 类与类之间产生了关系,继承关系
  |-- 好处:代码减少了,复用性提高
  |-- 好处:继承的出现,让类与类之间产生了关系,正是这个关系,导致了面向对象第三个特征多态
  |-- 建立子类对象的时候,子类有,就用子类的,子类没有,用父类的

14. 继承中成员变量的特点
  |-- super超级,表示父类的存储空间引用
  |-- 调用父类的成员变量,super.成员变量
  |-- 区分子类父类成员变量,重名的情况

15. 继承中成员方法的特点
  |-- 子类中出现了和父类一模一样的方法,子类重写了父类方法 override
  |-- 保证权限大于等于父类的权限
  |-- 扩展功能,继承父类,覆盖方法,沿袭父类功能,加入子类自己的新功能

16. 继承中构造方法特点
  |-- 子类中所有的构造方法,必须访问父类中构造方法,java中默认访问父类空参数的
  |-- 如何访问父类构造方法呢?super(参数列表)
  |-- this() super()能否共存

17. final关键字
  |-- 可以修饰成员变量,成员方法,局部变量
  |-- 被final修饰的变量,其实是一个常量,不能在修改值
  |-- 被final修饰的类,是一个最终类,没有子类了
  |-- 被final修饰的方法,是一个最终方法,不能再被重写了



4 个回复

倒序浏览
好资源....
回复 使用道具 举报
学习了!
回复 使用道具 举报
毕老师的面向对象看完了,但是脑袋还是朦朦胧胧。知识梳理哈,灰常感谢
回复 使用道具 举报
不错,支持一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马