什么是面向对象OOP

  • 面向对象的本质就是:以类的方式组织代码,以对象的的组织(封装)数据。

  • 三大特征:封装,继承,多态。

从认识角度考虑是先有对象后有类。从代码运行角度是先有类后有对象。类是对象的模板,对象是类的具体表现。

对象过程思想与面向面向对象思想

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

如何创建与初始化对象

  • 使用new关键字创建对象

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

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

    构造器:

    作用:

    注意点:

    • 定义有参构造之后,如果想使用无参构造,显示定义一个无参的构造
  1. new 本质在调用构造方法
  2. 初始化对象的值
  1. 和类名相同
  2. 没有返回值
  1. 必须和类名字相同
  2. 必须没有返回类型,也不能为void
package com.oop.demo02;
public class Person {
    //一个类即使什么都不写,它也会存在一个方法
    String name;
    //实例化初始值
    //1,使用new关键字,本质是在调用构造器
    //2,构造器用来初始化值
    public Person(){
    }
    //有参构造:一旦定义了有参构造,无参就必须显示定义
    public Person(String name){
        this.name=name;
        //前一个name指代对象本身的name,而后面的name指向形参
    }
    //在IDEA中,使用快捷键alt+insert生成构造器
}

package com.oop.demo02;
//一个项目应该只存在一个main方法
public class Application {
    public static void main(String[] args) {
                Person person = new Person("Lee");

        System.out.println(person.name);//Lee
    }
}