Non-composite user-defined data types:
A non-composite user-defined data types has a definition which does not involve a reference to another type
Composite user-defined data types:
A composite user-defined data types has a definition with reference to at least one other type
Why are user-defined data type necessary?
use will make a program more understandable and less error-prone