Difference between revisions of "Java/C3/Java-Interfaces/English"
Nancyvarkey (Talk | contribs) |
|||
Line 30: | Line 30: | ||
* Creating an''' Implementation classes''' and | * Creating an''' Implementation classes''' and | ||
* How to use''' Interface''' | * How to use''' Interface''' | ||
− | |||
− | |||
|- | |- | ||
Line 45: | Line 43: | ||
* '''JDK 1.7 '''and | * '''JDK 1.7 '''and | ||
* '''Eclipse 4.3.1''' | * '''Eclipse 4.3.1''' | ||
− | |||
− | |||
|- | |- | ||
Line 59: | Line 55: | ||
You should also have the knowledge of''' subclassing''' and''' Abstract classes '''in''' Java.''' | You should also have the knowledge of''' subclassing''' and''' Abstract classes '''in''' Java.''' | ||
− | If not, for relevant''' Java''' tutorials please visit the link shown. | + | If not, for relevant''' Java''' tutorials, please visit the link shown. |
|- | |- | ||
Line 74: | Line 70: | ||
− | It defines the signatures of a set of '''methods | + | It defines the signatures of a set of '''methods''' without the body. |
It is declared using the '''interface''' keyword. | It is declared using the '''interface''' keyword. | ||
− | |||
− | |||
− | |||
|- | |- | ||
Line 99: | Line 92: | ||
− | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now, right click on''' src''' folder and click''' | + | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now, right click on''' src''' folder and click''' New-'''>''' Interface'''. |
− | Type the name as''' Animal''' and press ''' | + | Type the name as''' Animal''' and press '''Enter'''. |
− | Note that''' “interface”''' keyword is used for defining an interface. | + | Note that the '''“interface”''' keyword is used for defining an '''interface'''. |
Line 112: | Line 105: | ||
|- | |- | ||
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Highlight the code | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Highlight the code | ||
− | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Here the | + | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Here the the '''interface''' name is''' Animal.''' |
Line 118: | Line 111: | ||
− | All such methods in an interface are implicitly''' public''' and''' abstract'''. | + | All such '''methods''' in an interface are implicitly''' public''' and''' abstract'''. |
− | An''' interface''' can also contain constant variable declarations. | + | An''' interface''' can also contain '''constant variable''' declarations. |
Line 134: | Line 127: | ||
|- | |- | ||
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| | ||
− | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Next we will see '''implementation class''' for an''' interface''' | + | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Next we will see '''implementation class''' for an''' interface''' with an example. |
|- | |- | ||
Line 146: | Line 139: | ||
So it must provide implementations for the methods''' talk(), see()''' and''' move().''' | So it must provide implementations for the methods''' talk(), see()''' and''' move().''' | ||
− | |||
− | |||
− | |||
|- | |- | ||
Line 159: | Line 149: | ||
Highlight the''' syntax''' and the usage of''' comma operator''' | Highlight the''' syntax''' and the usage of''' comma operator''' | ||
− | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| A class can also implement''' multiple interfaces'''. | + | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| A '''class''' can also implement''' multiple interfaces'''. |
As shown in the example, the''' class Human implements''' two''' interfaces Animal''' and''' Action.''' | As shown in the example, the''' class Human implements''' two''' interfaces Animal''' and''' Action.''' | ||
Line 175: | Line 165: | ||
The''' Animal class''' is an''' interface.''' | The''' Animal class''' is an''' interface.''' | ||
− | The''' Human class''' and''' Snake class''' are the two implementation classes. | + | The''' Human class''' and''' Snake class''' are the two '''implementation classes.''' |
The '''Human class''' provides its own different implementations for''' talk()''',''' see()''' and''' move() methods.''' | The '''Human class''' provides its own different implementations for''' talk()''',''' see()''' and''' move() methods.''' | ||
Line 183: | Line 173: | ||
|- | |- | ||
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| | ||
− | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Let us understand the usage of | + | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Let us understand the usage of '''interfaces '''with a sample program. |
|- | |- | ||
− | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| | + | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Right-click on the default package and create a''' class''' called''' Human.''' |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
Line 227: | Line 183: | ||
− | Now, to make this an implementation class of''' Animal, '''type''' implements Animal''' | + | Now, to make this an '''implementation class''' of''' Animal, '''type''' implements Animal''' |
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
Line 237: | Line 190: | ||
− | This error indicates that, we should provide an | + | This error indicates that, we should provide an '''implementation''' to the '''Animal interface.''' |
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
Line 272: | Line 222: | ||
within curly brackets type | within curly brackets type | ||
− | '''System.''out''.println''' within quotes''' I am a human I belong to''' | + | '''System.''out''.println''' within quotes''' I am a human and I belong to''' |
Line 280: | Line 230: | ||
So type | So type | ||
− | '''+ Animal.type1+''' within quotes''' family '''semicolon | + | '''+ Animal.type1+''' within quotes''' family '''semicolon. |
− | Let us now implement the see() method | + | Let us now implement the '''see() method'''. |
Line 293: | Line 243: | ||
− | We should also define the''' move()''' | + | |
+ | We should also define the''' move() method'''. | ||
Line 303: | Line 254: | ||
− | Note that the error disappears, once all the methods are implemented. | + | Note that the error disappears, once all the '''methods''' are implemented. |
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
Line 314: | Line 262: | ||
|- | |- | ||
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Show and highlight the code for Snake Class. | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Show and highlight the code for Snake Class. | ||
− | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| I have already created it in my project. | + | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| 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. | + | Please create the '''snake class''' in your '''project''' and type the following code as displayed on the screen. |
Line 344: | Line 292: | ||
} | } | ||
− | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| We can see that all the methods of the''' Animal interface talk()''' ,''' see()''' and''' move()''' are implemented inside this class. | + | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| 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”''' | Here the''' talk() method''' prints “'''I am a snake and I belong to”''' | ||
Line 359: | Line 307: | ||
Highlight the''' talk(), see()''' and''' move()''' methods of''' Snake class''' | Highlight the''' talk(), see()''' and''' move()''' methods of''' Snake class''' | ||
− | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Note that the''' Human''' | + | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Note that the''' Human class''' has its own implementations of''' talk(), see()''' and''' move() methods'''. |
− | And the''' Snake''' | + | And the''' Snake class''' has its own implementations of''' talk(), see()''' and''' move() methods'''. |
|- | |- | ||
Line 369: | Line 317: | ||
− | Inside this class we will have the''' main method''', | + | Inside this '''class''' we will have the''' main method''', |
Line 395: | Line 343: | ||
This is represented as | This is represented as | ||
+ | '''Animal h''' equals''' new Human()'''; | ||
− | ''' | + | Now we can invoke the different '''methods''' using this '''object''' as |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
'''h.talk()''' | '''h.talk()''' | ||
Line 408: | Line 353: | ||
'''h.move();''' | '''h.move();''' | ||
− | |||
− | |||
− | |||
|- | |- | ||
Line 426: | Line 368: | ||
− | Now we can invoke the different methods using this object as shown | + | Now we can invoke the different '''methods''' using this '''object''' as shown |
Line 436: | Line 378: | ||
|- | |- | ||
− | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Right click on the'' class'' Demo and then select''' Run as''' ->''' Java Application''' | + | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Right-click on the'' class'' Demo and then select''' Run as''' ->''' Java Application''' |
− | + | ||
− | + | ||
− | + | ||
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| So right click on the'' class''''' Demo''' and then select''' Run as''' ->''' Java Application''' | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| So right click on the'' class''''' Demo''' and then select''' Run as''' ->''' Java Application''' | ||
− | |||
− | |||
− | |||
|- | |- | ||
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Highlight code and the output | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Highlight code and the output | ||
− | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| We can see the output as | + | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| We can see the output as- |
Line 458: | Line 394: | ||
|- | |- | ||
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| | ||
− | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now | + | | style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now let us explore the differences between an''' interface''' and an''' abstract class'''. |
|- | |- | ||
Line 476: | Line 412: | ||
* '''main method''' | * '''main method''' | ||
− | But an''' abstract''' | + | But an''' abstract class''' can have all these inside it. |
Line 482: | Line 418: | ||
− | There are no such restrictions for an '''abstract''' | + | There are no such restrictions for an '''abstract class'''. |
|- | |- | ||
Line 497: | Line 433: | ||
* Creating an''' implementation class''' | * Creating an''' implementation class''' | ||
* Usage of''' interfaces''' | * Usage of''' interfaces''' | ||
− | |||
− | |||
|- | |- | ||
Line 507: | Line 441: | ||
− | Create an | + | Create an '''interface Vehicle''' which |
− | contains the | + | 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)''' | |
− | + | ||
− | + | ||
− | '''fill(String type,int quantity)''' | + | |
− | + | ||
− | '''pay(int quantity,int price)''' | + | |
|- | |- | ||
Line 526: | Line 456: | ||
− | Here''' brake method''' must print''' ”Car | + | Here''' brake method''' must print''' ”Car Applies Power brake”''' |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | And the '''run method''' must print''' ”Car is running on 4 wheels”''' | ||
|- | |- | ||
Line 541: | Line 464: | ||
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Similarly''' fill() method''' can print the | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Similarly''' fill() method''' can print the | ||
− | details of type and quantity of fuel | + | details of type and quantity of the fuel filled. |
− | + | ||
− | filled. | + | |
− | + | ||
For example: 10 Litres of Petrol | For example: 10 Litres of Petrol | ||
− | '''pay() method''' can be used to print | + | '''pay() method''' can be used to print price to be paid. |
− | + | ||
− | price to be paid. | + | |
− | + | ||
For example: Pay Rs. 640 | For example: Pay Rs. 640 | ||
Line 560: | Line 477: | ||
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Create another subclass''' Bike''' which | | style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Create another subclass''' Bike''' which | ||
− | again implements both the | + | again implements both the '''interfaces Vehicle''' and''' Fuel''' |
− | + | ||
− | '''Vehicle''' and''' Fuel | + | |
− | + | ||
− | + | ||
− | + | ||
− | |||
− | method can print | + | Here '''brake method''' can print ”'''Bike Applies hand brake”''' |
− | '''2 wheels”''' | + | And the '''run method''' can print “'''Bike is running on 2 wheels”''' |
− | Next implement the '''fill()''' and '''pay()''' | + | Next implement the '''fill()''' and '''pay() methods''' as explained earlier. |
Latest revision as of 13:15, 12 January 2017
Title of script: Interfaces
Author: Joms Antony
Keywords: Interface, Implementation Classes,implements keyword, video tutorial
|
|
Slide 1:
|
Welcome to the Spoken Tutorial on Java Interfaces |
Slide 2:
Learning Objectives
|
In this tutorial we will learn about:
|
Slide 3:
Software Requirements
|
For this tutorial, I am using
|
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.
|
In Eclipse IDE a project called InterfaceDemo is created,
|
Now we will switch to Eclipse and create a new project called InterfaceDemo.
|
The interface Animal is created in the src folder.
Code is copied
|
Now, right click on src folder and click New-> Interface.
|
Highlight the code | Here the the interface name is Animal.
|
Next we will see implementation class for an interface with an example. | |
Slide 9:
Implementation class: Example: |
Here Human is a class which implements the Animal interface.
|
Slide 10:
Implementing multiple interfaces Example:
|
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 implement relation.
The Animal class is an interface. The Human class and Snake class are the two implementation classes. The Human class provides its own different implementations for talk(), see() and move() methods. 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. | |
Right-click on the default package and create a class called Human.
|
Right click on the default package and create a class called Human.
|
Point to the error message | Now we can see an error comes up in the Eclipse IDE.
|
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"); }
System.out.println("I can see all colors "); }
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
+ Animal.type1+ within quotes family semicolon.
within curly brackets type System.out.println within quotes I can see all colors semicolon
We should also define the move() method.
within curly brackets type System.out.println within quotes I move by walking semicolon
|
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.
|
Highlight the code
System.out.println("I am a Snake, I belong to the "+Animal.type2+" Family"); }
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”
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.
|
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.
|
Highlight the code line by line
h.talk() h.see(); h.move();
|
Type the following code as displayed on the screen.
h.talk() h.see(); h.move(); |
Highlight the code
s.talk(); s.see(); s.move(); |
Next, we instantiate the Snake class using the Animal interface
|
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-
|
Highlight code and the output | These are printed by the talk(), see() and move() methods invoked by the Snake class object s |
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.
But an abstract class can have all these inside it.
|
This brings us to the end of this tutorial. Let us summarize. | |
Slide 10:
Summary |
In this tutorial we have learnt about
|
Slide 11:
Assignment |
As an assignment
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 interfaces Vehicle and Fuel.
And the run method must print ”Car is running on 4 wheels” |
Assignment | Similarly fill() method can print the
details of type and quantity of the fuel filled. For example: 10 Litres of Petrol
For example: Pay Rs. 640 |
Assignment | Create another subclass Bike which
again implements both the interfaces Vehicle and Fuel
And the run method can print “Bike is running on 2 wheels”
|
About Project
(retain the slide as in TEX file) |
This video at the following link summarizes the Spoken Tutorial Project.
|
About Workshops
(retain the slide as in TEX file) |
The Spoken Tutorial Project Team
• Conducts workshops using spoken tutorials and • Gives certificates on passing the online tests.
|
About NMEICT
(retain the slide as in TEX file) |
Spoken Tutorial Project is funded by NMEICT, MHRD, Government of India.
|
Contributor slide
(retain the slide as in TEX file) |
This script has been contributed by:
Deptartment of Information Technology, Amal Jyothi College of Engineering
|