mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-24 05:14:06 -06:00
55 lines
1.5 KiB
Markdown
55 lines
1.5 KiB
Markdown
---
|
|
title: Objects
|
|
draft: true
|
|
---
|
|
# 1 Objects
|
|
an abastraction of somethin gin a problem domain, reflecting the capabilities of the system to keep information about it interact with it or both
|
|
|
|
entities in any of the software nmodelling int implmenation spaces that are enatly defined by their identity state and behaviour
|
|
|
|
similar to an entity but can also incude dynamic behaviour
|
|
|
|
oop is programming and modelling using objects
|
|
|
|
### 0.1 Objects as a Model of reality
|
|
theoreftically objects give us better omodels of reality
|
|
|
|
richer variaty of data types
|
|
- able to more closely model complexity of real world entities
|
|
- compart with most data bases (numbers, text, datess)
|
|
- objects and their operations (behaviour) are self contained
|
|
- facilitate code reuse
|
|
|
|
### 0.2 Basic features of objects
|
|
|
|
state
|
|
|
|
behaviour
|
|
|
|
### 0.3 Classes and instances
|
|
class : definition of object structure and behaviour
|
|
instance : object occurence, derived from a particular class
|
|
|
|
|
|
### 0.4 References
|
|
pointer dirctly to object _instance_
|
|
|
|
|
|
### 0.5 encapsulation
|
|
decouples internal implementation from public API
|
|
- can chagne each independently
|
|
- e.g., performance, differnt algroithms
|
|
- APi stability is important
|
|
|
|
state and behaviour separated into pubic and private
|
|
- all fields should be private
|
|
- some methods will also be private
|
|
|
|
### 0.6 Inheritance
|
|
usually via specialisation - aka subclass, subtype
|
|
|
|
subclasses inherit public state and behaviour from superclass
|
|
- can define additional properties and behaviour
|
|
|
|
enable polumorphism
|
|
- e.g., Integer and Rational both subcalss Number |