1. Advanced Object - Oriented Concepts
  2. Methods
    1. Represent behaviors, are used to perform operations or other actions.
    2. When is defined as public, other objects access it.
  3. Modeling Tools
    1. Provide mechanism to create and manipulate class diagrams.
  4. UML class Diagrams
    1. Is defined by three separate sections: ~ The name itself ~The data (attributes) ~Behaviors (methods)
  5. Messages
    1. Are the communication mechanism between objects.
  6. Program
    1. A collection of objects.
  7. Classes
    1. Characteristics of objects.
    2. Are pieces of code.
    3. The data of a class is represented by attributes,
  8. Concepts
  9. OOP
    1. The attributes and behaviors are contained within a single object
  10. Procedural
    1. The attributes and behaviors are normally separated.
  11. Design
  12. Difference
  13. Procedural vs OOP
  14. Object
    1. Is an entity that contains both data and behaviors.
    2. Are the building blocks of an OO program.
  15. Attibutes
    1. The state of the object.
    2. Be declared as private.
    3. Are never part of the interface.
  16. Behaviors
    1. Are contained in methods.
    2. Represents what the object can do.
  17. Getters and Setters
    1. Controlled access to an object's data.
  18. Introduction to Object - Oriented Concepts
  19. Encapsulation
    1. Is defined by the fact that objects contain both the attributes and behaviors.
  20. Fundamental Concepts
  21. Composition
    1. It is natural to think of objects as conaining other objects.
    2. Objects are often built, or composed, from other objects.
  22. Polymorphism
    1. It is often cited separately as one of the most powerful advantages to OO technologies.
  23. Constructor
    1. As the entry point for the class.
    2. Perform initializations and start-up tasks.
      1. STACK. is a data structure that is a last-in, first-out system.
  24. Inheritance
    1. Allows a class to inherit the attributes and methods of another class.
    2. Code reuse.
  25. Subclass
    1. Child class or derived class, is an extension of the superclass.
  26. Superclass
    1. Parent class or base class, contains all the attributes and behaviors that are common to classes that inherit from it.
  27. How to Think in Terms of objects
  28. Providing the Absolute minimal user interface possible
  29. Rules
    1. Give the users only what they absolutely need.
    2. Public interfaces define what the users can access.
    3. To design classes from a user's perspective and not from an information system viewpoint.
    4. Designing a class that you go over the requirements an the design with people who will actually use it.
  30. Abstract thinking when designing interfaces
    1. A highly abstract interface is more useful than a highly concrete interface.
    2. It is possible to write a very useful, concrete class that is not at all reusable.
  31. Difference between the Interface and Implementation
  32. Implementation
    1. Details are hidden from the user.
  33. Interface
    1. Are only the services the end user needs are presented.
  34. Show?
  35. Identifying the Implementation
    1. The class is designed and all the methods required to perate the class properly are in place,.
    2. Contains the code that represents that state of an object.
  36. Determining the Users
    1. who are the users?
    2. Consider that users. so the interface is realistic and reality usable.
  37. Object Behavior
    1. Begin identifying the purpose of each object and what it must do to perform properly.
  38. Environmental Constraints
    1. Imposes limitations on what an object can do.
  39. Identifying the Public Interfaces
    1. With all the information gathered about the users, the object behaviors, and the environments you need to determine the public interfaces for each user object.
  40. Constructors
    1. Are methods that share the same name as the class.
    2. The object is initialized in the constructor.
  41. When is a constructor called?
    1. When a new object is created, one of the first things that happens is that the constructor is called.
  42. Initializing Attributes
    1. The initialization is often used for initialization purposes. Is a common function performed within a constructors.
  43. The default Constructor
    1. One constructor always exists,
    2. If you do not provide a constructor, the system will provide a default constructor for you.
  44. What's inside a constructor?
    1. Code included inside a constructor should set the newly created object to its initial, stable, safe state.
    2. For example: A count.
  45. Providing a Constructor
    1. The default constructor provided by the compiler, for documentation and maintenance purposes.
  46. Using Multiple Constructors
    1. An object can be constructed in more than one way, so, you need to provide more than one constructos.
    2. When in the parameters declared the methods is called Overloading Methods.
  47. Overloading Methods
  48. Signatures
  49. Using UML to Model Classes
  50. No return type
  51. How Superclass is Constructed
  52. Operator Overloading
    1. You to change the meaning of an operator.
  53. Multiple Inheritance
    1. Allows a class to inherit from more than one class.
    2. Can significantly increase the complexity of a system.
    3. Can even solve some problems quite elegantly.
  54. Ignoring the Problem
    1. Simply ignoring a potential problem is a recipe for disaster.
  55. Throwing an Exception
    1. The exceptions are unexpected events that occur within a system.
    2. This solves the problem of trying to figure out where the problem started and unwinding the code to the proper point.
  56. The design of Constructors
    1. It is good practice to identify a stable state for all attributes and then initialize them to this stable state in the constructor
    2. Initializing to zero is not always the best policy.
  57. Error Handling
  58. Checking for Problems and Aborting the Application
    1. If you choose to check for potential problems and abort the application when a problem is detected, the application can display a message indicating that a problem exists.
  59. Checking for Problems and Attempting to Recover
    1. Checking for potential problems, catching the mistake, and attempting to recover is a far superior solution than simply checking for problems and aborting.
  60. The importance of Scope
    1. Multiple objects can be instantiated from a single class. Each of these objects has a unique identity and state.
  61. Interfaces
    1. The fundamental means of communication between objects.
    2. Describe how users of the class interact with the class.
    3. Only the public attributes and methods are considered the interface.
  62. Object Persistence
    1. Saving the state of an object so that it can be restores and used at a later time.
  63. Types of attributes
  64. Class Attributes
    1. Be declaring count as static, this attribute is allocated a single piece of memory for all object instantiated from the class.
  65. Object Attributes
    1. An attribute must be shared by several methods within the same object.
  66. Local Attributes
    1. Local attributes are owned by a specific method.
  67. String Concatenation
    1. Occurs when two separate string are combined to create a new, single string.
  68. The Anatomy of a Class
  69. The Name of the Class
    1. Identify the class itself.
    2. In java the public class name must be the same as the filename.
  70. Comments
    1. They are vital to understanding the function of a class.
  71. Attributes
    1. Represent the state of the object because they store the information about the object.
    2. Is also private so that other objects cannot access ir directly.
  72. Accessors
    1. How is necessary inspect the class's attribute, there are many times when an object needs to access another object's attributes.
  73. Public Interface Methods
    1. Constructors ant the accessor methods are declared as public and are part of the public interface
  74. Constructors
    1. The are constructors because they have the same name as the class
    2. Two constructors
      1. Default constructor
        1. It is a constructor with no arguments.
          1. Is included only if you provide no constructors in your code.
      2. Provides a way for the user of the class
    3. Is always a good idea to initialize in the constructors.
  75. Private Implementation Methods
    1. Is private when is is common for methods in a class to bi hidden from other classes.
    2. Are not accessible by other classes.