Integer,面向对象,面向过程

为什么在写实体类的时候我们最好用基本数据的包装类型,而不用基本数据类型?:

就拿Integer来举例:
Integer age; int age;
当我们这个实体类的年龄不知道时,按道理int修饰的变量我们也不会赋值,所以它默认是0,这就不符合实际情况(年龄不知道,不一定是0岁),而Integer修饰的变量默认为null,不知道年龄就是null,这样才符合实际情况。


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

举个生活中的例子:下五子棋

如果用面向过程来设计这个游戏,我们需要从以下几步来解决:1.进入游戏;2.黑棋先走;3.判断输赢;4.白棋再走;5.判断输赢;6.返回步骤2;7.直到产生最终结果

如果用面向对象来设计这个游戏,首先我们分析出这个游戏只有2个实体对象,黑棋和白棋,所以第一步就是定义两个对象代表黑白双方,接下来还需要定义一个棋盘系统,来告知双方棋局的变化情况,所以第二步定义一个棋盘系统来判断输赢,最后第三步我们还需要一个判定输赢的系统。

总结如下:
面向过程:是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,然后在使用的时候按逻辑顺序逐一调用即可。

面向对象:是首先去分析这个问题有哪是对象,根据对象要做的行为或者操作,我们在分别去定义这个对象所需要的功能,最终解决这个问题,这里面利用了面向对象的抽象事物的思想。除此之外面向对象还有封装、继承、多态三大特性。

面向过程

优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展

面向对象

优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
缺点:性能比面向过程低

面试中也可以这样说:
其实面试官您就是按照面向对象的思想在思考问题,面试官您本身就可以开发项目,但是项目有可能比较大,一个人开发周期长,为了提高效率,需要有更多的具备专业开发能力的人来帮助您做事情,这个人就是您所需的对象,只要调用这些对象的开发功能就可以完成项目,只要指挥他们做事情就可以了。


面向对象的三大特性:

**封装** 举个例子: 一台电脑,它是由CPU、主板、显卡、内存、硬盘、电源等部件组成,其实我们将这些部件组装在一起就可以使用电脑了,但是发现这些部件都散落在外面,很容造成不安全因素,于是,使用机 箱壳子,把这些部件都装在里面,并在机箱壳上留下一些插口等。 总结来说就是机箱其实就是隐藏了办卡设备的细节,对外提供了插口以及开关等访问内部细节的方式**官方的描述**封装就是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。
**继承** 我们在java中定义一个类时,发现多个类之间有共同的属性和行为,如果分别在每个类中定义这些相同的内容,代码就会显得很冗余,所以我们就将相同的代码抽取出来放在一个单独的类中,这里也运用到了封装的思想,然后让其他类来继承这个单独的类,那每个拥有这些属性和行为的类也就拥有了这些内容,从而提高了代码的复用性,而且提供了多态的前提。 java中只支持单继承,但是可以多层继承 ```java class A{} class B extends A{} class C extends B{} ```
**多态** 多态的体现需要类与类之间有继承的关系为前提,表现方式有重写(override也称为override复写或者覆盖)、父类引用指向子类对象。 对于重写举个例子就比如手机,当描述一个手机时,它具有发短信,打电话,显示来电号码功能,后期由于手机需要在来电显示功能中增加显示姓名和头像,这时可以重新定义一个类描述手机,并继承原有描述手机的类,并在新定义的类中重写来电显示功能,在其中增加显示姓名和头像功能。重写时,子类权限要大于等于父类权限,而且函数的返回值类型,函数名,参数列表都要一样,静态函数不存在重写。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值