Download Day 4-Concept 2-General OO Concepts

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
General OO Concepts
Objectives For Today:
• Discuss the benefits of OO Programming
• Inheritance and Aggregation
• Abstract Classes
• Encapsulation
• Introduce Visual Age for Java
General OO Concepts
• Java is an Object Oriented Language.
• What makes OO languages so appealing to developers?
• Object Oriented technology improves software development in
the following areas:
1) Code Quality
2) Maintenance
3) Application Scalability
4) Time to Market
General OO Concepts
Code Quality and Maintenance
• Code quality and maintainability improves with OO
programming because code is written inside of Classes.
• Code inside of a Class is written to undertake the tasks
that the Class is responsible for.
• So, we know exactly what that code is suppose to be
doing and how to find it quickly.
• In Java, once code is written, it can be re-used
over and over again.
• This re-use reduces the amount of code you have to write
greatly improving quality and maintainability.
General OO Concepts
Scalability and Time to Market
• Classes make up our programs, but are
completely independent of one another.
• This means that if you want to add Classes to expand
your program, you don’t have to tear apart
and change what you already have.
• You can just add additional Classes to your program.
• All these characteristics make the application development
process much faster.
OO Concepts
Inheritance
• We have already seen and created our own Classes.
• A well designed class can be used over and over again.
• In fact, it becomes a re-usable piece of code.
• The Java platform comes with a set of classes that you can
use in your programs. You have already seen a few of these
classes: String, Integer etc.
• Not only can we re-use classes, we can also build our own
classes from existing classes.
OO Concepts
Inheritance
• Creating classes from existing Classes is called Inheritance.
• When you create a Class based on another Class, the new class
becomes the sub class and the original is referred to as the
super class.
• The sub class inherits all the fields and methods of its parent.
• This allows the developer to use the existing methods and fields
and also allows him/her to build more methods and fields to make
a class more specialized.
OO Concepts
Inheritance
• For example, if you create a motor vehicle class,
car and motorcycle would be appropriate subclasses.
Motor Vehicle
Motorcycle
Car
OO Concepts
• Classes can have two kinds of relationships between them.
• The super class sub class relationship is referred to as an
is-a relationship.
ie. A car is-a motor vehicle (Inheritance)
• Classes can have fields that are in themselves objects. This is
referred to as a has-a relationship.
ie. A car has-a motor.
(Also known as Aggregation or Containment)
• Demonstrate motor vehicle diagrams
OO Concepts
Inheritance
• Creating a new class based on another class is called
extending a class.
• We implement inheritance by extending a class.
• All the fields and methods are inherited from the super class
to the subclass.
• You often add additional fields and methods to specialize the
subclass so it has the implementation you are looking for.
• We extend a Class by using the keyword extends.
OO Concepts
The Cosmic super class:
• All Classes built in Java have one common ancestor.
• The Object class found in the java.lang package is directly or
indirectly related to all Classes in the Java language.
• In Java the Object class is at the top of the class hierarchy
• All classes descend from the Class called Object.
• The java.lang package is imported by default into
all classes that you create.
OO Concepts
The Cosmic super class:
• Lets do an exercise that demonstrates Inheritance.
OO Concepts
Abstract Classes
• An abstract class is a class that can never be used to
create multiple objects.
• Do this to design a class for use only as a super class.
• Abstract classes are designed to define the behavior and
fields common to all subclasses in an inheritance hierarchy.
• We work with abstract classes through extending the class
since it cannot be instantiated.
• The keyword abstract is used to define a Class
as being abstract.
OO Concepts
Abstract Classes
• Classes are declared as being abstract as follows:
public abstract class MotorVehicle {
}
• You can also declare methods to be abstract, but only within
the confines of an abstract Class.
• Abstract methods have no implementation (code) and are
forced to be implemented by sub classes of the parent. Why?
OO Concepts
Abstract Classes
• We may have a method that we want subclasses to
inherit and implement, but we are not sure how to implement
it in the super class.
• To solve this problem define an abstract method in an
abstract class that provides no implementation and make it
abstract.
• Methods can be declared in abstract classes as follows:
public abstract class MotorVehicle {
public abstract void steer();
}
• Let’s re-visit our Motor Vehicles and explore Abstract Classes.
OO Concepts
Encapsulation
Encapsulation is a process of hiding details of an object. A
kind of protective capsule that stops direct access from
other objects. Forces access to an objects state through its
Encaps ulation
public methods.
public get X();
public int set X();
privat e int x=0;
privat e int y=0;
public get Y();
public int set Y();
OO Concepts
Encapsulation
• It is common to represent an object as a donut.
• The center of the donut contains the instance variables (fields).
• The instance variables are protected and only accessible
through the methods that the object provides.
• The methods are represented on the outer rim of the
donut surrounding the variables on the inside
OO Concepts
Encapsulation
• For your objects to be truly encapsulated, you should declare
your fields as private when creating your classes.
• Private fields can only be accessed by other objects via
methods of the Class where the fields are declared.
• This ensures that other Objects cannot manipulate these fields
directly.
• Other Objects should only be able to access these fields through
public methods defined in the class.
OO Concepts
Encapsulation Example
public class Person {
private String name;
//Accessor method used to get the name of the person
public String getName() {
return name;
}
//Mutator method used to set the name of the person.
public void setName(String aName) {
name = aName;
}
}
• Lets do an example demonstrating encapsulation
OO Concepts
• Objects communicate to one another by calling each others
methods. In the example below, the Person object is sending
a message to the Car object by calling the start method
Person Object
Send Message
Car Object
name
carMake
age
horsePower