- 浏览: 12714 次
- 性别:
- 来自: 南京
最新评论
抽象:
抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面。例如,看到一只蚂蚁和大象,你能够想象出它们的相同之处,那就是抽象。抽象包括行为抽象和状态抽象两个方面。例如,定义一个Person类,如下:
classPerson{
String name;
int age;
}
人本来是很复杂的事物,有很多方面,但因为当前系统只需要了解人的姓名和年龄,所以上面定义的类中只包含姓名和年龄这两个属性,这就是一种抽像,使用抽象可以避免考虑一些与目标无关的细节。我对抽象的理解就是不要用显微镜去看一个事物的所有方面,这样涉及的内容就太多了,而是要善于划分问题的边界,当前系统需要什么,就只考虑什么。
封装:
封装从字面上来理解就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节(当然也无从知道),但可以通过该对象对外的提供的接口来访问该对象。
封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。在面向对象的编程语言中,对象是封装的最基本单位。一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作。
例如,人要在黑板上画圆,这一共涉及三个对象:人、黑板、圆,画圆的方法要分配给哪个对象呢?由于画圆需要使用到圆心和半径,圆心和半径显然是圆的属性,如果将它们在类中定义成了私有的成员变量,那么,画圆的方法必须分配给圆,它才能访问到圆心和半径这两个属性,人以后只是调用圆的画圆方法、表示给圆发给消息而已,画圆这个方法不应该分配在人这个对象上,这就是面向对象的封装性,即将对象封装成一个高度自治和相对封闭的个体,对象状态(属性)由这个对象自己的行为(方法)来读取和改变。一个更便于理解的例子就是,司机将火车刹住了,刹车的动作是分配给司机,还是分配给火车,显然,应该分配给火车,因为司机自身是不可能有那么大的力气将一个火车给停下来的,只有火车自己才能完成这一动作,火车需要调用内部的离合器和刹车片等多个器件协作才能完成刹车这个动作,司机刹车的过程只是给火车发了一个消息,通知火车要执行刹车动作而已。
使用封装有四大好处:
1、良好的封装能够减少耦合。
2、类内部的结构可以自由修改。
3、可以对成员进行更精确的控制。
4、隐藏信息,实现细节。
继承:
在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。
多态:
多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。多态性增强了软件的灵活性和扩展性。
抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面。例如,看到一只蚂蚁和大象,你能够想象出它们的相同之处,那就是抽象。抽象包括行为抽象和状态抽象两个方面。例如,定义一个Person类,如下:
classPerson{
String name;
int age;
}
人本来是很复杂的事物,有很多方面,但因为当前系统只需要了解人的姓名和年龄,所以上面定义的类中只包含姓名和年龄这两个属性,这就是一种抽像,使用抽象可以避免考虑一些与目标无关的细节。我对抽象的理解就是不要用显微镜去看一个事物的所有方面,这样涉及的内容就太多了,而是要善于划分问题的边界,当前系统需要什么,就只考虑什么。
封装:
封装从字面上来理解就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节(当然也无从知道),但可以通过该对象对外的提供的接口来访问该对象。
封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。在面向对象的编程语言中,对象是封装的最基本单位。一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作。
例如,人要在黑板上画圆,这一共涉及三个对象:人、黑板、圆,画圆的方法要分配给哪个对象呢?由于画圆需要使用到圆心和半径,圆心和半径显然是圆的属性,如果将它们在类中定义成了私有的成员变量,那么,画圆的方法必须分配给圆,它才能访问到圆心和半径这两个属性,人以后只是调用圆的画圆方法、表示给圆发给消息而已,画圆这个方法不应该分配在人这个对象上,这就是面向对象的封装性,即将对象封装成一个高度自治和相对封闭的个体,对象状态(属性)由这个对象自己的行为(方法)来读取和改变。一个更便于理解的例子就是,司机将火车刹住了,刹车的动作是分配给司机,还是分配给火车,显然,应该分配给火车,因为司机自身是不可能有那么大的力气将一个火车给停下来的,只有火车自己才能完成这一动作,火车需要调用内部的离合器和刹车片等多个器件协作才能完成刹车这个动作,司机刹车的过程只是给火车发了一个消息,通知火车要执行刹车动作而已。
使用封装有四大好处:
1、良好的封装能够减少耦合。
2、类内部的结构可以自由修改。
3、可以对成员进行更精确的控制。
4、隐藏信息,实现细节。
继承:
在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。
多态:
多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。多态性增强了软件的灵活性和扩展性。
发表评论
-
Java中的四种引用
2018-03-22 15:12 4781、强引用(Strong Referen ... -
java中try、catch、finally中含有return的简单总结
2017-06-01 14:24 547try语句在返回前,将其他所有的操作执行完,保留好要返回的值 ... -
java泛型总结
2016-04-20 13:26 370泛型(generic):是指参数化类型的能力。可以定义泛型类 ... -
对象的序列化与反序列化
2016-04-18 10:22 485序列化:把对象转换为字节序列的过程 反序列化:把字节序列恢 ... -
覆盖hashCode方法
2016-04-15 13:44 601覆盖hashCode方法规约: ... -
通用equals方法
2016-04-14 17:50 5051.1 equals方法 覆盖equals方法必须遵守的 ... -
java对象的创建建议
2016-04-14 16:39 3511.1 考虑用静态工厂方法代替构造器 示例: publi ... -
枚举类型
2016-04-06 15:50 01.1 基本enum特性 public e ... -
String深入理解
2016-04-05 15:33 462String对象是不可变的,每个看起来会修改String对象 ... -
java内部类详解
2016-04-01 15:59 460内部类 可以将一个类 ... -
理解java中的抽象类与接口
2016-03-31 21:42 438抽象方法:仅有声明没 ... -
java回调机制
2016-03-31 09:56 412所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调 ... -
jdk动态代理
2016-03-30 17:28 426代理模式: 为其他对象提供一种代理,并以控制对这个对象的访问。 ... -
java继承与多态
2016-03-30 11:33 512继承 在java中使用extends ... -
final和static浅析
2016-03-30 10:47 294final 通常代表“这是无法改变的”。 一般使用到final ... -
java数据存储
2016-03-28 22:42 340Java中数据存储区域包括: 1.寄存器:最快的存储区,由编 ... -
java访问控制权限
2016-03-28 22:34 368java访问控制权限:private,protected,包 ... -
java基本类型
2016-03-28 22:31 314基本类型 java确定了每种基本类型的存储空间大小 基本类型 ... -
Java7语法新特性
2016-03-11 15:17 296转自:http://uuhorse.iteye.com/blo ...
相关推荐
### 面向对象的特征 面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它将程序中的数据与处理这些数据的方法组织在一起形成对象。面向对象编程具有四大核心特性:封装、继承、多态以及抽象。...
面向对象的四大基本概念包括:封装、继承、多态和抽象。封装使得数据和操作数据的代码紧密结合,隐藏内部实现细节,提高安全性;继承允许类之间共享属性和行为,减少代码重复,增强代码复用性;多态允许不同对象对...
本书通过深入浅出的方式,不仅阐述了面向对象的基本概念,如封装、继承、多态等,还探讨了如何将这些原则应用于实际软件开发中,以构建出高效、可维护、易于扩展的系统。 ### 面向对象设计的核心理念 面向对象设计...
面向对象(Object-Oriented Programming,OOP)的四大基本特性包括封装、继承、多态和抽象。封装是指将数据和操作这些数据的方法捆绑在一起,形成一个独立的实体——对象。这样可以保护数据不被外部随意访问,提高...
面向对象编程的四大特性包括:封装、继承、多态以及抽象。本文将围绕这些核心特性展开讨论,并结合具体示例进行解析。 ### 封装 封装是面向对象编程的一个基本特性,其主要目的是隐藏对象内部的实现细节,并对外...
### Delphi与面向对象特点分析 #### 面向对象技术概述 面向对象技术作为现代计算机科学中的核心概念,已经成为软件开发领域中最流行且...理解和掌握面向对象编程的基本原理,对于现代软件工程师来说是至关重要的。
在书中,作者可能会首先介绍面向对象的基本理念,包括类与对象、封装、继承、多态这四大核心概念。类是对象的模板,定义了对象的属性和方法;对象则是类的实例,拥有类定义的特性并能执行相关操作。封装是保护数据和...
面向对象的四大核心概念包括封装、继承、多态和抽象。 1. 封装:这是面向对象的基础,意味着将数据和操作这些数据的方法绑定在一起,作为一个单元进行处理。在"LicenceManager"中,可以创建一个`License`类,包含...
Java面向对象应用程序开发是软件开发领域中的核心主题,尤其对于初学者和专业开发者而言,理解并掌握这一技术至关重要。Java语言以其强大的面向对象特性、跨平台兼容性以及丰富的类库,成为了开发各种类型应用程序的...
总的来说,西北工业大学软件学院的面向对象程序设计实验课程是一次全面而深入的学习体验,涵盖了从基本概念到高级特性的全部内容,旨在培养学生的逻辑思维、问题解决和编程技能,为未来的职业生涯打下坚实的基础。...
以上是JAVA基础知识的简要概述,包括面向对象的四大特征、数据类型、集合类、异常处理、Servlet和EJB等内容,它们构成了JAVA编程的基础框架。理解并熟练掌握这些概念对于JAVA开发者来说至关重要。
面向对象编程主要包含四大特性:封装、继承、多态和抽象。 1. **封装**:封装是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问,而是通过该类提供的公共接口进行访问和操作。 2. **继承**:继承使得一...
四大面向对象的特性包括封装、继承、多态和抽象。 1. 封装:封装是面向对象的核心概念,它隐藏了对象内部的实现细节,只暴露对外接口。在ATM类中,这可能意味着我们有一个类`ATM`,它包含了用户的账户信息、余额、...
面向对象编程的四大基本原则是封装、抽象、继承和多态性。 封装是指将对象的实现细节隐藏起来,只暴露对外接口。这有助于减少程序各部分之间的依赖,使得代码更加易于维护。 抽象指的是隐藏复杂的现实情况,只保留...
面向对象编程的四大基本概念包括对象、类、继承和通信,这些概念对于C#程序设计来说是至关重要的。 首先,面向对象程序设计中的“对象”(Object)是指能够独立存在的实体,拥有特定的属性和行为。在C#中,对象是...
#### 四大发明之活字印刷——面向对象思想的胜利 在《戏说面向对象设计原理》一文中,作者通过一个生动的故事引入了面向对象编程的核心思想:可维护性、可复用性、可扩展性和灵活性。故事发生在三国时期,曹操命令...
面向对象的四大核心概念包括:封装、继承、多态和抽象。首先,封装是将数据和操作数据的方法绑定在一起,形成一个独立的单元——对象。这可以隐藏内部实现细节,保护数据安全,同时也提高了代码的复用性。C++中的类...
尽管C语言不具备内置的面向对象支持,但通过宏定义和特定的编码技巧,依然可以在C语言中实现面向对象编程的基本特征。这种方式被称为OOPC(Object-Oriented Programming with C)。 #### OOPC的关键技术 - **封装**...
根据给定文件的信息,我们可以提炼出关于“面向对象程序设计”的一些关键知识点。这份文档似乎是为大学本科生期末考试准备的题库,包含了单项选择题和主观题,并且附带了详细的答案解析。接下来,我们将围绕面向对象...
**四大发明之活字印刷——面向对象思想的胜利** - **可维护性**:面向对象的设计使得程序更加易于维护。就像活字印刷中的每一个字符可以独立更换一样,面向对象中的类和对象也可以独立地进行修改而不影响其他部分。...