狼人杀与血染钟楼的【JAVA面向对象】——什么是面向对象

本文通过对比面向过程与面向对象,以狼人杀游戏身份为例,阐述了面向对象的封装特性,并详细讲解了Java如何实现面向对象。重点介绍了对象的概念、面向对象与面向过程的区别,以及如何用Java类实现HelloWorld示例。
摘要由CSDN通过智能技术生成

一、什么是面向对象

解释什么是面向对象前我们先谈谈什么是面向过程。面向过程从字面就可以看出它是着重强调 过程 过程 过程的,它要求我们在解决问题时必须写明解决问题的过程。举个例子:求1+2+…+n的和。

int add(int n){
   n&&(n+=add(n-1));
   return n;
}

暂且不论代码的正确性和编程复杂度。上面这段代码就是我们为了解决上面那个问题提出的解决方法而且它不是封闭的,别人能看到详细的解决过程,这就是面向过程。

说完了面向过程,我相信各位对面向对象有了一定自己的看法。首先我们来看看对象是怎么定义的。

对象 : 由数据和容许的操作组成的封装体,与客观实体有直接对应关系。 对象: 由数据和容许的操作组成的封装体,与客观实体有直接对应关系。 对象:由数据和容许的操作组成的封装体,与客观实体有直接对应关系。

这里作者要强调的是客观实体,特别注意他不是一个简简单单的实例。它应当具有一个客观实体该有的全部特性,所以我们这里的面向对象指的就是面向客体。

那它跟面向过程有什么区别?很简单,面向过程是开放的,而面向对象是封闭的,它仅仅提供了可供调用的API,而具体实现细节都是封闭的。因此面向对象具有封装的特性。

ps:上面的求和代码是典型的位运算的短路特性。上面代码仅可在c语言和c++下运行,java需要单独定义一个boolen变量来接收判断语句。

二、为什么用狼人杀和血染钟楼来解释面向对象

因为作者感觉这样可以让面向对象去复杂化并且增加趣味性

举个例子,你可以把对象理解为狼人杀中的身份,每个身份的技能都是事先定义好的,你不知道也不需要他为什么会这个技能(封装的意义),你只需要会用这个技能即可(api)。

三、JAVA怎么实现面向对象

其实作者感觉这是句废话,因为Java就是以类为基本单位的,main(入口)就是定义在类中的,所以Java本质上就是以面向对象为基础来进行开发的。

所以在Java中类就是实现面向对象的方法,因为类是对象的抽象,对象是类的实例化。

public class HelloWorld{//主体就是类
    public static void main(String[] args){//main方法是定义在类内的
    System.out.print("HelloWorld!");
    }
}

这就是用Java写的HelloWorld类,虽然没有实例化对象,但是还是可以看出Java是以类为基础的。

ps: m a i n main main方法前的 s t a t i c static static有什么作用?不加上行不行?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最弱无胜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值