Basics of object-oriented programming. Classes. Access modifiers, inheritance. Nested classes in Java. Polymorphism. Abstractions and interfaces of Java Core: Package java.lang Class Object and redefinition of its method. Metadata and reflection. Classes System and Math. Package java.util