Java基础之什么是对象

Java基础

01 什么是对象



什么是对象

我们并未意识到惯用语言结构的强大之处。甚至可以毫不夸张地说,惯用语言通过语义反应机制奴役了我们。而一门语言所展现出的结构,潜移默化地影响着我们,并自动映射到我们所生活的世界。

计算机革命起源于一台机器,然后计算机并不只是机器,它还是扩展思维的工具,也是一种与众不同的表达媒介。
编程语言是用于创建应用程序的思维模式。语言本身可以从写作、绘画、雕塑、动画、影视制作等表达方式中获取灵感,而面向对象编程(Object-Oriented Programming,OOP)则是计算机作为表达媒介的一种尝试。


1.抽象的历程

所有的编程语言都是一种抽象。我们能够解决的问题的复杂程度直接取决于抽象的类型(你要抽象的是什么)和质量。如汇编语言是对计算机底层的极简化抽象,命令式编程语言(BASIC、C)是对汇编语言的抽象,他们的抽象方式是根据计算机结构而非问题的结构来思考。我们必须在机器模型(解决方案空间,即实际解决问题的方式)和问题模型(问题空间,即问题实际存在之处,来源于业务)
之间建立联系

面向对象编程,为程序员提供了呈现问题空间的工具。问题空间和解空间中的具体呈现,称之为对象。通过添加各种新的对象,程序可以改编为一种描述问题的语言。你阅读的既是解决方案的代码,也是描述问题的文字。

  1. 万物皆对象。你可以把对象想象成一种神奇的变量,它可以存储数据,也可以接收请求并执行操作。对于解空间的任何元素,都可以用对象来表示。
  2. 一段程序实际上就是多个对象通过发消息来通知彼此要干什么。当你向一个对象发送消息时,实际上是发送了一个请求去调用该对象的某个方法。
  3. 从内存角度而言,每一个对象都是由其他更为基础的对象组成的。将多个对象打包在一起,就构成了一个新的对象。这样既展现了对象的简单性,又隐藏了程序的复杂性。
  4. 每一个对象都有类型。每个对象都是由某个类生成的实例,这里的类就等同于类型。
  5. 同一类型的对象可以接收相同的消息

对象具有状态、行为和标识。
对象可以拥有属于自己的内部数据和方法,同时每个对象在内存中都有唯一的地址。

2.继承和多态

2.1.继承

继承定义了类如何相互关联,共享特性。对于若干个相同或者相识的类,我们可以抽象出他们共有的行为或者属相并将其定义成一个父类或者超类,然后用这些类继承该父类,他们不仅可以拥有父类的属性、方法还可以定义自己独有的属性或者方法。
1.子类拥有父类非private的属性和方法。
2.子类可以拥有自己属性和方法,即子类可以对父类进行扩展。
3.子类可以用自己的方式实现父类的方法。(以后介绍)。
谨慎继承,在这里我们需要明确,继承存在如下缺陷:

1.父类变,子类就必须变。
2.继承破坏了封装,对于父类而言,它的实现细节对与子类来说都是透明的。
3.继承是一种强耦合关系。

2.2.多态

多态是建立在继承的基础上的,一个父类对象可以产生多个不同的子类对象,根据这些子类对象的不同可以具备不同的方法,也就是说表现出了不同的形态即多态。
Java实现多态有三个必要条件:继承、重写、向上转型。

继承:在多态中必须存在有继承关系的子类和父类。
重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。

3.对象的生命周期

每个对象的创建都要消耗资源,尤其是内存资源,所以不使用时要及时销毁。
Java通过垃圾收集器机制,来自动销毁无用对象,从而解决内存释放的相关问题。


总结

对于设计良好的程序而言,其代码总是易于阅读的。面向对象编程,描述问题及解决方案往往比编写实现代码更加重要。一个优秀的开发者,不仅仅是实现需求,而是怎么让别人轻松读懂自己的代码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

修猿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值