面向对象(OOP)---java

来源:互联网 发布:linux教学视频百度云 编辑:程序博客网 时间:2024/05/17 04:15

1、抽象数据类型:将不同类型的数据集合组成一个整体来表述一种新的事物。


2、类:定义了一种抽象的数据类型。

3、面向过程的缺陷:

  1. 缺乏对数据的封装
  2. 数据和方法分离

类是对象的模板,对象是类具体的实例

4、构造方法:

  • 用于成员变量的赋值
  • 与类同名,无返回类型
  • 在创建对象时自动调用
  • 自己不写构造,程序默认提供一个无参构造
  • 可以重载

5 .1堆

  • 存在new出来的对象
  • 成员变量的生命周期
  • 垃圾回收器自动回收(没有任何引用指向对象)调用sysotem.gc() 来回收垃圾
  • 内存的泄露:不在使用的对象没有及时回收,
  • 建议:不再使用的对象及时将引用设置为null

5.2栈

  • 存贮程序用到的出所有的局部变量
  • 调用方法时,在战中为该方法分配一个栈帧,栈桢中存放着所有的局部变量,方法结束时,栈桢被清除,局部变量便消失
  • 栈的生命周期:方法调用时,栈桢开始;方法结束时,栈桢消失。

5.3方法区

  • 用于存储字节码文件及方法
  • 方法只有一份,存在方法区中,通过this区分

6、重载和重写的区别

    重载是指在一个雷中定义多个方法名相同,但是参数列表不同的方法;编译时,根据参数的个数和类型来决定绑定那个方法

    重写是在自子类文件中定义父类完全相同的方法,在程序运行时根据对象的类型不同,而调用不同的版本。

    重载:遵循“编译器绑定”根据引用类型

    重写:遵循“运行期绑定”,根据对象类型

   重写的注意事项:

  • 两同两小一大的原则
  • 两同:1.方法名相同;2.参数列表相同
  • 两小:1.子类的返回类型小于等于父类;2.子类抛出的异常小于或等于父类
  • 一大:子类的访问权限大于等于父类

7、static

      1)修饰成员变量

  • 由static修饰
  • 属于类。存在方法区,只有一份
  • 通常通过类名点来进行访问
        2)修饰方法
  • 通常通过类名点来进行访问
  • 没有隐式的this传递
  • 静态方法中不能访问实例成员

8、final

  • 修饰变量:变量不可改变
  • 修饰方法:方法不可重写
  • 修饰类:类不可被继承

9、抽象方法

    1)由abstract修饰

    2)包含抽象方法的类必须是抽象类

    3)抽象类不能被实例化

    4)抽象类是需要被继承的

    5)抽象类的意义:

       a封装子类共有的数据和行为------代码的重用

       b为子类提供了一种统一的类型------父类型

       c包含抽象方法,为所有的子类提供了一个入口

10、接口

   1)由interface定义

   2)只能包含常量和抽象方法

   3)接口不能被实例化

   4)接口需要被实现(implements)重写接口中所有的抽象方法

   5)可以多接口实现,若又继承又实现时,先继承在实现

   6)接口间可以继承

11、面向对象的三大特征:

   1)封装

    2)继承

    3)多态

0 0
原创粉丝点击