java类和函数的区别_类和函数有什么区别?

不一定用了class就是面向对象,由于现在面向对象的使用很广泛,所以我们平时描述不会很严格,在是否是“面向对象”这一点上暂时不要钻牛角尖,等理解通透了,对“面向对象”的判断自然有客观的标准。

另外,题主这个问题会引出一些重要的问题,我试着阐述如下:

1、“面向对象”兼有“基于对象”(Object Based)和“面向对象”(Object Oriented)两重含义。其中,“基于对象”的概念更为基础和重要,因为将数据打包放在一个“对象(Object)”中、学习正确打包数据,才是初学者正确理解OO的第一步(C语言的struct也可以很好的支持“基于对象”的设计)。要彻底掌握面向对象,肯定要100%理解“基于对象”才可以。

2、举个例子,一个学生管理系统,每个“学生”对象可能有姓名、年龄、分数等数据,那么将这些数据打包在一起,而不是散乱放在各处,是非常符合直觉、很容易想到的:

学生:{ 姓名,年龄,分数 }

如果,再加入一个班级管理,并把学生和班级关联在一起,应该如何设计呢?

当需求更多、更抽象的时候,到底哪些数据该放在一起、它们之间如何组合就不那么显然了。这时候,到底哪些数据应该打包在一起,对象之间如何组合,就是设计面向对象程序最基本的问题了(虽然基本但并不简单)。

3、我个人比较支持“数据为核心”的设计理念,只要将合适的数据放在合适的类中,就成功了一大半。但是这还不够,在此基础上,还应当提供合适的函数操作这些数据。这就是对象的函数,有些语言称之为“成员函数”,其实就是专门操作一种对象的函数。

学生:{姓名,年龄,分数。 修改分数,修改姓名,升年级}

4、深入学习面向对象以后,你会发现它是一种编程方式、思想方法。而和具体的写法关系不大。纯C语言也能通过指针封装实现100%的面向对象功能(虽然看起来会比较头疼),某些代码虽然使用了class但却算不上是面向对象。

举例:初学C#或Java的时候,只是在最初的一个类里添加函数和变量,其实思维中并没有“对象”,也没有自己去创建多个对象,这时候很难称作是“面向对象”程序。

再举例:如果一个类仅包含一堆函数,不包含任何数据,那么这个类的对象就没有自己的“状态”和“属性”,它就只是一堆函数的集合而已。这时候并不满足“基于对象”的标准。

总之,学习时不能从“表面形式”出发去深究什么才是面向对象,而应该在解决具体问题中体会面向对象的思想方法。比如当你管理N名学生的增加、删除、修改时,不用面向对象的思想、不把学生的数据封装起来,可能就寸步难行了。

“面向对象”只是众多程序设计方法其中之一,判定一个程序是不是“面向对象的”并不重要,现代编程中会混用多种编程方法,最终目的总是一致的——更好地符合业务需求。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值