Java/C3/Java-Interfaces/English

From Script | Spoken-Tutorial
Revision as of 16:12, 29 December 2015 by Nancyvarkey (Talk | contribs)

Jump to: navigation, search

Title of script: Java Interfaces

Author: Joms Antony

Keywords: Java Interfaces, Implementation Classes, implements keyword, abstract method, video tutorial, Java tutorial


Visual Cue
Narration
Slide 1: Welcome to the Spoken Tutorial on Java Interfaces.
Slide 2:

Learning Objectives


In this tutorial we will learn about:
  • Creating an interface
  • Creating an Implementation class and
  • Usage of Interfaces
Slide 3:

Software Requirements


For this tutorial, I am using
  • Ubuntu 12.04
  • JDK 1.7 and
  • Eclipse 4.3.1
Slide 4:

Prerequisites


To follow this tutorial, you should have knowledge of basics of Java and Eclipse IDE.

You should also have the knowledge of subclassing and Abstract classes in Java.

If not, for relevant Java tutorials, please visit the link shown.

First let's understand what is an interface.
Slide 5:

What is an interface?

An Interface contains a set of abstract methods and static data members.


It defines the signatures of a set of methods, without the body.


It is declared using the interface keyword.

Slide 6:

Implementing the interface


A class can implement an interface using the implements keyword.


A class can implement more than one interface.


All the abstract methods defined in the interface or interfaces must be implemented in such classes.

Now let us explore the differences between an interface and an abstract class.
Slide 7:

Interface Vs Abstract Classes

All the methods in an interface should be abstract.


Within interface there should not be any

  • constructors
  • concrete methods
  • static methods and
  • main method

But an abstract class can have all these inside it.


The variables in an interface should be static and final.


There are no such restrictions for an abstract class.

Next we will see an example for an interface.
Slide 8:

Interface:

Example:


Highlight the methods


Here the interface name is Animal.


It contains three abstract methods talk(), see() and move().


All such methods in an interface are implicitly public and abstract.


An interface can also contain constant variable declarations.


Here, the constant string value “Mammal” is assigned to the variable “type1”.


And “Reptiles” is assigned to the variable “type2”.


All constant values defined in an interface are implicitly public, static and final.

Next, we will see how to create an implementation class for an interface with an example.
Slide 9:

Implementation class:

Example:

Here Human is a class which implements the Animal interface.


So it must provide implementations for the methods talk(), see() and move().

Slide 10:

Implementing multiple interfaces

Example:


Highlight the syntax and the usage of comma operator

A class can also implement multiple interfaces.

As shown in the example, the class Human implements two interfaces Animal and Action.

Note that a comma operator used in the syntax is to identify the different interfaces.

Now this class should provide implementations to all the abstract methods in both Animal and Action interfaces.

Slide 11:

Interface Usage - Example

The figure here represents an implements relation.

The Animal class is an interface.

The Human and Snake classes are the two implementation classes.

The Human class provides its own different implementations for talk(), see() and move() methods.

And the Snake class provides its own different implementations for talk(), see() and move() methods.

Let us understand the usage of interfaces with a sample program.
In Ecilpse IDE a project called InterfaceDemo is created,


Now we will switch to Eclipse and create a new project called InterfaceDemo.


Here we will create the necessary classes and interface to demonstrate the usage of interfaces.

The interface Animal is created in the src folder.

Code is copied

Now, right click on src folder and click new-> interface.


Type the name as Animal and press Enter.


Note that the “interface” keyword is used for defining an interface.


Now type the code as displayed on the screen.

Next let us create the implementation classes.
Right click on the default package and create a class called Human.


Type implements Animal

Right click on the default package and create a class called Human.


Now to make this an implementation class of Animal, type implements Animal.

Point to the error message Now we can see, an error comes up in the Eclipse IDE.


This error indicates that, we should provide an implementations to the Animal interface.

Let us see how to rectify this error.
public void talk(){

System.out.println("I am a Human, I belong to the "+Animal.type1+" Family");

}


public void see(){

System.out.println("I CAN SEE ALL COLORS ");

}


public void move(){

System.out.println("I MOVE BY WALKING");

}

Now let us define the methods talk(), see() and move().

So type public void talk( )


Within curly brackets type

System.out.println within quotes I am a human and I belong to


Now we can use the value of the static, final variable type1 declared in the Animal interface


So type + Animal.type1+ within quotes family semicolon.


Let us now implement the see() method


So type public void see( )


Within curly brackets type

System.out.println within quotes I can see all colors semicolon


We should also define the move() method


So type public void move( )


Within curly brackets type

System.out.println within quotes I move by walking semicolon


Note that the error disappears, once all the methods are implemented.

Next we will see how to define the Snake class.
Show and highlight the code for Snake Class. I have already created it in my project.


Please create the snake class in your project and type the following code as displayed on the screen.


Now let us go through the code.

Highlight the code


public void talk(){

System.out.println("I am a Snake, I belong to the "+Animal.type2+" Family");

}


public void see(){

System.out.println("I CAN SEE ONLY IN BLACK AND WHITE");

}

public void move(){

System.out.println("I MOVE BY CRAWLING");

}

We can see that all the methods of the Animal interface talk(), see() and move() are implemented inside this class.


Here the talk() method prints “I am a snake and I belong to


Then the value of Animal.type2 is to be printed and then “family”


Here the see() method prints “I can see only in black and white”


The move() method prints "I move by crawling"

Highlight the talk(), see() and move() methods of Human class

Highlight the talk(), see() and move() methods of Snake class

Note that the Human class has its own implementations of talk(), see() and move() methods.


And the Snake class has its own implementations of talk(), see() and move() methods.

click new-> class and then type name as Demo. Now right click on the default package click new-> class and then type name as Demo.


Inside this class, we will have the main method,


So type main and then press ctrl+space to generate the main method.

Highlight the code line by line


Highlight the second line


Animal h=new Human();

h.talk()

h.see();

h.move();


Type the following code as displayed on the screen.


In this line, we instantiate the Human class using the Animal interface.


This is represented as Animal h equals new Human();


Now we can invoke the different methods using this object as


h.talk()

h.see();

h.move();

Highlight the code


Animal s =new Snake();

s.talk();

s.see();

s.move();

Next, we instantiate the Snake class using the Animal interface.


This is represented as Animal s equals new Snake()


Now we can invoke the different methods using this object as


s.talk();

s.see();

s.move();

Now let us run this Demo program.
Right click on the class Demo and then select Run as -> Java Application So right click on the class Demo and then select Run as -> Java Application.
Highlight code and the output We can see the output as


I am a human and I belong to Mammal family


I can see all colors and


I move by walking


These are printed by the talk(), see() and move() methods invoked using the Human class object h.

Highlight code and the output We can also see in the output


I am a snake and I belong to Reptiles family


I can see only in black and white


and I move by crawling


These are printed by the talk(), see() and move() methods invoked using the Snake class object s.

This brings us to the end of this tutorial. Let us summarize.
Slide 10:

Summary

In this tutorial we have learnt about
  • Creating an Interface
  • Creating an implementation class and
  • Usage of interfaces
Slide 11:

Assignment

As an assignment


Create an interface Vehicle which contains the methods brake() and run().


Create another interface Fuel which contains the following methods.


fill(String type, int quantity)

pay(int quantity, int price)

Assignment Create a subclass Car which implements both the interfaces Vehicle and Fuel.


Here brake method should print ”Car, Applies Power brake” and the run method should print ”Car is running on 4 wheels”.

Assignment Similarly fill() method can print the type and quantity of the fuel filled.


For example: 10 Litres of Petrol


pay() method can be used to print the price to be paid.

For example: Pay Rs.640

Assignment Create another subclass Bike which again implements both the interfaces-

Vehicle and Fuel.


Here brake method can print ”Bike, Applies hand brake” and the run method can print “Bike is running on 2 wheels”.

Next, implement the fill() and pay() methods as explained earlier.


Finally, create a Demo class containing the main method to verify the results.

About Project


The video at the following link summarizes the Spoken Tutorial Project.


Please download and watch it.

About Workshops


The Spoken Tutorial Project Team
  • Conducts workshops using spoken tutorials and
  • Gives certificates on passing the online tests


For more details, please write to us.

About NMEICT


Spoken Tutorial Project is funded by NMEICT, MHRD, Government of India.


More information on this Mission is available at the link shown.

Contributor slide


This script has been contributed by:

Department of Information Technology, Amal Jyothi College of Engineering.


This is Priya from IIT Bombay signing off. Thank you for joining.

Contributors and Content Editors

Nancyvarkey, Priyacst