`
sunajax
  • 浏览: 34997 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java面向对象特性理解

    博客分类:
  • Java
阅读更多
面向对象的程序设计很接近于我们人类自然的思维,相对于面向过程的程序设计,它具有更好的可扩展性和可维护性,使我们编写的代码更健壮!
    面向对象主要有四大特性:封装、抽象、继承和多态。各自定义:
封装:在面向对象语言中,封装特性是由类来体现的,我们将现实生活中的一类实体定义成类,其中包括属性和行为(在Java中就是方法),就好像人类,可以具有name,sex,age等属性,同时也具有eat(),sleep()等行为,我们在行为中实现一定的功能,也可操作属性,这是面向对象的封装特性;
抽象:抽象就是将一类实体的共同特性抽象出来,封装在一个抽象类中,所以抽象在面向对象语言是由抽象类来体现的。比如鸟就是一个抽象实体,因为抽象实体并不是一个真正的对象,它的属性还不能完全描述一个对象,所以在语言中体现为抽象类不能实例化;
继承:继承就像是我们现实生活中的父子关系,儿子可以遗传父亲的一些特性,在面向对象语言中,就是一个类可以继承另一个类的一些特性,从而可以代码重用,其实继承体现的是is-a关系,父类同子类在本质上还是一类实体;
多态:多态就是通过传递给父类对象引用不同的子类对象从而表现出不同的行为,多态可为程序提供更好的可扩展性,同样也可以代码重用。
   下面谈谈它们之间的联系:
    因为在Java是通过类的模板来定义出对象实例,所以自然而然就将对象封装了,这在任何面向对象的语言都很容易体现!
    我觉得在抽象、继承和多态当中,继承是基础。因为如果没有继承这种机制,就没有父类和子类的概念,抽象和和多态根本就无法体现。正是有了继承这种机制,我们可以就抽象实体定义成抽象类,从而具体的实体可以继承抽象类来实现,不需要重复写共同的特性,抽象特性也就体现出来了;也正是因为有了继承机制,才有了父类和子类的概念,从而父类对象引用参数通过传递子类对象体现出不同的行为,实现了多态。继承和多态可明显增加代码重用,减少代码量,同时利用多态可扩展性也增强。
    在Java中,抽象是以两种方式表现:Abstract Class和Interface。Java就是基于接口的编程,在我们编写代码时不知道如何选择应该使用抽象类还是接口,它们虽然看起来没多大区别,但在设计上可以明显看出它们之间的本质区别,具体可以参照http://software.ccidnet.com/art/322/20030312/40306_1.html,那里有对如何选择抽象类和接口的解释。其实我们在选择抽象类和接口时,要记住这样的原则,抽象类是定义一类实体的共同特征,其父类和子类在本质上还是同一类实体,是is-a关系,比如鸟和燕子,抽象类不仅意味着定义特定的行为,而且意味着定义实现的模式;而接口只是定义行为的模型,不同的实体可以implements不同的行为,同时接口要满足ISP原则,即不同实体的行为不能定义在同一接口中,它其实体现的是like-a的关系。
    在我们进行面向对象的程序设计时,要转变我们的思维,尽量设计得和现实中很接近,对于公共功能尽量定义到抽象类或接口中,方法中的参数一般使用父类,当然这需要经验的积累,不是一朝一夕的事。
分享到:
评论

相关推荐

    java面向对象理解

    "java面向对象理解" Java 面向对象编程是 Java 语言的核心概念之一。它是一种编程范式,旨在通过封装、继承和多态等机制来模拟现实世界中的对象交互。 面向对象的方式通过向程序员提供表示问题空间中的元素的工具...

    Java面向对象程序设计

    本教程涵盖了这一关键概念,旨在帮助学习者深入理解和掌握Java的面向对象特性。以下是相关知识点的详细说明: 1. **面向对象编程基础**:面向对象编程(OOP)是一种编程范式,它基于“对象”的概念,强调数据和操作...

    java面向对象编程pdf

    Java面向对象编程PDF 在这篇文章中,我们将对Java面向对象编程的基础知识进行总结和解释。面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它将程序设计看作是对象的交互,对象之间的关系和行为...

    Java面向对象程序设计课后答案全解

    本资源包含了该课程所有章节的课后习题答案,帮助学习者深入理解Java语言的面向对象特性。 1. **类与对象**:Java中的基本构建块是类,它代表了现实世界中的事物或概念。对象则是类的实例,具有类定义的属性和行为...

    Java面向对象应用程序开发

    Java面向对象应用程序开发是软件开发领域中的核心主题,尤其对于初学者和专业开发者而言,理解并掌握这一技术至关重要。Java语言以其强大的面向对象特性、跨平台兼容性以及丰富的类库,成为了开发各种类型应用程序的...

    Java面向对象程序设计+源代码+课后习题答案)

    这本书"Java面向对象程序设计"由耿祥义和张跃平编著,由清华大学出版社出版,提供了深入的理论讲解以及丰富的实践案例,帮助读者理解和掌握Java的面向对象编程技术。 1. 类与对象:类是创建对象的模板或蓝图,定义...

    Java面向对象程序设计耿祥义版课件

    二、Java面向对象特性详解 1. 抽象:抽象是将共同特征抽取出来形成类的过程,Java通过抽象类和接口实现抽象。 2. 构造器:构造器用于初始化新创建的对象,Java中的构造器与类同名且无返回值。 3. 访问控制修饰符:...

    《Java面向对象程序设计(第2版)》课件

    2. Java面向对象特性: - 异常处理:Java提供了异常处理机制,通过try-catch-finally语句块捕获和处理运行时错误,提高程序的健壮性。 - 接口(Interface):接口是一种完全抽象的类,仅包含常量和抽象方法。它...

    Java面向对象知识点梳理(思维导图)

    这个导图可以帮助学习者系统地理解和掌握Java面向对象编程的核心概念,以及各种相关的语法和用法。 适用人群: 这个资源适用于初学者和有一定Java基础的开发者。初学者可以通过导图了解和学习Java面向对象编程的...

    习题解答-Java面向对象程序设计-邢国波-清华大学出版社.pdf

    Java面向对象程序设计是计算机科学中的一个重要...以上是Java面向对象编程的关键知识点,涵盖了语言基础、程序设计、面向对象特性以及实际编程练习。学习这些内容有助于深入理解Java编程,并能应用于实际项目开发中。

    Java的面向对象特性 PPT

    Java是一种广泛使用的编程语言,以其强大的面向对象特性而闻名。面向对象编程(Object-...本PPT“第三章 Java的面向对象特性”将深入解析这些概念,提供实例和示例代码,帮助你更好地理解和应用Java的面向对象编程。

    java面向对象课程设计(有程序和报告)

    Java面向对象课程设计是计算机科学领域中一个重要的实践环节,旨在帮助学生深入理解面向对象编程的概念和技巧。在这个课程设计中,学生通常会被要求完成一个实际的项目,使用Java语言来实现,同时需要提交详细的报告...

    Java面向对象程序设计(第3版)-PPT课件

    《Java面向对象程序设计(第3版)》是人民邮电出版社出版的一部经典教材,由杨晓燕和李选平两位专家共同编著。...在学习过程中,配合书籍和实践,能够更好地理解和掌握Java面向对象编程的设计思想和技巧。

    java面向对象程序设计第4章源代码

    在Java编程语言中,面向对象程序设计...通过实践,你会理解如何有效地利用Java的面向对象特性来设计和实现复杂的应用程序。学习这些基础知识对于任何Java开发者来说都是至关重要的,因为它们构成了Java编程的基础。

    Java面向对象程序设计课本例题源代码

    以上知识点构成了Java面向对象编程的基础,通过分析和实践这些例题源代码,你可以深入理解Java的核心特性,并提高编程能力。记得不仅要阅读代码,还要动手运行和调试,这样可以从实践中更好地学习和掌握Java编程。

    Java面向对象编程实例详解

    本实例详解旨在深入剖析Java面向对象编程的关键概念,通过实例帮助开发者更好地理解和应用。 在Java中,对象是类的实例,类则是对象的模板或蓝图。类定义了对象的数据属性(字段)和行为(方法)。例如,我们可以...

    JAVA面向对象程序设计(期末考试试题及答案).pdf

    Java面向对象程序设计是编程领域中的核心概念,它基于面向对象的编程思想,将现实世界中的实体抽象为类,通过类来创建对象,实现代码的复用和模块化。在这个期末考试试题中,我们看到了一系列关于Java编程的问题,...

    java面向对象课后题答案

    Java面向对象编程是Java语言的核心特性,它基于面向对象编程思想,使得代码更易于理解和维护。孙卫琴老师的《深入浅出Java面向对象》是一本深受程序员喜爱的教材,其中的课后习题旨在帮助学生深入理解面向对象的原理...

    Java面向对象程序设计 例子源代码

    Java面向对象程序设计是计算机科学中的一个重要领域,它基于面向对象编程(OOP)的理念,强调将现实世界的问题抽象为类和对象,从而更高效、更直观地进行软件开发。这个压缩包包含了一系列的Java源代码示例,由...

Global site tag (gtag.js) - Google Analytics