Object Oriented Methodology - OOM - Part 4.PPT, Study notes for Object Oriented Programming. Indian Institute of Information Technology (IIIT)
krithika
krithika3 September 2011

Object Oriented Methodology - OOM - Part 4.PPT, Study notes for Object Oriented Programming. Indian Institute of Information Technology (IIIT)

PPT (779 KB)
58 pages
50Number of download
1000+Number of visits
100%on 1 votesNumber of votes
Description
This document about  Object Oriented Methodology, C++, Java & C #, OOM design issues, Simple Class Example, The three principles of OOP, Inheritance .
20points
Download points needed to download
this document
Download the document
Preview3 pages / 58
This is only a preview
3 shown on 58 pages
Download the document
This is only a preview
3 shown on 58 pages
Download the document
This is only a preview
3 shown on 58 pages
Download the document
This is only a preview
3 shown on 58 pages
Download the document
No Slide Title

1

Object Oriented Methodology

Prof.Dr. O.P.Vyas3.2Data Mining

2

OOM About OOP :

Procedure Oriented Vs. Object Oriented OOP Concepts

Objects & Classes Writing a Class & instantiating Objects in

Java  Problem solving in OOP methodology

OOPS Characteristics: Invoking Methods, Inheritance: Making use of Inheritance.

Super & Final method

Implementation issues in Java Organizing and Using Classes in Java

Java Features for OOPS Java Package J2SE

Prof.Dr. O.P.Vyas3.3Data Mining

The final Keyword

 The final keyword is used for creating constant variables. A final  variable cannot be changed after it has been assigned a value.

 Now that we have seen inheritance and method overriding, the  other two uses of the final keyword can be : 

Final class. A class can be declared final. A final class  cannot be subclassed.

Final method. A method can be declared final. A final  method cannot be overridden.

 Several of the classes in the Java API are declared final. For  example, the String class is final, so you cannot write a class  that extends String.

3

Prof.Dr. O.P.Vyas3.4Data Mining

Final 

 The final keyword appears before the class keyword when  declaring a final class. For example:

public final class Hourly extends Employee

{

//Class definition...

}  A compiler error is generated if you try to write a class that 

subclasses Hourly. The following class declaration will not compile:

public class PartTime extends Hourly //error!

{

//Class definition...

}

4

Prof.Dr. O.P.Vyas3.5Data Mining

final Methods

When a child class overrides a method in the parent class,  the overridden method is essentially hidden. 

The only way the parent method can be invoked is if the  child method explicitly invokes it. If you write a method with  important behavior that you do not want a child class to  override, you can declare the method final.

 A final method cannot be overridden by a child class. The getClass(), wait(), and notify() methods of the Object 

class are declared final. Their implementations are essential  for the proper behavior of an object, and these methods  cannot be overridden by any class.

5

Prof.Dr. O.P.Vyas3.6Data Mining

The Instantiation Process

A child object is an extension of its parent. When a child  class is instantiated, the parent class object needs to be  constructed first. 

More specifically, a constructor in a parent class must execute 

before any constructor in the child class executes.

In addition, if the child class has a grandparent, the  grandparent object needs to be constructed first. This  process continues up the tree.

6

Prof.Dr. O.P.Vyas3.7Data Mining

Instantiation

 When an object is instantiated, the sequence of events occurs:

1. The new operator invokes a constructor in the child  class.

2. The child class may use the this keyword to invoke  another constructor in the child class. Eventually, a  constructor in the child class will be invoked that does not  have this() as its first line of code.

3. Before any statements in the child constructor execute,  a parent class constructor must be invoked. 

This is done using the super keyword. If a constructor does  not explicitly make a call using super, the compiler will call  super() with empty parentheses, thereby invoking the no­ argument parent class constructor.

7

Prof.Dr. O.P.Vyas3.8Data Mining

Instantiation

4. If the parent class is also a child of another class, the parent  class constructor must invoke a constructor in its parent before  executing any statements. Again, this is done using the super  keyword.

5. This process continues until we reach the top of the  hierarchy tree, which must be the Object class.

6. The constructor in the Object class executes, then the flow  of control returns to the constructor in the class just below  Object in the inheritance hierarchy tree.

7. The constructors execute their way down the hierarchy tree.  The last constructor to execute is actually the one that was  invoked first in Step 1.

8

Prof.Dr. O.P.Vyas3.9Data Mining

public class Television

{

public int channel, volume;

public Television()

{

this(4,5);

System.out.println(“Inside  Television()”);

}

public Television(int c, int v)

{

System.out.println(“Inside  Television(int, int)”);

channel = c;

volume = v;

}

}

public class BigScreenTV extends  Television

{

public String aspectRatio;

public short size;

public BigScreenTV()

{

super();

aspectRatio = “unknown”;

size = 40;

System.out.println(“Inside  BigScreenTV()”);

}

}

9

Prof.Dr. O.P.Vyas3.10Data Mining

 Notice that the BigScreenTV constructor explicitly invokes the no­ argument constructor in Television using the statement:

super(); The following ConstructorDemo program instantiates a BigScreenTV 

object. Try to determine the output, 

public class ConstructorDemo

{

public static void main(String [] args)

{

System.out.println(“Constructing a big screen TV”);

BigScreenTV tv = new BigScreenTV();

System.out.println(“Done constructing TV”);

}

}

10

Prof.Dr. O.P.Vyas3.11Data Mining

11

Within main() of ConstructorDemo, we instantiate a  BigScreenTV object

This statement invokes the no­argument constructor  in the BigScreenTV class. 

The constructor in BigScreenTV invokes the no­ argument constructor in Television. 

The no­argument Television constructor invokes the  other Television constructor, which does not have a  this() or super() statement. 

Therefore, the compiler added super(), causing the no­ argument constructor in Object to be invoked.

Instantiation

Prof.Dr. O.P.Vyas3.12Data Mining

When the Object constructor is finished, control returns to  the Television constructor with two arguments, which  executes and outputs:

Inside Television(int, int) Control then returns to the no­argument Television 

constructor, which executes and outputs:

Inside Television() Control then returns to the BigScreenTV constructor, which 

executes last and outputs:

Inside BigScreenTV() After all three constructors are done, the object is 

instantiated and the new operator returns a reference to the  new BigScreenTV object. 

The entire output of the ConstructorDemo program is  shown in Figure 

12

Prof.Dr. O.P.Vyas3.13Data Mining

Object Oriented Methodology Objects & Classes in Java Lab. Exercises

Objective : Writing a Class in Java 

 Instantiating an Object : Understanding the Methods,  references etc.

 Inheritance: Characteristics & Implementation

Method Overloading & Overriding

Java Features for OOM: Organizing Classes  How to Add class to a package  Java Platform & OOM  Packages in Java Platform

13

Prof.Dr. O.P.Vyas3.14Data Mining

Organizing Classes in OOPS As we have seen that we create Java Class for 

problem solving in OOM. As for each and every component , there is a Class 

written, consequently we are having large number of  Classes.

We are using various OOM characteristics like  Inheritance etc. for making use of Class  Characteristics. 

For the efficient handling of the Classes, for re­ usability of some classes( which are required very  often in many problem solving) and also to use many  inherent Core / Foundation Classes, we need to  Organize these Classes with useful mechanism. 

14

Prof.Dr. O.P.Vyas3.15Data Mining

Package package is a grouping of related types providing access protection 

and name space management. The types are often referred to here simply as classes and 

interfaces. In general, a package can contain the other kinds of  types also;. Enumerated types , Annotations 

An interface is a collection of abstract methods that are  implemented by a class. A class uses the implements keyword to  implement an interface.

To make types easier to find and use, to avoid naming conflicts, and  to control access, programmers bundle groups of related types into  packages.

Conceptually you can think of packages as being similar to different  folders on your computer. 

Because software written in the Java programming language can be  composed of hundreds or thousands of individual classes, it makes  sense to keep things organized by placing related classes and  interfaces into packages. 

15

Prof.Dr. O.P.Vyas3.16Data Mining

Package Every class belongs to a package. Packages have two basic 

purposes:

1) Packages provide a mechanism for organizing classes.

2) Packages provide a namespace for the classes within the  package.

When developing a Java program, you put classes that go  together in the same package.

Java packages can be stored in compressed files called JAR  files,  allowing classes to download faster as a group rather  than one at a time. 

Programmers also typically use packages to organize classes  belonging to the same category or providing similar  functionality.

Classes in the same package can access each other's  package­access members. 

16

Prof.Dr. O.P.Vyas3.17Data Mining

Adding a Class to a Package

A class is added to a package using the package keyword.  The package statement must be the first statement in your  source code 

For example, suppose we wanted to create a package named  payroll for the Employee, Salary, and Hourly classes used in  our program to pay employees.

The package declaration must appear first in the statements  in the Employee source code. 

The class will not compile if an attempt is made to put any  statement besides comments before the package declaration.

17

Prof.Dr. O.P.Vyas3.18Data Mining

package payroll;

public class Employee

{ public String name;

public String address;

public int SSN;

public int number;

public Employee(String name, String address, int SSN, int number)

{

System.out.println(“Constructing an Employee”);

this.name = name;

this.address = address;

this.SSN = SSN;

this.number = number;

}

public void mailCheck()

{

System.out.println(“Mailing a check to “ + this.name

+ “ “ + this.address);

}

}

18

Prof.Dr. O.P.Vyas3.19Data Mining

Adding a Class to Package  If we want Salary and Hourly in the payroll package also, we simply add 

the package statement to their class definition as well. For example, the  Salary class would look similar to:

package payroll;

public class Salary extends Employee

{

//Salary definition...

}

and the Hourly class would look similar to:

package payroll;

public class Hourly extends Employee

{

//Hourly definition...

}

19

Prof.Dr. O.P.Vyas3.20Data Mining

The Namespace Created by Packages

Packages create a namespace for all classes. If a class is in a  package, the name of the package becomes a part of the  name of the class. The package name is prefixed to the name  of your class, separated by the dot operator.

For example, the Employee class is declared in the payroll  package. The Employee class is now referred to:

payroll.Employee The Employee class can no longer be referred to as simply 

Employee. The package name payroll must be used by any  other class outside of the payroll package that wants to use  the Employee class. Similarly, the Salary and Hourly classes  become:

payroll.Salary payroll.Hourly

20

Prof.Dr. O.P.Vyas3.21Data Mining

Naming of Packages in Java The Java naming convention recommends package names 

be all lowercase, unless an acronym is part of the name. A  package name will be typically multiple terms, and each  term is separated by the dot operator. 

Examples include java.lang, java.awt.event,  org.omg.CORBA, and org.omg.stub .java.rmi.

Classes in the same package do not need to use the  package name when referring to each other. This is one of  the benefits of putting classes that go together in the same  package.

 For example, the Salary class extends Employee and can  use the name Employee instead of payroll.Employee .

21

Prof.Dr. O.P.Vyas3.22Data Mining

Naming Packages

Packages create a namespace, with the name of the package  becoming the prefix for the name of the class. 

The purpose of a namespace is to avoid naming conflicts where  two classes have the same name.

Suppose that you write a Vehicle class, and I write a Vehicle  class. 

How can we tell them apart? That’s easy if they are in two  different packages. For example, I can put my Vehicle class in a  package named rich:

package rich;

public class Vehicle

{

//My vehicle class

}

22

Prof.Dr. O.P.Vyas3.23Data Mining

Your Vehicle class can be in a different package:

package student;

public class Vehicle

{

//Your vehicle class

} The name of my Vehicle class is now rich.Vehicle, and the name of your 

Vehicle class is now student.Vehicle. The following statements  instantiate one of each type:

rich.Vehicle mine = new rich.Vehicle();

student.Vehicle yours = new student.Vehicle();

Of course, this works fine if you and I use different package names; but  what if we both choose rich for the package name?

 We are with the naming conflict because both of our classes would be  named rich.Vehicle.

In the world of Java development companies use a universally agreed­ upon naming convention of including the company’s Web site URL as  part of the package name.

23

Prof.Dr. O.P.Vyas3.24Data Mining

For example, Sun Microsystem’sWeb site URL is www.sun.com. If you  write a Vehicle class as an employee of Sun, your package name would  be similar to:

package com.sun.rich;

public class Vehicle

{

//Your Vehicle class

}  If u  work for a company whose Web site is www.javalicense.com. The 

package name for my Vehicle class would include com.javalicense:

public class Vehicle

{

//My vehicle class

}

24

Prof.Dr. O.P.Vyas3.25Data Mining

Even though we both picked rich as part of our package  name, the two Vehicle classes no longer have a naming  conflict. One of the classes is named  com.javalicense.rich.Vehicle, and the other is named  com.sun.rich.Vehicle.

Many of the packages in the J2SE begin with java, to denote  their role in the standard Java language. 

Most of the packages in the J2EE APIs begin with javax in  the their name, such as javax.servlet and javax.ejb. 

The “x” is for extension, denoting that the package is an  extension of the Java language.

25

comments (0)
no comments were posted
be the one to write the first!
This is only a preview
3 shown on 58 pages
Download the document