Class versus Object
Object Real world objects shares 2 main characteristics, state and behaviour. Humans have state (name, age) and behaviour (running, sleeping). Cars have state (current speed, current gear) and behaviour (applying brake, changing gear). Software objects are conceptually similar to real-world objects: they too consist of state and related behaviour. An object stores its state in fields and exposes its behaviour through methods.
Singleton Object By defining a class as a Singleton you are changing a class into an object. Defining a class as a singleton removes the ability of the class to generate many instances of itself.
Class Class is a “template” / “blueprint” that is used to create objects. Basically, a class will consists of fields, static fields, methods, static methods and constructors. Fields are used to hold the state of the class (e.g. the name of Student object). Methods are used to represent the behaviour of the class (e.g. how a Student object is going to stand-up). Constructors is used to create a new Object as an Instance of the Class.
|Techniques: Abstraction | Aggregation versus Composition | Association versus Dependency | Coupling | Encapsulation | Information hiding | Inheritance | Multiple Inheritance | Overloading | Polymorphism
Features: Abstract class | Class versus Object | Component versus Module | Instance | Interface | Method | Package versus Namespace | Superclass | Subclass