软件设计笔记(六)- 面向对象程序设计 - 4

原创 2018年04月17日 18:30:31

1.3.7 对象销毁

C++,程序员显式销毁对象,delete
java/C#,由虚拟机自动完成,garbage collection

析构方法通常用于清理非托管资源,文件系统、数据库连接、网络
建议,在开发中不要重写C#和Java的析构方法,应该让CLR/JVM负责
在C#中,非要显式回收资源,可以利用Disposable模式来解决这个问题(不用C#,此处略)

2.1.1 对象组合(对象关系中的一种)

1-to-1

方式一:A对象完全包含B对象,A创建B随之创建,A销毁B随之销毁(组合)

// 方式一,使用简单
class OneToOneClass{
    private InnerClass obj;
    public OneToOneClass(){
        obj = new InnerClass(); 
    }
}

方式二:A对象与B对象相互独立,A对象引用现成的B对象,A的声明周期与B无关(聚合)

// 方式二,采用对象注入
class OneToOneClass{
    private InnerClass obj;
    public OneToOneClass(InnerClass outerObj){
        this.obj = outerObj;
    }
}

1-to-N,实现起来把上述private InnerClass obj变成对象的集合

方式一:一辆车有4个轮子
方式二:一个飞机场有多架飞机

经验:活用对象组合,延时动态创建用户界面创建复杂的窗体(多个容器后台加载)

自引用类(对象组合的特殊形式)

// 用处:在没有指针的面向对象编程语言中,可以替代指针建立数据之间的关联
class MyClass{
    MyClass obj;
}
// 比如,构成链表等数据结构
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30159243/article/details/79978866

【C++面向对象学习笔记】-基础知识

1.基本概念 面向对象程序设计是利用对象来进行程序设计。一个对象表示现实世界中一个独一无二的实体。例如,一名学生、一张桌子、一个圆等都可以看作对象。一个对象具有唯一的身份、状态和行为。一个对象的状态...
  • Kevin_zhai
  • Kevin_zhai
  • 2015-09-08 16:58:53
  • 3677

sdut 面向对象程序设计上机练习六(类和对象)

面向对象程序设计上机练习六(类和对象) Time Limit: 1000MS Memory limit: 65536K 题目描述 用类成员函数完成5个整型数组元素的输入、从小到大...
  • u013634961
  • u013634961
  • 2014-09-10 20:50:38
  • 967

传智播客_Java基础_java面向对象程序设计

  • 2014年01月05日 17:06
  • 129KB
  • 下载

第四讲:面向对象程序设计方法及类、对象的概念

第四讲:面向对象程序设计方法及类、对象的概念     掌握:面向对象程序设计的方法及特点;类的声明的对象的定义理解:对象的封装、抽象、继承与多态性四个特快性的概念;类和对象的作用;面向对象和面向过程...
  • L_cpp
  • L_cpp
  • 2016-09-08 14:03:38
  • 2382

面向对象程序设计C++听课笔记

  • 2010年02月24日 09:53
  • 3.2MB
  • 下载

【博览网】面向对象程序设计(下)——第二周课程笔记

本周课程课程主要是对C++一些底层特性的讲解,平时开发中可能较少接触到这些内容,但是有所了解对程序开发还是很有帮助的。对于之前课程已经讲解过的内容,在此不再赘述。...
  • xyx_yang
  • xyx_yang
  • 2017-08-12 19:33:12
  • 64

Java面向对象程序设计(源代码+课后习题答案)

  • 2013年12月03日 23:09
  • 275KB
  • 下载

软件设计笔记(四)- 面向对象程序设计 - 2

1.3.4 接口 鸭子是一种鸟,会游泳,同时又是一种食物 分析:两个IS-A关系,应该是两个继承关系 问题:C#/Java不支持多继承;会游泳放在哪里呢? 只能放在Duck里面;但是,...
  • qq_30159243
  • qq_30159243
  • 2018-04-13 20:57:39
  • 5

软件设计笔记(八)- 面向对象程序设计 - 6

2.1.3 对象序列化与反序列化 保存对象的媒介:流和字符串 一串有序的二进制数据,包含一个读写指针。比如,java和c#要想访问一个文件,必须创建一个流对象对文件进行访问。 // ...
  • qq_30159243
  • qq_30159243
  • 2018-04-18 19:34:56
  • 1

软件设计笔记(三)- 面向对象程序设计 - 1

参考资料: 面向对象软件开发实践之基本技能训练——北京理工大学 因是复习课程,所以会省略一些已经熟悉的知识,如果你看见只有标题,那么就是这种情况 1.3.1 类和对象 1.3.2 对象...
  • qq_30159243
  • qq_30159243
  • 2018-04-12 13:22:24
  • 15
收藏助手
不良信息举报
您举报文章:软件设计笔记(六)- 面向对象程序设计 - 4
举报原因:
原因补充:

(最多只允许输入30个字)