读书笔记-简单叙述对象关系

简介:                                          本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!        在Java中,最明显的特征就是面向对象,讲到对象就不得不讲到关系,跟人类社会的人际关系一样复杂。


                                         本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!


        在Java中,最明显的特征就是面向对象,讲到对象就不得不讲到关系,跟人类社会的人际关系一样复杂。

       我们先讲讲其中的两个概念,组合与聚合。以下默认均是两个对象之间的关系,以小喻大。

       组合:是has-a的关系,<Thinking in Java>如是定义,即一个对象中有另一个

       聚合:是contain-a的关系,如下是一个对象包含另一个的意思

       不同点:从字面上可以看出,后者讲述的概念属于强关系,不可分割,如人-心脏的关系,一个不存在另外一个也无意义,则被回收;前者讲述的概念属于弱关系,可分割,如电脑-音箱,一个不存在另外一个可以单独存在。


      接下来再讲两个概念,重载与重写,其实英文要更好记一些,overload与override,从字面上也可以看出些不同,那这两个概念的出现,也就是因为意义不同而存在。

      不同点:前者指将重写某方法的实现方式,此时不修改变量类型、变量数目、变量顺序,以及返回值类型,在软件需要新功能时比较常见;后者指完全定义一个新的方法,至于为什么要这样做?处理逻辑的不同!


继承:获得父类的行为和功能,同时可以声明自己的行为。

接口:最初的行为定义,具体实现看情况。如生物下无论树、熊猫、鹰。

PS:单根继承,垃圾回收要容易的多,因为没有组合关系,各种实现类比较单一,不用即回收。


容器与泛型:用来放置多种相同类型的数据


堆:用来存放数据实体

栈:用来放临时数据,如数据引用和基础数据。


异常处理:程序允许正常的异常出现,就像人也会脑力耗尽一样,我们在使用有限的资源创造最大的价值。


并发:同一时刻执行多个任务,此时注意资源加锁。如多个球员踢足球一样,他们都在打配合踢球,但只有一个资源-球,不能平白拿出一个新球来射门。


Java/Internet:通过Internet,Java被应用,网上冲浪,处理模式:客户请求-逻辑处理-服务器接收-逻辑处理-响应请求,其中前者一般做成中间件,虚拟多个客户端来处理,现在最流行的是多个服务器处理请求,即云计算。



目录
相关文章
|
10月前
|
缓存 算法 Java
《深入理解Java虚拟机》读书笔记(四)--GC的回收条件及Java对象的引用
《深入理解Java虚拟机》读书笔记(四)--GC的回收条件及Java对象的引用
203 0
|
10月前
|
存储 缓存 算法
《深入理解Java虚拟机》读书笔记(二)--对象的创建与空间分配及定位
《深入理解Java虚拟机》读书笔记(二)--对象的创建与空间分配及定位
89 0
|
存储 缓存 算法
深入理解JVM虚拟机读书笔记——对象的创建与内存布局
注:本文参考自周志明老师的著作《深入理解Java虚拟机(第3版)》,相关电子书可以关注WX公众号,回复 001 获取。
深入理解JVM虚拟机读书笔记——对象的创建与内存布局
|
存储 网络协议 安全
读书笔记 之《Thinking in Java》(对象、集合、异常)
一、前言     本来想看完书再整理下自己的笔记的,可是书才看了一半发现笔记有点多,有点乱,就先整理一份吧,顺便复习下前面的知识,之后的再补上。     真的感觉,看书是个好习惯啊,难怪人家说“书籍是人类进步的阶梯”。
1115 0
|
C++ 容器 存储
读书笔记 effective c++ Item 28 不要返回指向对象内部数据(internals)的句柄(handles)
假设你正在操作一个Rectangle类。每个矩形可以通过左上角的点和右下角的点来表示。为了保证一个Rectangle对象尽可能小,你可能决定不把定义矩形范围的点存储在Rectangle类中,而是把它放入一个辅助结构体中,Rectangle中声明一个指向它的指针就可以了: 1 class...
928 0
|
C++
读书笔记 effective c++ Item 21 当你必须返回一个对象的时候,不要尝试返回引用
1. 问题的提出:要求函数返回对象时,可以返回引用么? 一旦程序员理解了按值传递有可能存在效率问题之后(Item 20),许多人都成了十字军战士,决心清除所有隐藏的按值传递所引起的开销。对纯净的按引用传递(不需要额外的构造或者析构)的追求丝毫没有懈怠,但他们的始终如一会产生致命的错误:它们开始传递指向并不存在的对象的引用。
914 0
|
C# C++ 编译器
读书笔记 effective c++ Item 17 使用单独语句将new出来的对象放入智能指针
1. 可能会出现资源泄漏的一种用法 假设我们有一个获取进程优先权的函数,还有一个在动态分配的Widget对象上根据进程优先权进行一些操作的函数: 1 int priority(); 2 3 void processWidget(std::tr1::shared_ptr pw, int priority); 注意这里使用了对象管理资源的用法(Item 13),processWidget为它需要处理的动态分配对象Widget使用了智能指针(tr1::shared_ptr)。
840 0
|
C++ 容器
读书笔记 effective c++ Item 13 用对象来管理资源
1.不要手动释放从函数返回的堆资源 假设你正在处理一个模拟Investment的程序库,不同的Investmetn类型从Investment基类继承而来, 1 class Investment { .
994 0
|
C++ 编译器 安全
读书笔记 effective c++ Item 12 拷贝对象的所有部分
1.默认构造函数介绍 在设计良好的面向对象系统中,会将对象的内部进行封装,只有两个函数可以拷贝对象:拷贝构造函数和拷贝赋值运算符。我们把这两个函数统一叫做拷贝函数。从Item5中,我们得知,如果需要的话编译器会为你生成这两个拷贝函数,并且编译器生成的版本能够精确的做到你想做的:它们拷贝了对象的所有数据。
822 0