面向对象

面向对象的概述

面向对象和面向过程的区别:

面向过程举例:

 * 大象装进冰箱
 * 
 * 面向过程
 * 
 * 打开冰箱
 * 存储大象
 * 关上冰箱
 * 
 * 对于面向过程思想,强调的是过程(动作)

面向对象举例:

 * 对于面向对象思想,强调的是对象(实体)。
 * 
 * 冰箱打开
 * 冰箱存储
 * 冰箱关闭

面向对象
特点:
1:面向对象就是一种常见的思想,符合人民的思考习惯

2:面向对象的出现,将复杂问题简单化

3:面向对象的出现,让曾经的过程中的执行,变成了对象中的指挥者

类与对象之间的关系
* 用java语言对现实生活中的事物进行描述。
* 通过类的形式来体现的。
*
*
* 怎么描述呢?
* 对于事物描述通常只关注两个方面。
* 一个是属性,一个是行为
*
* 只要明确该事物的属性和行为并定义在类中即可。
*
* 对象:其实就是该类事物实实在在存在的个体。
*
* 类与对象之间的关系?
* 类:事物的描述
* 对象:该类事物的实例。在java中通过new来创建的

面向对象(类与对象体现)

描述小汽车
分析:
1,属性。
轮胎数。
颜色。
2.行为
运行。
定义类其实就是在定义类中的成员。
成员:成员变量<–>属性,成员函数<–>行为。

    class Car{ //图纸
        int num=4;//基本类型,默认初始化值为0,现在赋值为4。
        String color;//引用类型变量,默认初始化为null。

        void  run(){
            System.out.println(num+color);
        }
    }

    public class Demo{
    public static void main(String[] args) {
    //在计算机中创建一个car的实例,通过new关键字
        Car c=new Car();//c就是一个类类型的引用变量,指向了该类的对象。
        c.num=4;
        c.color="red";
        c.run();//要使用对象中的内容可以通过   对象.成员的形式来完成调用。
    }
    }

类和对象的关系:
在上面的代码可以说,类其实就是图纸。就是说。一辆汽车做出来有轮胎,什么颜色。怎么样跑。也就是class Car{}这段代码的体现。
既然图纸已经有了,下面就需要做车这实实在在的东西出来了,而在计算机中做车出来,是通过new这个关键字的。上面就做出了c这辆车出来。然后就可以确定有多少个轮胎,颜色,和到底怎么跑。计算机调用的方式就是 对象.成员的形式来完成调用的。

对象的内存体现

这里写图片描述

首先在栈内存中,主函数进栈,然后产生类类型变量c;
在堆中,产生对象。并生成地址值0x0034。并把地址值,赋值给c
。然后,会把num,color初始化。初始化的值分别是0,null。到这里Car c=new Car();这段代码执行完毕。
然后,到c.num=4;这段代码,会把num=0,赋值为4。同理color也会赋值为red。

每一个对象都有各自的内存空间,互不打搅。
看图片。
这里写图片描述

由这张图片可以看出来,c1和c2这2类类型。new Car()2次产生2对象。虽然代码的执行上是依次交替执行,但是,他们的堆内存中开辟出来的空间,是互相不打搅的。

这里写图片描述

这张图片说明了,c1产生的这个类类型所有的地址值,同时也把该地址赋值给了c2这个类类型。所以c1和c2表面上是名字不相同,但是实质上都是0x0034这个地址值。他们都是可以操作Car c1=new Car();产生的对象。
c1.num=8;c1可以操作num;
c2.color=”red”;c2可以操作颜色。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值