java中的面向对象和类之间的关系

1、面向对象

a、分析问题中需要用到哪些类以及对象

b、分析以上类中或对象中应该具有哪些属性及方法

c、分析类之间的关系

(合适的方法应该出现在合适的类中)

2、举例:模板-实物

a、白板笔

b、员工(年龄、姓名、性别、工作岗位)

(显示姓名,年龄,修改姓名,修改年龄,变更工作岗位)

(区分对象:一般通过方法是无法区分对象的,通过属性可以区分对象)

3、类与对象

a、类是具有共同特征的一类事物的一个抽象

b、对象是这个类具体的某一个实例

4、类(对象)之间的4种关系

a、依赖关系(Dependency)

所谓依赖就是某个对象的功能依赖于另外的某个对象,而被依赖的对象只是作为一种工具在使用,而并不持有对它的引用

举例:一个人自创生就需要不停的呼吸,而人的呼吸功能之所以能维持生命就在于吸进来的气体发挥了作用,所以说空气只不过是人类的一个工具,而人并不持有对它的引用。

b、关联关系(Association)

某个对象会长期的持有另一个对象的引用,而二者的关联往往也是相互的。

关联的两个对象彼此间没有任何强制性的约束,只要二者同意,可以随时解除关系或是进行关联,

它们在生命期问题上没有任何约定。被关联的对象还可以再被别的对象关联,所以关联是可以共享的。

举例:人从生至死都在不断的交朋友,然而没有理由认为朋友的生死与我的生死有必然的联系,故他们的生命期没有关联,我的朋友又可以是别人的朋友,所以朋友可以共享。

c、聚合关系(Aggregation)

聚合是强版本的关联。

它暗含着一种所属关系以及生命期关系。

被聚合的对象还可以再被别的对象关联,所以被聚合对象是可以共享的。

虽然是共享的,聚合代表的是一种更亲密的关系。

举例:我的家和我之间具有着一种强烈的所属关系,

我的家是可以分享的,而这里的分享又可以有两种。

其一是聚合间的分享,这正如你和你媳妇儿都对这个家有着同样的强烈关联;

其二是聚合与关联的分享,如果你的朋友来家里吃个便饭,估计你不会给他配一把钥匙。

d、组合关系(Compostion)

组合是关系当中的最强版本,它直接要求包含对象对被包含对象的拥有以及包含对象与被包含对象生命期的关系。

被包含的对象还可以再被别的对象关联,

所以被包含对象是可以共享的,

然而绝不存在两个包含对象对同一个被包含对象的共享。

举例:组合关系就是整体与部分的关系,部分属于整体,

整体不存在,部分一定不存在,然而部分不存在整体是可以存在的,

说的更明确一些就是部分必须创生于整体创生之后,而销毁于整体销毁之前。

5、面向对象在Java中的体现

a、封装

b、继承

c、多态

编译时多态

运行时多态

6、成员变量、局部变量

7、构造方法

8、权限修饰符再续:

当重写父类成员函数时,子类的成员函数不能比父类的成员函数权限小,一般重写把权限定义相同即可。

作用域       当前类  同一package 子孙类  其他package

public        √      √           √      √

protected      √      √           √      ×

friendly       √      √           ×      ×

private        √      ×           ×      ×

时间: 2024-10-11 02:53:52

java中的面向对象和类之间的关系的相关文章

Java中JDK,JRE和JVM之间的关系

初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解就是Java开发工具包,JRE(Java Runtime Enviroment)是Java的运行环境,JVM( java virtual machine)也就是常常听到Java虚拟机.JDK是面向开发者的,JRE是面向使用JAVA程序的用户,上面只是简单的区别,一般网上好多都讲概念,我就不讲了,直接截图应该会更清晰一点,我安装的JDK1.8,效果如图: JDK和J

java学习之Java中JDK,JRE和JVM之间的关系(转载)

最近要重新抓一下java,大量扫技术文档,保存下来供自己查阅.以下转载自http://www.cnblogs.com/xiaofeixiang/p/4085159.html 初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解就是Java开发工具包,JRE(Java Runtime Enviroment)是Java的运行环境,JVM( java virtual machine)也就是常常听到Java虚拟机.JDK是

全面解释java中StringBuilder、StringBuffer、String类之间的关系

http://www.jb51.net/article/33398.htm String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间,StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象,StringBuffer和StringBuilder类功能基本相似 1. String 类  String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不

Java中接口与接口和类之间的关系

接口和接口之间的关系 继承关系 可以多继承,并且可以多层继承 注意: 1.如果多个父接口中有同名的抽象方法,那么子接口只需要实现一次即可 2.如果多个父接口中有同名的默认方法,那么子接口必须重写默认方法,必须要加default关键字3.如果多个父接口中有同名的静态方法,那么无须理会,因为静态方法只能供接口使用 4.如果多个父接口中有同名的私有方法,那么无须理会,因为私有方法只能本接口使用 接口和类之间的关系 实现关系 单实现: 一个类只实现一个接口 多实现: 一个类可以同时实现多个接口 格式:

【47】java的类之间的关系:泛化、依赖、关联、实现、聚合、组合

java的类之间的关系:泛化.依赖.关联.实现.聚合.组合 泛化: ? 泛化关系(Generalization)也就是继承关系,也称为"is-a-kind-of"关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类.在UML中,泛 化关系用带空心三角形的直线来表示. ? 在代码实现时,使用面向对象的继承机制来实现泛化关系,如在Java语言中使用extends关键字.在C++/C#中使用冒号":"来实现. 泛化对应Java中继承关系,即子

黑马程序员——Java中的面向对象

----android培训.java培训.期待与您交流! ---- 通过一段时间的学习,对于面向对象有了更深刻的了解,面向对象是将复杂的事情简单化,面向对象的思想更能全面详细的想到问题的关键,下面是对面向对象的一些总结: 面向对象:将功能封装进对象,强调具备了功能的对象 特点: 1:将复杂的事情简单化.                2:面向对象将以前的过程中的执行者,变成了指挥者.                3:面向对象这种思想是符合现在人们思考习惯的一种思想. 面向过程是执行者   , 

Java中的基本操作单元 - 类和对象

Java中的基本操作单元 - 类和对象 文本关键字:类.属性.行为.实例化.对象 一.概念浅析 说到类和对象,这都是两个比较抽象的词,如果用在程序中,那就更不知道是什么意思了.其实大家可以先不联系程序,我们在对一大堆东西分类的时候自然是有一个标准的,符合某些特征的分到一类,符合另外一些特征的分到另外一类.在每个类别中,每一样东西都有相同的特征,但是又有所差别,每一样东西就好比一个一个的对象,是一个切切实实的东西,而分类的类别就好似是一个标准或者描述,会更抽象一些. 1. 类的概念 在编程中,我们

java 类与类之间的关系 及uml图

类与接口之间的关系 : 继承 类与类之间的关系 :继承关系  包含关系 类与对象之间的关系 : 实例 UML 类图中类与类之间的关系: 泛化关系(generalization) 关联关系(association) 聚合关系(aggregation) 合成关系 (compostion) 依赖关系 (dependency) 1.泛化(Generalization)[泛化]表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系.一般化的关系是从子类指向父类的,与继承或实现的方法相反.

黑马程序员【Java中的面向对象】

Java中的面向对象 在软件开发的学习中, 我最先接触的开发语言就是java,但都是简单的函数和循环数组的应用.说道面向对象,第一次看到这个词的时候还是在C#的学习过程中,我记得当时PPT上霸气的解释,什么是对象?万物皆对象!够霸气吧,当时的面向对象思想对我来说还是挺崩溃的,什么继承多态啊!经过了无数的联系项目的书写,终于对面向对象有了一定的理解,现在刚好在java的学习中再度重温面向对象,那么就将我眼中的面向对象写出来分享给大家. 说到面向对象,我们就不得不提一下他的三大特性,继承封装和多态.