are used in ways similar to primitive types you canfor exampledefine class for time (with fields for hoursminutesseconds) class for fractions (with numerator and denominator fields)and class for extra-long numbers (characters in string represent the digitsall these can be added and subtracted like int and doubleexcept that in java you must use methods with functional notation like add(and sub(rather than operators like and the phrase "data typeseems to fit naturally with such quantity-oriented classes howeverit is also applied to classes that don' have this quantitative aspect in factany class represents data typein the sense that class comprises data (fieldsand permissible operations on that data (methodsby extensionwhen data storage structure like stack or queue is represented by classit too can be referred to as data type stack is different in many ways from an intbut they are both defined as certain arrangement of data and set of operations on that data abstraction the word abstract means "considered apart from detailed specifications or implementation an abstraction is the essence or important characteristics of something the office of presidentfor exampleis an abstractionconsidered apart from the individual who happens to occupy that office the powers and responsibilities of the office remain the samewhile individual office-holders come and go in object-oriented programmingthenan abstract data type is class considered without regard to its implementation it' description of the data in the class (fields) list of operations (methodsthat can be carried out on that dataand instructions on how to use these operations specifically excluded are the details of how the methods carry out their tasks as class useryou're told what methods to callhow to call themand the results you can expectbut not how they work the meaning of abstract data type is further extended when it' applied to data structures like stacks and queues as with any classit means the data and the operations that can be performed on itbut in this context even the fundamentals of how the data is stored become invisible to the user users not only don' know how the methods workthey also don' know what structure is used to store the data for the stackthe user knows that push(and pop((and perhaps few other methodsexist and how they work the user doesn' (at least not usuallyneed to know how push(and pop(workor whether data is stored in an arraya linked listor some other data structure like tree the interface an adt specification is often called an interface it' what the class user seesusually its public methods in stack classpush(and pop(and similar methods form the interface adt lists now that we know what an abstract data type iswe can mention another onethe list list (sometimes called linear listis group of items arranged in linear order that isthey're lined up in certain waylike beads on string or houses on street lists support certain fundamental operations you can insert an itemdelete an itemand usually read an item from specified location (the third itemsaydon' confuse the adt list with the linked list we've been discussing in this list