About

A complex data type is a data type that shows a structure.

All complex data type are based on a class concept. They are complex because they shows a structure

A data type that is not complex is primitive (ie can be compared by a single value)

Basic Data Structure Primitive

A complex data type is created from this three basic type primitives:

and can also be composed from other complex type.

Type

Aggregate

(aggregate|compounds) types: a type that contains other type (ie elements)

Composed

Composite: that is, types built up from simpler ones

Abstract / Concrete

An abstract data type (tables, tree…) defines the behavior (method) via an interface and may be implemented in different ways. When a type is not abstract, it's know as a concrete type.

An abstract type and its implementation have a implementation relationship.