data types created by the programmer. they have their own range (or domain) of data and their own sets of operations that may be performed on them. p 593
a data type that specifies values that can be stores and operations that can be done on the values; created by programmers
data type that specifies the values the data type can call and the operations that can be performed on the values without revealing the details of data implementation