`
ponos
  • 浏览: 2277 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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的面向对象特性 PPT

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

    Java面向对象程序设计

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    java面向对象的学习文档

    通过这份学习文档,你将逐步掌握如何设计和使用类,理解类之间的关系,以及如何利用面向对象特性编写更健壮、可维护的代码。实践中,你可以创建简单的Java应用程序,练习类的设计和对象的交互,逐渐加深对面向对象的...

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

    这份压缩包包含了书中各个章节的例题源代码,是学习和理解Java面向对象编程概念的宝贵资源。下面我们将详细探讨这些源代码所涵盖的知识点,并结合Java的核心特性进行解析。 1. **类与对象**:在Java中,一切皆为...

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

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

    Java面向对象编程实例详解

    Java面向对象编程是一种核心...总之,Java面向对象编程是软件开发中的基础,通过实例学习能够更直观地理解其原理和应用。不断练习和实践,结合源代码分析和课件学习,将有助于深化对面向对象编程的理解,提高编程技能。

    Java面向对象程序设计教程PDF,完整的面向对象编程指南,大量习题便于自学。

    Java面向对象程序设计是Java语言的核心特性之一,也是学习Java编程不可或缺的部分。本教程全面深入地探讨了这一主题,旨在帮助初学者和有一定基础的开发者更深入地理解面向对象编程的概念和实践。以下是对该教程内容...

    java面向对象课后题答案

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

    Java面向对象编程:从C++到Java—理解面向对象

    ### Java面向对象编程:从C++到Java的理解与过渡 #### 一、Java与C/C++的区别 在从C++转向Java的过程中,理解和掌握面向对象编程(OOP)是非常重要的。本篇文章将着重介绍Java与C/C++之间的主要差异,并探讨Java如何...

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

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

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

    这个压缩包文件"JAVA面向对象程序设计(期末考试试题及答案).zip"包含了学习和复习Java OOP的关键资源,包括一份详细的资源说明文档和期末考试试题及答案的PDF。 资源说明.docx可能涵盖了学习Java OOP的基础概念、...

Global site tag (gtag.js) - Google Analytics