`
jsbylibo
  • 浏览: 12028 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

关于类和对象(待更新)

阅读更多

面向对象思维:

       首先考虑有哪些类哪些对象;其次考虑每种类和每种对象有哪些属性和方法;再考虑类和类之间存在什么样的关系。

1.关于对象:
  1)万物皆对象;
  2)程序是对象的集合,他们通过发送消息来告知彼此所要做的;
  3)每个对象都有自己的由其它对象所构成的存储;
  4)每个对象都有其类型;
  5)某一特定类型的所有对象都可以接收同样的消息。

对象可以看成是静态属性(成员变量)和动态属性(方法)的封装体。

 2.每个对象都有一个接口

     每个对象都只能满足某些请求,这些请求由对象的接口所定义,决定接口的便是类型。

      接口确定了对某一特定对象所能发出的请求。在类型中每一个可能的请求都有一个方法与之相关联,当对象发送请求时,与之相关联的方法就会被调用。(此过程通常概括为:向某对象发送消息或产生请求)。

3.类(对象)之间的关系

      关联关系:学校--老师--学生;

      继承关系(一般和特殊):**是一种**;

      聚合关系(整体和部分):**是**的一部分;例如:球队(教练、队员)----聚集(关系较松),人(头、手、脚)----组合(密不可分);

      实现关系:接口和实现类;

      多态:

      

4.关于引用(一小块内存指向一大块内存)

      引用类型(new):除了基础类型(4类8种intbyteshortlong,floatdouble,char,boolean)外的都是引用类型。引用类型占两块内存。堆内存(动态分配内存)里放的是new出来的。

String s;//内存中分配一块区域为空

s=new String("1111");//new出一个对象放堆里,不用了当垃圾清理

       如何在内存中区分类和对象?

       1.类是静态的概念,代码区;

       2.对象是new出来的,位于堆内存,类的每个成员变量在不同的对象中都有不同的值(除了静态变量),而方法只有一份,执行的时候才会占用内存。

new 

分享到:
评论

相关推荐

    易康eCognition面向对象分类详细步骤

    它通过将影像中的像素分割成具有相似光谱和空间特征的对象,再对这些对象进行分类,从而达到识别地物类型的目的。本文将详细介绍易康eCognition软件在面向对象分类中的详细步骤,并解释在每个步骤中所涉及的关键概念...

    Handler对象中使用匿名内部类或非静态内部类正确地释放消息避免内存泄漏或增加Native内存

    综上所述,避免Handler对象中的内存泄漏和Native内存增加,关键在于正确处理内部类引用、及时清理消息队列以及有效利用`DiffUtil`优化`RecyclerView`更新。遵循这些最佳实践,可以显著提升应用的性能和稳定性。

    Java调用c++类对象

    Java调用C++类对象是一种跨语言交互技术,主要用于利用Java的平台独立性和C++的高性能。这种技术通常依赖于Java Native Interface (JNI),它允许Java代码直接调用本地(如C++)代码,反之亦然。下面我们将深入探讨...

    java类复制一个持久化对象

    ` 这一行获取了待复制对象的类类型,为后续的操作提供了基础。 2. **创建新实例**:`objectCopy = classType.getConstructor(new Class[]{}).newInstance(new Object[]{});` 使用无参数构造函数创建了一个新的对象...

    C#面向对象的IOCP模板类

    而面向对象的IOCP模板类则是将这些抽象出来,封装在一个类中,使得开发者可以通过继承和重写特定方法来实现自己的业务逻辑。 C#的IOCP模板类通常包含以下几个核心组件: 1. **基础类**:这是IOCP模板的核心,它...

    Linux和window下的读取ini文件的类对象

    5. **写入和更新键值**:除了读取,类还应支持写入和更新键值对,如`setValue`方法,允许用户修改ini文件中的配置。 6. **处理注释**:Ini文件通常允许在行首添加`;`或`#`作为注释,IniFile类应处理这些注释,避免...

    java面向对象---宠物领养系统

    5. 类和对象的关系: 在宠物领养系统中,可能还会包含其他类,如`User`(用户)、`AdoptionCenter`(领养中心)等,它们之间存在一定的关系。用户可以申请领养宠物,领养中心则负责处理领养申请。通过定义类之间的...

    校园二手交易平台-基于UML面向对象分析与设计.docx

    【校园二手交易平台】是一个针对大学生的在线平台,旨在方便学生之间的闲置物品交易。...这个设计包括了用例分析、类的设计、对象交互的顺序、协作关系、状态转换和具体业务流程,全面展现了系统的需求和设计思路。

    nwpu面向对象实验1

    类是具有共同属性和行为的对象模板,通过封装技术将数据和操作数据的方法捆绑在一起,保护内部状态不受外部干扰。例如,我们可以创建一个`MilkProduct`类来存储牛奶的名称、价格、生产日期等属性,并提供检查保质期...

    面向对象作业5-类模板.docx

    类模板定义了一个类族,每个模板参数都代表一个待指定的数据类型或值。 #### 二、类模板的定义和实例化 类模板的基本定义格式如下: ```cpp template class ClassName { // 类成员定义 }; ``` 其中`typename T`...

    java 对象流 的用法

    4. **工具类**:Java提供了一些工具类,如`ObjectStreamClass`和`ObjectStreamConstants`,可以帮助我们获取关于对象流的更多信息,如类的序列化信息、流的协议版本等。 5. **流的组合**:对象流可以与其他类型的...

    java面向对象理解

    一旦类被建立,就可以随心所欲地创建类的任意个对象,然后去操作他们,就像它们是存在于你的待求解问题中的元素一样。这使得程序员可以更好地组织和管理代码,提高代码的可维护性和可重用性。 事实上,面向对象程序...

    面向对象的单链表,在数据结构中使用

    `remove()`则需要找到待删除节点的前一个节点,更新其指针以跳过待删除节点,最后释放待删除节点的内存。 **4. 头文件`LinkList.h`与源文件`LinkList_main.cpp`的交互** `LinkList.h`通常在`LinkList_main.cpp`中被...

    php简单的算法类

    在PHP编程中,面向对象(Object-Oriented Programming, OOP)是一种常用的设计模式,它允许我们通过类和对象来组织代码,使得程序更易于理解、维护和扩展。本资源包含两个PHP文件:arithmetic.php 和 a.php,它们...

    Java反射动态加载实例类

    1. **读取配置信息**:首先,通过`Properties`类读取配置文件(`D:\\xuliang.txt`),其中包含待加载类名、字段名、字段值和方法名等信息。 2. **加载类**:使用`Class.forName()`方法根据配置文件中的类名动态加载...

    面向对象设计任务及任务设计

    例如,在设计一个多媒体技术课程网站时,需求可能包括用户界面的友好性、视频播放的支持、互动元素如论坛或问答区域,以及后台管理功能,如用户管理和内容更新。 ### 分析与设计 #### 用例建模 用例建模是通过用...

    对象池简单Demo(资源包)

    我们可以创建一个类,包含一个List或其他集合来存储待使用的GameObject,以及一些方法来获取、归还和初始化对象。Unity还提供了一些内置的工具,如PoolManager,但通常开发者会根据项目需求定制自己的对象池系统。 ...

    面向对象分析与设计:在线购物客户订单处理的UML描述

    例如,订单可能有"待处理"、"支付中"、"已发货"和"已完成"等状态,每种状态的转换反映了订单处理的不同阶段。 综上所述,面向对象分析与设计结合UML工具,可以帮助我们清晰地理解在线购物订单处理系统的结构和行为...

Global site tag (gtag.js) - Google Analytics