Java基础——面向对象

我喜欢你,就是只单纯地,忠诚于见到你时猛烈的心跳,和见不到你时难挨的思念。

面向对象

1、面向过程 & 面向对象

  • 面向过程思想:
    • 步骤清晰简单,第一步做什么,第二步做什么……
    • 面对过程适合处理一些较为简单的问题
  • 面向对象思想:
    • 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索
    • 面向对象适合处理复杂的问题,适合处理需要多人协作的问题
  • 对于描述复杂的事物,未来从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理

2、什么是面向对象

  • 面向对象编程(Object-Oriented Programming,OOP)
  • 面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据
  • 抽象
  • 三大特性:
    • 封装
    • 继承
    • 多态
  • 从认识论角度考虑是现有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象
  • 从代码运行角度考虑是先有类后又对象。类是对象的模板

3、类与对象

3.1 什么是类
  • :是一组相关属性行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物

现实中,描述一类事物:

  • 属性:就是该事物的状态信息
  • 行为:就是该事物能够做什么
3.2 什么是对象
  • 对象:是一类事物的具体体现。对象是类的一个实例,必然具备该类事物的属性和行为
3.3 类与对象的关系
  • 类是对一类事物的描述,是抽象的
  • 对象是一类事物的实例,是具体的
  • 类是对象的模板,对象是类的实例

4、类的定义

4.1 事物与类的对比

现实世界的一类事物:

属性:事物的状态信息

行为:事物能够做什么

Java中用class描述事物也是如此:

成员变量:对应事物的属性

成员方法:对应事物的行为

3.2 类的定义格式
public class ClassName {
    // 成员变量
    // 成员方法
}
  • 定义类:就是定义类的成员,包括成员变量成员方法
  • 成员变量:和以前定义变量几乎是一样的。只不过位置发生了改变。在类中,方法外
  • 成员方法:和以前定义方法几乎是一样的。只不过把static去掉,static的作用在面向对象后面再详细讲解

4、创建与初始化对象

  • 使用new关键字创建对象

    Student student = new Student();
    
  • 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用

  • 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:

    1. 必须和类的名字相同
    2. 必须没有返回类型,也不能写void

一个对象的内存图

两个对象使用同一个方法内存图

两个引用指向同一个对象的内存图:

使用对象作为方法的参数

使用对象类型作为方法的返回值:

5、成员变量和局部变量

  • 定义的位置不一样
    • 局部变量:在方法的内部
    • 成员变量:在方法的外部,直接写在类当中
  • 作用范围不一样
    • 局部变量:只有方法当中才可以使用,出了方法就不能再用
    • 成员变量:整个类全部可以通用
  • 默认值不一样
    • 局部变量:没有默认值,如果要想使用,必须手动进行赋值
    • 成员变量:如果没有赋值,会有默认值,规则和数组一样
  • 内存的位置不一样
    • 局部变量:位于栈内存
    • 成员变量:位于堆内存
  • 生命周期不一样
    • 局部变量:随着方法进栈而诞生,随着方法出栈而消失
    • 成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失
posted @ 2020-03-06 15:18  黄大姐の老公  阅读(112)  评论(0)    收藏  举报