Java之面向对象概述

17 篇文章 0 订阅

初学Java的时候看过一个视频,视频中的老师说过这么一段话:对于那些拥有多年开发经验的开发者来说,怎么衡量彼此之间的能力?或者说怎么进行一个能力比较?开发者的能力这是一个很难定义的问题,事实上也无法给出衡量的标准,如果真的存在这么一种标准,唯一的可能就是对面向对象的理解深度了。

刚开始入门学习的我,自然无法体会这段话的深意,但是现在回头再看这段话,确实有一定的道理。对面向对象理解深的一定开发能力很厉害,反之,不一定成成立,毕竟还有面向过程的C语言大神的。

佛曰:看山是山,看水是水;看山不是山,看水不是水;看山还是山,看水还是水。这段话用在面向对象上面也是非常形象的,随着学习的深入,我对面向对象的理解也在不断的扩宽。对面向对象的理解也颇有一点只可意会不可言传的意思,但我试图写一写我对面向对象的理解。

众所周知,Java是一门面向对象的语言。在Java的世界里面,万事万物都是对象,大概了解一点Java的都知道Java是面向对象编程。我认为,面向对象绝对是最核心的概念,没有之一。Java三大特性,都是由面向对象概念衍生出来的。

什么是面向对象呢?

万事万物皆对象,可以是一个人、一棵树、一座楼、一张纸等等。计算机是不可能直接表示这些事物的,这个时候就需要我们进行对包含相同属性和行为的事物进行抽象了,抽象结果就是类(class)。

上一段代码,class定义Animal就是一个对象模版

public class Animal {
  public String name;
  public String sex;
  public Integer age;

  public void eat() {
    System.out.println("动物吃东西");
  }

  public void run() {
    System.out.println("动物奔跑");
  }
}

以Animal为例进行抽象,分为静态的属性和动态的行为。这些都是客观存在的,当然限于篇幅,我肯定不可能一一罗列所有动物的属性和行为,这里只是进行简单举例的。这也是我们真正编程时候的思路,有所侧重,有所放弃,对无关紧要的就进行简单处理,甚至直接忽略。这就是一个关乎选择是问题,时间、空间二选一。

什么是对象?

 Animal animal = new Animal();
 Animal animal2 = animal; 

这里的new Animal()就是一个对象,也是Java编程世界里面最常见的元素。animal是对象的引用,一个引用指向一个对象,一个对象可以被多次引用。就像一个人有多重身份一样,是学生,也是孩子,身份就是引用,人就是对象,父母给你买了一件新衣服穿身上,你到学校作为学生身份的时候这件新衣服还是在。你在学校弄脏了你的新衣服,回家的作为儿子的时候你这个脏衣服还是在的。你早上去学校读书,晚上回家,这个过程中,你衣服的身上的衣服脏了,这就是一种对象状态的改变,这就是随着程序的运行对象的状态会发生改变。

这就是我理解的面向对象的概念,大道至简,或许还是要从实践中,找到真理吧。面向对象不是一个复杂的概念,但确实是最核心的概念,没有之一。关于Java三大特性,可以查看我之前的文章。

如有疑问,欢迎留言!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值