Java面向对象01

1.引入面向对象

我们知道方法中封装是具体实现某一功能的代码,那么用什么手段可以将这些方法封装到一起呢?通过前面代码分析发现,我们在书写类的时候,类中放的不就是一个一个方法吗?于是大胆的猜想专门写一个类来封装对数组操作的方法。
将这些方法都放在类里面,当需要使用的时候,不用去找具体的方法,而是先找这个类,找到这个类,那么就自然而然可以找到其中封装的方法。
将对数组操作的这些方法,全部封装到ArrayTools中。

2.理解什么是面向过程

面向过程也是解决问题的一种思想,当我们在解决问题时,会按照预先设定的想法和步骤,一步一步去实现,而具体的每一步都需要我们去实现和操作。这些步骤相互调用和协作,完成我们的需求。
上述描述的每一个具体步骤我们都是参与者,并且需要面对具体的每一个步骤和过程,这就是面向过程最直接的体现。
通过上面简单的描述发现,面向过程,其实就是面向着具体的每一个步骤和过程,就是面对具体的每一个功能函数。这些功能函数相互调用,完成需求。

3.理解什么是面向对象

当不再面对具体的每一个方法时,发现操作也变的简单了很多。而封装具体功能的这类,是我们需要面对的。而基于这个封装了具体功能的类,那怎么使用呢?
当面向封装了具体功能类,若要使用这个类,一般情况下,在Java中需要通过创建这个类的实体来使用。这个实体称之为对象。在开发中,我们是在不断的找封装不同功能的类。基于这些类,创建其对象,使用这些对象完成相应的操作。
通过上面的讲解和分析得出:面向对象是基于面向过程,对象是将功能进行了封装。只要找到了具体的类,创建出对象,就可以调用其中的具体功能。面向对象也是用来解决问题的一种思维模式。
在以后开发中,先找对象,调用对象中的具体功能。如果真的没有能够完成需求的对象,这时就自己创建对象,并将所需的功能定义到对象中,方便以后使用。

4.面向对象举例

买电脑(组装机)
先使用面向过程说明买电脑这件事:假如我们需要买组装电脑,这时首先会在网上查询具体每一个硬件的参数和报价。然后会去电脑城进行多家询价,接着询价结束后回家根据具体的结果分析出自己比较满意的哪家报价,接着会到这家店里进行组装,组装时还需要进行现场监督,组装完成安装相应的系统,然
后电脑抱回家。
分析上述整个过程大体分一下几步:上网查询参数和报价、电脑城询价、现场安装和监督、抱电脑回家。在整个过程中我们参与了每一个细节,并且会感觉相当累。
使用面向对象说明买电脑这件事:假如我们需要买组装机,这时应该找一个懂电脑硬件的人,让他帮我们查看参数和报价,并进行询价和杀价,以及现场组装监督。而我们自己并不需要亲历亲为具体怎么做,只要告诉这个人我们想要的具体需求即可。
分析上述整个过程,发现瞬间变的十分轻松,只要找到懂电脑硬件的这个人,我们的问题都可以解决。并且在这个过程中我们不用那么辛苦
面向对象举例(面试)
在面试中可以根据具体的面试场景说出自己理解的面对对象。
在面试中首先需要说出面向对象和面向过程的差异,然后在结合当时场景进行举例说明。
其实面试官您就是按照面向对象的思想在思考问题,面试官您本身就可以开发项目,但是项目有可能比较大,一个人开发周期长,为了提高效率,需要有更多的具备专业开发能力的人来帮助您做事情,这个人就是您所需的对象,只要调用这些对象的开发功能就可以完成项目,只要指挥他们做事情就可以了。
面向对象和面向过程差异(面向对象的好处)
通过上述的分析和举例对面向过程和面向对象做出总结:
● 面向对象是一种更符合人们思考习惯的思想。
● 面向过程中更多的体现的是执行者,面向对象中更多的体现是指挥者。指挥对象做事情。
● 面向对象将复杂的问题简单化。
在面向对象的世界中:万事万物皆对象。

5.对象在需求中的使用

把大象装冰箱为例进行分析
在针对具体的需求,可以使用名词提炼法进行分析,寻找具体的对象。
需求:把大象装冰箱里
对象:大象、冰箱
分三步:

  1. 打开冰箱门
  2. 将大象装进去
  3. 关闭冰箱门
    分析发现打开、装、关闭都是冰箱的功能。即冰箱对象具备如下功能:
    ●冰箱打开
    ●冰箱存储
    ●冰箱关闭
    用伪代码描述,上述需求中有两个具体的事物 大象 和 冰箱
    描述大象:
    大象
    {
    }
    描述冰箱
    冰箱
    {
    打开(){}
    存储(大象){}
    关闭(){}
    }
    当把具体的事物描述清楚之后,需要使用这些具体的事物,Java使用具体的事物,需要通过new关键
    字来创建这个事物的具体实例
    使用对象
    1.创建冰箱的对象
    冰箱 bx = new 冰箱();
    2.调用冰箱的功能
    对象.功能();
    bx.打开();
    bx.存储(new 大象());
    bx.关闭()
    总结:
    1.先按照名词提炼问题领域中的对象
    2.对对象进行描述,其实就是在明确对象中应该具备的属性和功能
    3.通过new的方法就可以创建该事物的具体对象
    4.通过该对象调用它以后的功能

6.对象在代码中的体现

在分析现实生活中的事物时发现,这些事物都有其具体的特点和功能,这些特点和功能就组成了这个特殊的事物。
描述小汽车
分析:
事物的特点(属性):
颜色。
轮胎个数
事物的行为(功能):
运行
发现:事物其实就是由特点(属性)和行为(功能)组成的。
可以简单理解:属性就是数值,其实就是变量;行为就是功能,就是函数。
小汽车
{
颜色;
轮胎个数;
运行(){}
}
通过计算机语言Java来描述这个事物

class Car
{
    String color;
    int number;
    void run()
    {
        System.out.println(color+"::"+number);
    }
}

通过代码的描述,知道类的真正意义就是在描述事物。属性和行为统称为事物中的成员。
事物的成员分为两种:成员属性和成员行为。
● 成员属性在代码中的体现就是成员变量
● 成员行为在代码中的体现就是成员函数(方法)

class CarDemo
{
    public static void main(String[] args)
    {   //测试:Car类中的run方法。
        //1,创建Car的对象。给对象起个名字。
        Car c = new Car();//c是类类型的变量。c指向了一个具体的Car类型的对象。
        //2,通过已有的对象调用该对象的功能。格式:对象.对象成员;
        //3,可以该对象的属性赋值。
        c.color = "red";
        c.number = 4;
        c.run();
    }
}

7.对象的内存图解

上述讲解了如何把生活中的事物使用Java代码描述,接下来就是分析对象在内存中的分配情况。
这里需要画图一步一步演示,严格按照画图流程讲解内存对象创建过程
在这里插入图片描述

8.类和对象的区别

类是用于描述现实事物的,它将现实事物进行抽象化,模板化描述。将事物的特点(属性)和行为封装在其中。比如小汽车的图纸,图纸就是小汽车的模版。图纸上画着小汽车的各种特点和功能要求。
对象是现实生活中存在的具体的实例、个体。即生活看到每一个事物,以及我们想象中的任务抽象的概念,都是某一类事物的实例和个体。而这些个体都属于某一类事物,即这些个体都是某一类事物中的具体的实例。比如,小汽车就是一类事物,而小汽车又是基于小汽车图纸制造出来的真实个体。因此我们生
活中的每一个实物都可以理解为是某一类事物的中的一个个体。创建对象的,通过对象就可以调用具体的属性和行为。

9.局部变量和成员变量的区别

回忆以前学习时变量的定义方式,和位置,以及现在定义类中属性的特点。总结下面几点异同
区别一:定义的位置不同
● 成员变量定义在类中
● 局部变量定义在方法中或者语句里面
区别二:在内存中的位置不同
● 成员变量存储在堆内存的对象中
● 局部变量存储在栈内存的方法中
区别三:声明周期不同
● 成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失
● 局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失
区别四:初始化不同
● 成员变量因为在堆内存中,所有默认的初始化值
● 局部变量没有默认的初始化值,必须手动的给其赋值才可以使用

编程练习题

1
在这里插入图片描述

2
在这里插入图片描述

3
在这里插入图片描述

4
在这里插入图片描述

5
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值