面向对象


Java面向对象

面向对象与面向过程

面向过程

  1. 概述:

    分析出解决问题所需的步骤,用函数把这些步骤一步一步实现,使用的时候一个一个依次调用

  2. 特点:
    • 强调的是功能行为
    • 关注的是解决问题需要哪些步骤
  3. 优缺点:
    • 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
    • 缺点:没有面向对象易维护、易复用、易扩展

面向对象

  1. 概述:

    把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为

  2. 特点:
    • 将功能封装进对象,强调具备了功能的对象
    • 关注的是解决问题需要哪些对象
  3. 优缺点:
    • 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
    • 缺点:性能比面向过程低

类和对象

  1. 概述:

    类 是一个模板,它描述一类对象的行为和状态,是具有相同属性和行为的一类事物的抽象。
    对象 是类的具体体现(实例),有状态和行为;对象的状态就是属性,行为通过方法体现。

  2. 创建类和创建对象的步骤
    • 抽取出具有相同属性和行为的一类对象,封装成一个类。
    • 使用类去创建对象。
  3. 创建类 格式
    • 找到属性和行为:
      • 属性一般使用变量来体现。
      • 行为一般使用方法来体现。
public class 类名{   	//类名大写字母开头
  //属性
  //行为
}
  1. 创建对象 格式
    • 类名 对象名 = new 类名();
Student stu1 = new Student();

构造方法(构造器)

概述:

用来创建对象的方法,只能在创建对象时调用
编译器会提供一个默认构造方法(无参),创建对象时至少要调用一个构造方法
构造方法的名称必须与类名相同,构造方法传参是为了给属性赋值,构造方法的返回值是对象的地址值
 this的本质就是“创建好的的对象的地址”, 由于在构造方法调用前,对象已经创建. 因此,在构造方法中也可以使用this代表“当前对象”.

//无参构造方法
public class 类名(){}


成员变量(实例变量,属性),局部变量

成员变量(实例变量,属性)

  • 概述:
    • 类中,方法外,叫做成员变量

局部变量

  • 概述:
    • 写在方法中,叫局部变量

区别:

  • 局部变量不赋值不能使用,成员变量不赋值有默认值
  • 作用范围不同,局部变量只能在定义的方法中使用,成员变量在类的所有的方法中都可以使用。
  • 内存不同。局部变量在栈区,成员变量在堆区。
  • 生命周期不同,局部变量会在方法被调用时创建,方法结束销毁;成员变量随着对象的创建而存在,随着对象的销毁而销毁。
  • 如果成员变量和局部变量名字相同,优先会使用局部变量。如果想要使用成员变量,需要加上this关键字。
  • 调用方式:
    • 调用成员变量: 对象.变量名
    • 调用局部变量: 变量名

静态成员: 静态变量与静态方法

  1. 概述:
    有static关键字的变量为静态变量;有static关键字的方法为静态方法,统称为静态成员
    静态变量不赋值默认值为null
    静态成员在内存的方法区
    静态成员随着类的加载而创建,随着类的销毁而销毁
  • 调用静态变量: 类名.变量名
  • 调用静态方法: 类名.方法名()

文章作者: zrh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 zrh !
  目录