浅谈java之面向对象

         最近开始用java写了一些小的项目游戏,发现这其实只是在两个地方上做文章,界面与线程,然而回首接触java的这半年,所写的程序始终围绕面向对象的核心思想,界面JFrame与线程thread最终都继承于父类object(对象),从最初接触java的简单的画三角形到现今所写的线程小游戏,我所做的无非就是构造对象,调用对象的方法与属性。

        在软件设计的面向对象思想普及之前,结构化程序设计的关注重点是功能,然而一门编程语言首先是作为一门人类的语言而客观存在的,为了强调其存在的价值那么其本身就应该系统、全面、客观的去描述我们人类身边的世界。从唯物世界观的角度来说,这个世界小到分子原子,大到天体系统都是以其自身的属性并实行其自身的方法,以对象的角色各自实行着结构化程序设计所关注的功能,各个对象之间的交流仅仅通过通讯(程序中称为消息)完成,对象在处理通讯时经历接受消息与做出反应两个阶段(就是我们称之的输入输出i/o系统),然后再实行自己的固有作用(调用方法)。从管理学的角度来看,现今的管理更趋向于特色管理,所谓的特色管理就是要首先分析员工的个性、特色(分析其属性),然后将一些员工分类管理(查看其对象继承的父类或者属于某接口特性),也可对其特长进行扩展以及相关不足方面的培训(方法的重载与重写),最后将其放在合适的岗位,合适的时间发挥其合适的作用(调用方法),所以说现今无论是行政管理还是企业管理始终遵循着这样一个核心:以人为本(object-oriented)。

      以简单的汉诺塔的实现为例,起初始终无法让盘子在柱子间穿梭自如,总是想着以界面为核心,然后去实现盘子在柱子之间的转换,但是这样使得柱子与盘子之间的交流信息会非常的不方便。 如果遵循java面向对象的思想,让盘子,柱子都当成对象,让盘子独立的实行画自己的方法,柱子实行一个栈的角色,盘子实行的只是进栈,画自己,出栈,画自己。然而接下来做的只是实现其递归的主算法,具体实现方法如下:

//将n个盘子从柱子a移到柱子c的方法

public void digui(zhuzi a,zhuzi b,zhuzi c ,int n){
   if(n==0){return;}
    digui(a,c,b,n-1);

//将第n个盘子从a移到c
    move(a,n,c);
    digui(b,a,c,n-1);
   
   }

      如果仅仅从面向对象的四大特性(唯一性,封装性,多态性,分类性)来看,面向对象的思想还未真的阐释,或许是我现今眼光的局限性,面向对象的思想还有待我进一步的去理解。

 

 


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值