什么是面向对象OOP
面向对象的本质就是:以类的方式组织代码,以对象的的组织(封装)数据。
三大特征:封装,继承,多态。
从认识角度考虑是先有对象后有类。从代码运行角度是先有类后有对象。类是对象的模板,对象是类的具体表现。
对象过程思想与面向面向对象思想
- 对象过程思想
- 步骤清晰简单,第一步做什么,第二步做什么....
- 面向过程适合处理一些较为简单的问题
- 面向对象思想
- 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后才对某个分类下的细节进行面向过程思索。
- 面向过程适合处理复杂的问题,适合处理需要多人协作的额问题。
- 对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路分析整个系统。但是,具体到微观操作,任然需要面向过程的思路去处理。
如何创建与初始化对象
使用new关键字创建对象
使用new关键字的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中的构造器的调用。
类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。构造器有以下两个特点:
构造器:
作用:
注意点:
- 定义有参构造之后,如果想使用无参构造,显示定义一个无参的构造
- new 本质在调用构造方法
- 初始化对象的值
- 和类名相同
- 没有返回值
- 必须和类名字相同
- 必须没有返回类型,也不能为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 } }