540 likes | 546 Views
Classes and Objects: A Deeper Loop. Ch 10. Object-Oriented Programming. Object Abstraction of a read-world item (e.g., car) Has attributes (e.g., size, shape, color) and behaviors (e.g., accelerates, brakes, turns) Class Blueprint for instantiating (creating) objects
E N D
Object-Oriented Programming • Object • Abstraction of a read-world item (e.g., car) • Has attributes (e.g., size, shape, color) and behaviors (e.g., accelerates, brakes, turns) • Class • Blueprint for instantiating (creating) objects • Many objects may belong to the same class • User-defined, non-built-in type
The OOP Trilogy • Three important OO principles • Encapsulation • Inheritance • Polymorphism
Encapsulation • Attributes & behaviors encapsulated (wrapped) into objects • Information hiding • Implementation details hidden within objects • You can drive a car without knowing details of how engine, transmission really work • Modularization!
Method • Implements a behavior of object • E.g., car accelerates, brakes, turns • Describes the mechanisms that actually perform its tasks • Hides from its user the complex tasks that it performs • Method call by its user tells method to perform its task
Instance Variable & Property • Together, represent an attribute of object • E.g., size, shape, color of a car • Instance variable • Actually stores an attribute • May not be directly accessible (information hiding) • Property • Provides indirect, controlled (get and set) access to an attribute
Constructor • Initializes an object of a class • Automatically called when object is instantiated (keyword new) • Has the same name as the class • Has no return type and is not void
Controlling Access to Members • A class’s public interface • public methods are services provided to the class’s clients • A class’s implementation details • private variables and methods are not accessible to the class’s clients • Interfaces change less frequently than implementations
The this Reference • Allows an object to access a reference to itself • Non-static methods implicitly use it when referring to instance variables and other methods • Can be explicitly used too • Useful when instance variables are shadowed by local variables or method parameters
Overloaded Constructors • Provide multiple constructors with different parameter lists • The this reference can be used to invoke another constructor • No-argument constructor • A constructor invoked without arguments
Default, Parameterless Constructor • Every class must have at least one constructor • If no constructor is declared, the compiler will create a default, paremeterless constructor • If constructors are declared, the compiler will not create a default constructor • Constructor with default parameters may also be parameterless constructor • Can call the constructor without arguments
Composition • A class can have references to objects of other classes as members • Sometimes referred to as a has-a relationship
static Variable • Represents class-wide information • Shared by all objects of the class • Accessible even when no object of the class exists • Can be accessed with the class or an object
Read-only, Derived Properties • Read-only (write-only) property • Property with only a get (set) method • Derived property • Property that is derived based on the values of other properties