Java进阶(类对象以及类类之间的基情)

来源:互联网 发布:平板电脑windows推荐 编辑:程序博客网 时间:2024/06/06 18:06
    一个主题引发的血案,有时也要适当的做做标题党,这节主要是浅浅的涉及一下类与对象之间的关系、类与类之间的关系。
    从面向过程到面向对象的思想转变;
    面向对象程序设计思路:首先考虑该问题域里应该具有哪些对象,将这些对象抽象出来;接着将对象与对象之间的关系抽象出来,关系可以是聚合、多态等等。

    类与对象:
    类是用于描述同一类型的对象的一个抽象的概念(拗口),类中定义了这一类对象所因具有的静态和动态属性。对象是类的实例,类是对象的模版,用类创建一个对象的过程叫创建实例的过程。
    举例:人是一种类,小红是人小明是人小刚也是人,小红、小明、小刚就可以说是人这种类的一个对象(实例),因为它们拥有人的共同特征,能直立行走拥有高等的智慧能够独立思考·····  什么是静态属性什么是动态属性,人的静态属性是什么,有嘴巴有鼻子有眼睛····动态的属性是什么,人能够生产工具能够做各种各样的事。关键在于如何抽象,创建这个类要将共同所具有的静态属性和动态属性都抽象出来,瓶子是一种类,它有颜色Color、有形状Shape、有容量Capacity等等这些都是静态属性,而瓶子可以装水可以倒水还可以用来砸人等等这些都可以看作动态的属性。那么接着中瓶子这种类来创建一个对象(瓶子A),瓶子A的Color是Yellow,Shape是Cylinder,Capacity是1.2L,真正的将这个类作为模版创建出对象的实例出来。
    一种事物的抽象叫做类,一种类的实例叫做对象,对象具有该类具体的静态属性(Java中称为成员变量)和动态属性(Java中称为方法)。学生是一种类,那个学生是一个对象这个学生也是一个对象,教师是一种类,那个教师是一个对象这个教师也是一个对象。
    
    
    类与类之间的关系:
    包括关联、依赖、聚合、泛化
    关于这些概念找了两篇不错的文章分享一下:点我跳转 点我跳转
    关联关系:对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。比如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;再例如公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司。一个类为教授,一个类为研究生,教授类里有一个方法叫教研究生,该方法需要一个参数,参数类型为研究生这个类,而对象为指定的某个研究生,这就是一种关联关系。
    依赖关系:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。说到底就是借助哪个类实现什么功能。
    聚合关系:
聚合是关联关系的一种特例,它体现的是整体与部分的关系,即has-a的关系。例如CPU和计算机,CPU是计算机的一部分,而CPU和计算机还是一种关联关系。
    
    我也分不太清依赖关系和联合关系,这个程序Teacher类和Student类严格的来说应该属于联合关系。

    泛化关系:
表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。继承关系,其实就只有一种描述,XX是一种XX,牛是一种动物,玫瑰花是一种花,草鱼是一种鱼等。
    
    Dog extegds Animal表示Dog这个类从Animal中继承,拥有Animal的静态属性,其实际上Animal可以选择性隐藏它的静态属性,阻止Dog类对某些关键字段的访问。
    本节只是作为一个引子,了解类与对象以及它们的关系,浅谈了一下类与类之间的关系,接下来会继续深入。
0 0
原创粉丝点击