`

面向对象

阅读更多
面向对象有三个特性:封装,继承,多态。
除了这三个特征面向对象最重要的就是抽象,抽象就是将一类共同拥有同一种或多种特征的对象形成一个类的过程,抽象只关心是否是相同的属性和方法,而不关心属性的具体值和方法的具体执行。

封装就是就是将对象的属性和基于该属性得方法装到一个类中,然后将类的属性隐藏起来,尽量通过调用类中的方法来改变属性的数据,封装能够隐藏一切可隐藏的东西,只将类的某些接口提供给外界。

比如未封装前你可以通过dog.size=23;来设定size的值,可以看出这样会将Dog类中的实例变量暴漏出来,封装就是在类中定义方法来设定size的值,例如用setSize来设定size值和getSize来返回size的值。我们还可以在方法中设置向size赋值的限制条件,比如size不可能为负,我们就可以在setSize设定if size>0则this.size=size;返回size值else就打印赋值错误。

继承就是通过已有类的属性和方法来新建类的过程,被继承的类叫做父类,继承的类叫做子类,子类会根据父类实例变量和方法的访问权限修饰符来决定是否会继承父类的实例变量和方法,继承的子类在创建对象的时候会先调用父类的构造函数;一般来说,使用继承是为了更好的复用已有的代码和功能。

访问权限修饰符如下:


子类也可以重载(overload)和覆盖(override)父类的方法。

是重载还是覆盖只要看方法的入参(方法中传入的参数),方法名相同和返回类型。
覆盖又叫作重写,所以可以说覆盖父类方法就是重写父类方法的方法体,但是返回类型必须一样或者兼容(兼容是指可以返回一样的类型或者该类型兼容的类型,如int可以被long兼容,输入参数要相同,方法名必须相同。注意,在覆盖方法时不能降低方法的访问权限!!!(例如父类中的test方法权限修饰符是public,那在子类覆盖的test方法就不能是default和private)

重载的要求方法名也要一样,输入参数可以不一样,返回类型也可以自由的定义,并且可以随意的改变访问权限。重载的方法代表着相同名字的不同方法,与覆盖有很大的区别。

多态就是指允许不同类的对象对同一消息做出不同的响应。多态存在的三个必要条件:
一、要有继承;
二、要有覆盖;
三、父类引用指向子类对象。

创建对象
在JAVA中创建对象一般都是用new关键字来创建的对象,也有些类中的方法会返回一个新的对象。Dog a=new Dog();第一步定义一个Dog类型的引用变量a ;之后再在堆上创建一个新的Dog类的对象,第三步将新建的对象指向引用变量a;这时引用变量a是在栈上,a的值为一个字节码。如果对象在堆上没有被任何引用变量引用,那么这是java中的GC(垃圾回收机制)就会登场将对象回收,清理内存。
  • 大小: 31.4 KB
分享到:
评论

相关推荐

    易语言面向对象编程 面向对象学习

    易语言面向对象学习 1 一.枯燥的理论 2 1.对象和类 2 2.类的“成员”与“方法” 2 3.实例化 2 4.继承 3 二.牛刀小试 3 1.定义一个类,生成实例对象 3 2.“_初始化” 与 “_销毁” 5 三.一个更丰富的“员工...

    plc面向对象编程架构与实现

    面向对象编程是计算机语言的一种先进的编程模式,在工业控制系统的PLC程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多特点如“继承”,甚至于它根本就不具备面向对象编程语言的特点,但面向对象编程...

    面向对象葵花宝典-电子版

    面向对象是目前最流行的一种程序设计和实现思想,无论你是从事企业级开发、互联网应用开发,还是手 机软件开发,都会使用到面向对象的技术;主流的编程语言中,C++,Java,C#,PHP,Python等都是支持 面向对象的语言;...

    面向对象概要设计模板

    面向对象概要设计模板 面向对象设计是一种软件设计方法,它强调对象之间的交互和协作,以达到软件系统的高内聚、低耦合的目标。在软件设计中,面向对象设计方法可以帮助开发者更好地理解系统的需求和行为,从而提高...

    实用面向对象软件工程教程

    本教程“实用面向对象软件工程教程”旨在深入探讨面向对象分析(OOA)和面向对象设计(OOD)的关键原则,帮助开发者构建高质量、可维护的软件系统。 在面向对象分析阶段,我们首先理解问题域,识别出关键实体和它们...

    Python 3面向对象编程

    Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...

    面向对象分析与设计UML2.0(PDF)

    详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。本书使用最常见的技术和方法,通过一个贯穿全书的案例分析,对面向对象的软件开发过程和使用面向对象技术的编程过程进行了...

    面向过程、面向对象、面向组件、面向服务软件架构的分析与比较

    面向过程、面向对象、面向组件、面向服务软件架构的分析与比较 软件开发历程与架构演进 软件开发从汇编语言、过程式语言、面向对象、面向组件发展到面向服务,这一进程不仅反映了编程技术的不断进步,更是软件工程...

    软件工程面向对象分析实验报告

    面向对象分析(Object-Oriented Analysis,OOA)是软件工程中的一种重要方法,它着重于从实际问题出发,抽象出问题域内的对象及其相互关系,以构建问题域模型。在“软件工程-张海藩编著--面向对象分析实验报告”中,...

    面向对象软件工程

    《面向对象软件工程》 作者:Stephen.R.Schach 学校:(美)范德比尔特大学 书名原名:Objected-Oriented Software Engineering 目录: 第一部分 面向对象软件工程简介  第一章 面向对象软件工程的范畴  第二章 ...

    java面向对象编程源码

    本书内容由浅入深,紧密结合实际,利用大量典型实例,详细讲解Java面向对象的编程思想、编程语法和设计模式,介绍常见Java类库的用法,总结优化 Java编程的各种宝贵经验,深入阐述Java虚拟机执行Java程序的原理。...

    漫画面向对象编程 Java

    借助于漫画展示的形式,面向对象的简、由类创建一个对象的方法、类的编写与对象的创建、类的构造函数、类的方法、修饰符、Java中的封装/继承/多态等特征、Java中的线程、用Java创建一个小世界、多线程共享数据,以及...

    C++面向对象程序设计教程——课件PPT

    C++是一种强大的编程语言,以其面向对象特性而闻名,它结合了过程化编程和面向对象编程的优势。在“C++面向对象程序设计教程——课件PPT”中,我们可以深入学习这一主题,由陈维兴和林小茶编著,清华大学出版社出版...

    面向对象JavaScript精要(英文原版pdf)

    ### 面向对象JavaScript精要 #### 一、书籍概览 本书《面向对象JavaScript精要》由Nicholas C. Zakas编写,是面向对象编程领域中的权威指南之一,尤其针对JavaScript这门语言。作者深入浅出地介绍了面向对象编程的...

    Matlab面向对象编程

    Matlab面向对象编程是一种在MATLAB环境下通过面向对象的方法来组织和构造程序代码的技术。面向对象编程(OOP)的基本特征包括抽象、封装、继承和多态。以下是根据给定的文件信息,对这些知识点的详细解释: 1. 抽象:...

    面向对象分析与设计1

    国外计算机科学经典教材-面向对象分析与设计(UML 2.0版) 简介:本书详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。 本书使用最常见的技术和方法,通过一个贯穿全书的...

    面向对象分析与设计.pdf

    由于提供的文件内容不包含实际的文本信息,而是重复的URL链接,因此无法从该部分提供有关面向对象分析与设计(OOAD)的知识点。但是,我将尽可能详细地介绍面向对象分析与设计的相关知识点,以满足您的需求。 面向...

Global site tag (gtag.js) - Google Analytics