Pure Object Oriented Language or Complete Object Oriented Language are Fully Object Oriented Language which supports or have features which treats everything inside program as objects. Java is not 100% Object-oriented.
There are 7 qualities to be satisfied for a programming language to be pure Object Oriented:
- Encapsulation/Data Hiding
- Inheritance
- Polymorphism
- Abstraction
- All predefined types are objects (Not Supported in Java)
- All user defined types are objects
- All operations performed on objects must be only through methods exposed at the objects. (Not Supported in Java)
Three main reason are:
Primitive Data Types: it makes use of eight primitive data types such as boolean, byte, char, int, float, double, long, short which are not objects.
Static Keyword: We do not call Static Variable and Static Method using Objects.
Wrapper Class: We can communicate with objects without calling their methods. Even using Wrapper classes does not make Java a pure OOP language, as internally it will use the operations like Unboxing and Autoboxing.