Difference between revisions of "Java/C3/Abstract-Classes/English-timed"
From Script | Spoken-Tutorial
Sandhya.np14 (Talk | contribs) |
|||
Line 5: | Line 5: | ||
|- | |- | ||
| 00:00 | | 00:00 | ||
− | | Welcome to the Spoken Tutorial on''' Abstract Classes.''' | + | | Welcome to the '''Spoken Tutorial''' on''' Abstract Classes.''' |
|- | |- | ||
|00:05 | |00:05 | ||
− | | In this tutorial we will learn about: | + | | In this tutorial, we will learn about: * '''Abstract Methods '''and''' Concrete Methods''' |
|- | |- | ||
| 00:12 | | 00:12 | ||
− | | '''Abstract Classes '''and''' Concrete Classes '''and | + | |* '''Abstract Classes '''and''' Concrete Classes '''and |
|- | |- | ||
| 00:16 | | 00:16 | ||
− | | How to use '''Abstract Classes''' | + | |* How to use '''Abstract Classes'''. |
|- | |- | ||
| 00:18 | | 00:18 | ||
− | | For this tutorial, I am using | + | | For this tutorial, I am using: |
− | '''Ubuntu 12.04''' | + | * '''Ubuntu 12.04''' |
− | '''JDK 1.7 '''and | + | |
− | '''Eclipse''' '''4.3.1''' | + | * '''JDK 1.7 '''and |
+ | |||
+ | * '''Eclipse''' '''4.3.1''' | ||
|- | |- | ||
Line 33: | Line 35: | ||
|- | |- | ||
| 00:36 | | 00:36 | ||
− | |You should also have the knowledge of''' subclassing '''in | + | |You should also have the knowledge of''' subclassing '''in Java. |
|- | |- | ||
Line 49: | Line 51: | ||
|- | |- | ||
| 00:55 | | 00:55 | ||
− | |It is declared using''' abstract | + | |It is declared using''' abstract''' keyword. |
|- | |- | ||
Line 65: | Line 67: | ||
|- | |- | ||
| 01:16 | | 01:16 | ||
− | |Inside this '''project''' we will create the necessary '''classes''' to demonstrate the usage of''' Abstract class.''' | + | |Inside this '''project''', we will create the necessary '''classes''' to demonstrate the usage of''' Abstract class.''' |
|- | |- | ||
|01:24 | |01:24 | ||
− | |Now, right click on '''src''' folder and click '''New | + | |Now, right-click on '''src''' folder and click '''New > Class'''. |
|- | |- | ||
Line 77: | Line 79: | ||
|- | |- | ||
|01:35 | |01:35 | ||
− | |Now we will add the | + | |Now we will add the '''field'''s to represent the name and the age of the''' Person'''. Type: ''' String name''' semicolon. |
|- | |- | ||
|01:44 | |01:44 | ||
− | |Also type''' int age | + | |Also type: ''' int age''' semicolon. |
|- | |- | ||
|01:48 | |01:48 | ||
− | |Now click on''' Source | + | |Now click on''' Source''' and select''' Generate constructor using fields.''' |
|- | |- | ||
|01:55 | |01:55 | ||
− | |Delete the '''super | + | |Delete the '''super''' keyword from the generated code. |
|- | |- | ||
Line 113: | Line 115: | ||
|- | |- | ||
|02:25 | |02:25 | ||
− | |This ''' | + | |This method '''showBasicDetails()''' illustrated here, is an example of '''concrete method'''. |
|- | |- | ||
Line 125: | Line 127: | ||
|- | |- | ||
|02:41 | |02:41 | ||
− | |So type '''public void showDetails( )''' semicolon. | + | |So, type: '''public void showDetails( )''' semicolon. |
|- | |- | ||
Line 133: | Line 135: | ||
|- | |- | ||
|02:51 | |02:51 | ||
− | |So now add the ''' | + | |So, now add the keyword '''abstract.''' |
|- | |- | ||
Line 145: | Line 147: | ||
|- | |- | ||
|03:03 | |03:03 | ||
− | |So now add the''' | + | |So, now add the keyword '''abstract''' to the''' Person class '''to make it an''' abstract class.''' |
|- | |- | ||
Line 173: | Line 175: | ||
|- | |- | ||
|03:40 | |03:40 | ||
− | | These are done by''' showDetails( ) | + | | These are done by''' showDetails( )''' method present in the''' Person class.''' |
|- | |- | ||
Line 185: | Line 187: | ||
|- | |- | ||
|04:07 | |04:07 | ||
− | |Now to make this a '''subclass''' of '''Person class, '''type''' extends Person'''. | + | |Now to make this a '''subclass''' of '''Person class,''' type: ''' extends Person'''. |
|- | |- | ||
| 04:14 | | 04:14 | ||
− | | Now we can see an error comes up in the '''Eclipse IDE.''' | + | | Now, we can see an error comes up in the '''Eclipse IDE.''' |
|- | |- | ||
|04:19 | |04:19 | ||
− | |It indicates that | + | |It indicates that we should provide an '''implementation''' to the '''abstract method showDetails( )'''. |
|- | |- | ||
Line 201: | Line 203: | ||
|- | |- | ||
| 04:28 | | 04:28 | ||
− | | Now create two | + | | Now create two '''field'''s to represent the '''employee id''' and '''employee salary'''. |
|- | |- | ||
|04:34 | |04:34 | ||
− | |So type''' String empid | + | |So, type: ''' String empid''' semicolon and''' int salary''' semicolon. |
|- | |- | ||
|04:42 | |04:42 | ||
− | |Now click on '''Source''' | + | |Now click on '''Source''' and then select''' Generate constructor using fields.''' |
|- | |- | ||
|04:49 | |04:49 | ||
− | |This '''constructor''' can | + | |This '''constructor''' can initialize the values of '''name, age, empid '''and''' salary'''. |
|- | |- | ||
| 04:56 | | 04:56 | ||
− | | Let us now define the''' showDetails method'''. So type''' public void showDetails( ).''' | + | | Let us now define the''' showDetails method'''. So, type:''' public void showDetails( ).''' |
|- | |- | ||
Line 241: | Line 243: | ||
|- | |- | ||
|05:28 | |05:28 | ||
− | | There are two fields in the '''Student class – register number''' and''' grade''' which represent student | + | | There are two fields in the '''Student class – register number''' and''' grade''' which represent student register number and grade. |
|- | |- | ||
Line 257: | Line 259: | ||
|- | |- | ||
|05:56 | |05:56 | ||
− | |It prints the values of''' Student Register Number''' and''' grade''' | + | |It prints the values of''' Student Register Number''' and''' grade'''. |
|- | |- | ||
Line 273: | Line 275: | ||
|- | |- | ||
|06:17 | |06:17 | ||
− | |Click on '''New''' | + | |Click on '''New''' > '''Class''' and then type name as''' Demo. ''' |
|- | |- | ||
|06:23 | |06:23 | ||
− | |Inside this '''class''' we will have the '''main | + | |Inside this '''class''', we will have the '''main''' method. |
|- | |- | ||
|06:27 | |06:27 | ||
− | |So type '''main''' and then press ctrl+space to generate the''' main | + | |So, type '''main''' and then press '''ctrl+space''' to generate the''' main''' method. |
|- | |- | ||
Line 305: | Line 307: | ||
|- | |- | ||
|07:04 | |07:04 | ||
− | |Now let us instantiate the''' Person class''' using the''' Employee class''' as '''Person p1 equals new Employee.''' | + | |Now, let us instantiate the''' Person class''' using the''' Employee class''' as '''Person p1 equals new Employee.''' |
|- | |- | ||
Line 325: | Line 327: | ||
|- | |- | ||
|07:33 | |07:33 | ||
− | |Now we can invoke the '''concrete method''' in the '''Person class''' as '''p1.showBasicDetails()''' | + | |Now we can invoke the '''concrete method''' in the '''Person class''' as '''p1.showBasicDetails()'''. |
|- | |- | ||
|07:41 | |07:41 | ||
− | |We can also call the''' showDetails() method''' using the '''object p1''' as '''p1.showDetails()''' | + | |We can also call the''' showDetails() method''' using the '''object p1''' as '''p1.showDetails()'''. |
|- | |- | ||
Line 345: | Line 347: | ||
|- | |- | ||
|08:06 | |08:06 | ||
− | |We can invoke the''' showBasicDetails() method '''and''' showDetails() | + | |We can invoke the''' showBasicDetails() method '''and''' showDetails()''' method using the '''object''' as shown. |
|- | |- | ||
|08:15 | |08:15 | ||
− | | Now let us run this '''Demo''' program. | + | | Now let us '''run''' this '''Demo''' program. |
|- | |- | ||
|08:18 | |08:18 | ||
− | |So right click on the '''class Demo''' and then select '''Run as''' | + | |So, right-click on the '''class Demo''' and then select '''Run as''' >''' Java Application'''. |
|- | |- | ||
Line 361: | Line 363: | ||
|- | |- | ||
|08:31 | |08:31 | ||
− | |These are printed by '''showBasicDetails() | + | |These are printed by '''showBasicDetails()''' method. |
|- | |- | ||
|08:35 | |08:35 | ||
− | |Other employee details like''' employee ID '''and '''salary '''are printed by the''' showDetails() | + | |Other employee details like''' employee ID '''and '''salary '''are printed by the''' showDetails()''' method. |
|- | |- | ||
|08:43 | |08:43 | ||
− | |Similarly the basic student details like '''name''' and '''age''' are printed by''' showBasicDetails() | + | |Similarly the basic student details like '''name''' and '''age''' are printed by''' showBasicDetails()''' method. |
|- | |- | ||
|08:52 | |08:52 | ||
− | |Other details of the student like '''Student register number '''and '''grade''' are printed by the''' showDetails() | + | |Other details of the student like '''Student register number '''and '''grade''' are printed by the''' showDetails()''' method. |
|- | |- | ||
Line 381: | Line 383: | ||
|- | |- | ||
| 09:07 | | 09:07 | ||
− | | In this tutorial we have learnt about | + | | In this tutorial, we have learnt about: |
+ | * '''Abstract Methods '''and''' Concrete Methods''' | ||
|- | |- | ||
|09:14 | |09:14 | ||
− | | '''Abstract Classes '''and''' Concrete Classes '''and | + | | |
+ | * '''Abstract Classes '''and''' Concrete Classes '''and | ||
+ | * How to create and use''' Abstract Classes'''. | ||
|- | |- | ||
| 09:21 | | 09:21 | ||
− | | As an assignment | + | | As an assignment, create an '''abstract class Vehicle''' which contains an '''abstract method''' '''run()'''. |
|- | |- | ||
|09:29 | |09:29 | ||
− | | Create a'''subclass Car''' which extends the '''Vehicle class''' and implements the '''run method''' that prints | + | | Create a'''subclass Car''' which extends the '''Vehicle class''' and implements the '''run method''' that prints “Car is running on 4 wheels”. |
|- | |- | ||
|09:39 | |09:39 | ||
− | | Also create a'''subclass Bike''' which again extends the '''Vehicle class''' and implements the '''run | + | | Also create a'''subclass Bike''' which again extends the '''Vehicle class''' and implements the '''run''' method that prints “Bike is running on 2 wheels”. |
|- | |- | ||
|09:50 | |09:50 | ||
− | |Also create a '''Demo class '''containing the''' main | + | |Also create a '''Demo class '''containing the''' main''' method to verify the results. |
|- | |- | ||
Line 409: | Line 414: | ||
|- | |- | ||
| 10:03 | | 10:03 | ||
− | | The Spoken Tutorial Project Team | + | | The Spoken Tutorial Project Team: * Conducts workshops using spoken tutorials and |
|- | |- | ||
|10:09 | |10:09 | ||
− | | Gives certificates on passing the online tests | + | |* Gives certificates on passing the online tests. |
|- | |- | ||
Line 425: | Line 430: | ||
|- | |- | ||
|10:23 | |10:23 | ||
− | |More information on this | + | |More information on this mission is available at the link shown. |
|- | |- | ||
| 10:28 | | 10:28 | ||
− | | This script has been contributed by | + | | This script has been contributed by Dept. of Information Technology, Amal Jyothi College of Engineering. |
|- | |- | ||
|10:35 | |10:35 | ||
− | |This is Priya from IIT Bombay signing off. Thank you for joining. | + | |This is Priya from '''IIT Bombay''', signing off. Thank you for joining. |
|} | |} |
Revision as of 14:42, 18 May 2017
|
|
00:00 | Welcome to the Spoken Tutorial on Abstract Classes. |
00:05 | In this tutorial, we will learn about: * Abstract Methods and Concrete Methods |
00:12 | * Abstract Classes and Concrete Classes and |
00:16 | * How to use Abstract Classes. |
00:18 | For this tutorial, I am using:
|
00:28 | To follow this tutorial, you should have knowledge of basics of Java and Eclipse IDE. |
00:36 | You should also have the knowledge of subclassing in Java. |
00:40 | If not, for relevant Java tutorials, please visit the link shown. |
00:46 | First we will see about Abstract Method. |
00:50 | An Abstract method is a method that is declared without implementation. |
00:55 | It is declared using abstract keyword. |
00:59 | There should not be opening and closing parenthesis for this method. |
01:04 | Let us understand the usage of Abstract class with a sample program. |
01:09 | Now we will switch to Eclipse and create a new project called AbstractDemo. |
01:16 | Inside this project, we will create the necessary classes to demonstrate the usage of Abstract class. |
01:24 | Now, right-click on src folder and click New > Class. |
01:30 | Type the name of the class as Person and press Enter. |
01:35 | Now we will add the fields to represent the name and the age of the Person. Type: String name semicolon. |
01:44 | Also type: int age semicolon. |
01:48 | Now click on Source and select Generate constructor using fields. |
01:55 | Delete the super keyword from the generated code. |
01:59 | The constructor can initialise the values of name and age fields. |
02:05 | Next we will see about concrete method. |
02:08 | A Concrete method is completely implemented within the curly brackets. |
02:14 | We will add a concrete method to this class to print the name and age. |
02:21 | Type the following code as displayed on the screen. |
02:25 | This method showBasicDetails() illustrated here, is an example of concrete method. |
02:32 | Observe that this method is implemented completely. |
02:36 | Now we will add an abstract method to this class. |
02:41 | So, type: public void showDetails( ) semicolon. |
02:46 | An error comes up, since we have not yet added the abstract keyword. |
02:51 | So, now add the keyword abstract. |
02:55 | Now we can see another error comes up. |
02:58 | This is because, abstract methods can be added only to abstract classes. |
03:03 | So, now add the keyword abstract to the Person class to make it an abstract class. |
03:10 | The class Person illustrated here is an abstract class. |
03:15 | It contains an abstract method called showDetails(). |
03:20 | The figure here represents an inheritance relation. |
03:24 | Here, the Person class is an abstract class. |
03:29 | The Employee class and the Student class are subclasses of the Person class. |
03:35 | These subclasses can provide their own different implementations. |
03:40 | These are done by showDetails( ) method present in the Person class. |
03:45 | For example: ShowDetails() Method in the Employee class prints the Employee ID and the Salary, where as ShowDetails() Method in the Student class prints the Student Register Number and Grade. |
04:01 | Then right-click on the default package and create another class called Employee. |
04:07 | Now to make this a subclass of Person class, type: extends Person. |
04:14 | Now, we can see an error comes up in the Eclipse IDE. |
04:19 | It indicates that we should provide an implementation to the abstract method showDetails( ). |
04:26 | We will do it a little later. |
04:28 | Now create two fields to represent the employee id and employee salary. |
04:34 | So, type: String empid semicolon and int salary semicolon. |
04:42 | Now click on Source and then select Generate constructor using fields. |
04:49 | This constructor can initialize the values of name, age, empid and salary. |
04:56 | Let us now define the showDetails method. So, type: public void showDetails( ). |
05:04 | Inside this method, we need to print the employee details. |
05:09 | Type the following code as displayed on the screen. |
05:13 | Note that the error disappears, once the showDetails() method is implemented. |
05:19 | Next we will see a Student class of the project. |
05:23 | I have already created a subclass called Student. |
05:28 | There are two fields in the Student class – register number and grade which represent student register number and grade. |
05:37 | A constructor is also created inside this class. |
05:42 | This constructor can be used to initialize the values for name, age, register number and grade. |
05:50 | The showDetails method is also implemented in this class. |
05:56 | It prints the values of Student Register Number and grade. |
06:00 | Now note that the Employee class has its own implementation of showDetails(). |
06:08 | And the Student class has its own implementation of showDetails(). |
06:14 | Now right-click on the default package. |
06:17 | Click on New > Class and then type name as Demo. |
06:23 | Inside this class, we will have the main method. |
06:27 | So, type main and then press ctrl+space to generate the main method. |
06:33 | Now let us try to instantiate the Person class by typing Person p equals new Person. |
06:42 | Within brackets and double quotes type John and put a semicolon. |
06:48 | Now we can see an error. This is because the Person class is abstract and it cannot be instantiated. |
06:58 | Let's remove this line. |
07:00 | Type the following code as displayed on the screen. |
07:04 | Now, let us instantiate the Person class using the Employee class as Person p1 equals new Employee. |
07:14 | In the first line, we are passing the values of different arguments. |
07:19 | John is passed as Employee name. |
07:22 | 40 as the value of age. |
07:25 | E267 as the value of Employee ID and 10000 as the value of Employee salary. |
07:33 | Now we can invoke the concrete method in the Person class as p1.showBasicDetails(). |
07:41 | We can also call the showDetails() method using the object p1 as p1.showDetails(). |
07:50 | Similarly instantiate the Person class using the Student class. |
07:55 | This is represented as Person p2 equals new Student. |
08:01 | Now we are passing the values of different arguments. |
08:06 | We can invoke the showBasicDetails() method and showDetails() method using the object as shown. |
08:15 | Now let us run this Demo program. |
08:18 | So, right-click on the class Demo and then select Run as > Java Application. |
08:25 | We can see the output with the basic employee details like name and age. |
08:31 | These are printed by showBasicDetails() method. |
08:35 | Other employee details like employee ID and salary are printed by the showDetails() method. |
08:43 | Similarly the basic student details like name and age are printed by showBasicDetails() method. |
08:52 | Other details of the student like Student register number and grade are printed by the showDetails() method. |
09:01 | This brings us to the end of this tutorial. Let us summarize. |
09:07 | In this tutorial, we have learnt about:
|
09:14 |
|
09:21 | As an assignment, create an abstract class Vehicle which contains an abstract method run(). |
09:29 | Create asubclass Car which extends the Vehicle class and implements the run method that prints “Car is running on 4 wheels”. |
09:39 | Also create asubclass Bike which again extends the Vehicle class and implements the run method that prints “Bike is running on 2 wheels”. |
09:50 | Also create a Demo class containing the main method to verify the results. |
09:56 | The video at the following link summarizes the Spoken Tutorial Project. Please download and watch it. |
10:03 | The Spoken Tutorial Project Team: * Conducts workshops using spoken tutorials and |
10:09 | * Gives certificates on passing the online tests. |
10:13 | For more details, please write to us. |
10:16 | Spoken Tutorial Project is funded by NMEICT, MHRD, Government of India. |
10:23 | More information on this mission is available at the link shown. |
10:28 | This script has been contributed by Dept. of Information Technology, Amal Jyothi College of Engineering. |
10:35 | This is Priya from IIT Bombay, signing off. Thank you for joining. |