什么是面向对象
当你有一个需求的时候,你利用或者创建一个工具(对象)来完成这个需求
面向对象的特点:
- 可以将复杂的事情简单化
- 可以让我们从执行者成为指挥者(角色发生了转变)
面向对象的特征:
- 封装(encapsulation)
- 继承(inheritance)
- 多态(polymorphism)
java中最基本单位是类(class)
类:
抽象出一类事物共有属性和行为的集合,简单的说就是对事物模糊概括,抽象的
对象:
是该类具体的体现,简单说就是对类的精准实例化
定义类:
其实就是定义类的成员(成员变量和成员方法)---属性 和 行为
成员变量:(是事物的属性)跟之前学的变量是一个概念,只不过写在类中,方法之外
成员方法:(是事物的行为)和之前的方法类似,只不过去掉static(static后期再说)
什么时候需要定义一个类?
有共性需求的时候,就可以定义一个类
类的使用:
对类进行实例化(new对象.创建类的对象)
格式:类名 对象名 = new 类名( );
对象名.变量名
对象名.方法名(有参需要传参)
成员变量和局部变量的区别:
1、在class中的位置不同
- 成员变量:类中方法外
- 局部变量:类中方法内
2、在内存中的位置不同(了解)
- 成员变量: 堆中 (成员变量属于对象,对象消失成员消失) 垃圾回收机制 回收的时候才会消失
- 局部变量: 栈中(局部变量属于方法,方法消失 局部变量就消失)
3、生命周期不同
- 成员变量:随着对象创建而存在的,随着对象的消失而消失
- 局部变量:随着方法创建而存在,随着方法的调用完毕而消失
- 初始化的值不同
- 成员变量:有默认初始化值 null
- 局部变量:没有默认初始化值
注意:
成员变量和局部变量是可以重名的,如果使用,采用就近原则
在一个类中禁止有两个重名的class
什么时候用成员变量,什么时候用局部变量???
在类中多个方法想操作同一个变量的时候,就可以把变量提升为成员变量。