概念

所谓的面向对象是一种编程思想,通过这种思想可以把生活中的复杂事情变得简单化,从原来的执行者变成了指挥者,面向对象是基于面向过程而言的。

我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)

l 面向过程强调的是过程,例如:

1、打开冰箱 2、把大象放进去 3、关上冰箱

l 面向对象强调结果,例如:

1、 饿了,去平台点餐,这个动作就是面向对象。你没有去市场买菜洗菜做饭。。。只要有app就可以了。

三大特征

1、 封装性,把相关的数据封装成一个“类”组件
2、 继承性,是子类自动共享父类属性和方法,这是类之间的一种关系
3、 多态,增强软件的灵活性和重用性

类和对象

1、 Java语言最基本单位就是类,类似于类型。
2、 类是一类事物的抽象。
3、 可以理解为模板或者设计图纸。

对象

每个对象具有三个特点:对象的状态,对象的行为和对象的标识。
1、 对象的状态用来描述对象的基本特征。
2、 对象的行为用来描述对象的功能。
3、 对象的标识是指对象在内存中都有一个唯一的地址用来和其他对象区分开来。
4、 类是一类事物的抽象,对象是具体的实现。

类和对象的关系

1、 计算机语言是用来描述现实世界事物的。属性+行为
2、 那怎么通过java语言描述呢?通过类来描述事物,把事物的属性当做成员变量,把行为当做成员方法。
分析手机事物:
属性:颜色,尺寸,品牌,价格。。。
行为:打电话,发短信,听音乐。。。。
类:手机类,抽取相同的属性和行为
对象:可以按照模板生产很多个手机,比如1号手机对象,包含特有的成员变量和成员方法
image.png

类和对象的创建和使用

练习1:类的创建使用

通过class关键字创建类,通过new关键字创建对象。

public class Test1 {

       public static void main(String[] args) {
              //p是引用对象,持有了对于Person对象的地址值的引用
              //此时的p,含有属性,但都是默认值
              Person p = new Person();
              //设置属性值
              p.name="lisi";
              p.age=20;
       	      //调用方法
              p.eat();
              p.sleep();
       }
}

class Person{
       //属性--成员变量
       String name;
       int age;
       //行为--方法
void eat(){
              System.out.println("吃饭饭");
       }

void sleep(){
              System.out.println("睡觉觉");
       }

}

对象在内存中的存储

Java把内存分成5大区域,我们重点关注栈和堆。
image.png
1、 一般来讲局部变量存在栈中,方法执行完毕内存就被释放
2、 对象(new出来的东西)存在堆中,对象不再被使用时,内存才会被释放
3、 每个堆内存的元素都有地址值
4、 对象中的属性都是有默认值的

Q.E.D.


努力成就未来