Recall • What is meant by OOP? • What are classes and objects? • What are the differences between OOP and Procedure oriented Programming?
Introduction to OOP with java
Java • Oop paradigm Java is a computer programming language that is class-based, object- oriented and makes maximum out of it • “Write once run anywhere” Java applications are typically compiled to bytecode (.class file) that can run on any Java virtual machine(JVM) regardless of computer architecture
C Vs java Syntax comparison
C Vs java • int • Char • Float • double ‚Exactly the same as of left side‛ Data Types
C Vs java • Conditional control structures – If – If else – Switch • Loops – for – while – Do while ‚Exactly the same as of left side‛ Control Structures
C Vs java int sum(int a, int b) { Int c; c=a + b return c; } sum(12,13) ‚Exactly the same as of left side‛ functions
C Vs java int a[] = {1000, 2, 3, 50}; int a[10]; int a[]={1,2,3,4}// not a preferred way int[] a={1,2,3,4} //preferred way int[] myList = new int[10]; Arrays
C Vs Java Output printf(“ value of a = %d”,a); Printf(“a = %d and b= %d”,a,b); Input scanf(“%d ", &a); Scanf(“%d”,&a,&b); Output System.out.println(“hello baabtra”); Input Scanner sc = new scanner(System.in); int i = sc.nextInt(); (import java.util.Scanner) Input / Output Out In System Println() Print() Write() PrintStream
C Vs java char str*+ = ‚hello‛; ‚String is character array‛ String str=‚Hello‛; ‚String is an object ‚ Strings
C Vs java • As we are well aware c program execution begins at main() function Eg: main() { Printf(‚hello world‛); printHello(); } Same as C, differs that the main() will be a member function of some class. Name of the class and file should be the same. class myFirstProgram { public static void main(String[] args) { System.out.println(‚hello baabtra‛); } main() function
What’s New in java?
What’s New in java? • OOP concepts • JVM and Platform independency • Automatic garbage collection
OOP Concept • Object-oriented programming (OOP) is a style of programming that focuses on using objects to design and build applications. • Think of an object as a model of the concepts, processes, or things in the real world that are meaningful to your application.
Objects in real World
Real World Objects
Objects in real world • Object will have an identity/name  Eg: reynolds, Cello for pen. Nokia,apple for mobile • Object will have different properties which describes them best  Eg:Color,size,width • Object can perform different actions  Eg: writing,erasing etc for pen. Calling, texting for mobile
Objects I have an identity: I'm Volkswagen I have different properties. My color property is green My no:of wheel property is 4 I can perform different actions I can be drived I can consume fuel I can play Music I have an identity: I'm Suzuki I have different properties. My color property is silver My no:of wheel property is 4 I can perform different actions I can be drived I can consume fuel I can play Music
How these objects are created? • All the objects in the real world are created out of a basic prototype or a basic blue print or a base design
Objects in software World
Objects in the software world • Same like in the real world we can create objects in computer programming world –Which will have a name as identity –Properties to define its behaviour –Actions what it can perform
How these objects are created • We need to create a base design which defines the properties and functionalities that the object should have. • In programming terms we call this base design as Class • Simply by having a class we can create any number of objects of that type
Definition • Class : is the base design of objects • Object : is the instance of a class • No memory is allocated when a class is created. • Memory is allocated only when an object is created.
How to create class in Java public class shape { private Int width; private Int height; public Int calculateArea() { return x*y } }
How to create class in Java public class shape { private Int width; private Int height; public Int calculateArea() { return x*y } } Is the access specifier
How to create class in Java public class shape { private Int width; private Int height; public Int calculateArea() { return x*y } } Is the keyword for creating a class
How to create class in Java public class shape { private Int width; private Int height; public Int calculateArea() { return x*y } } Is the name of the class
How to create class in Java public class shape { private Int width; private Int height; public Int calculateArea() { return x*y } } Are two variable that referred as the properties. Normally kept private and access using getters and setters. We will discuss getters and setters later in this slide
How to create class in Java public class shape { private Int width; private Int height; public Int calculateArea() { return x*y } } Is the only member function of the class
How to create objects in java shape rectangle = new shape(); rectangle.width=20; recangle.height=35; rArea=rectangle.calculateArea(); This is how we create an object in java rectangle Height: width: calculateArea() { return height*width; }
How to create objects in C++ shape rectangle = new shape(); rectangle.width=20; recangle.height=35; rArea=rectangle.calculateArea(); Is the class name
How to create objects in C++ shape rectangle = new shape(); rectangle.width=20; recangle.height=35; rArea=rectangle.calculateArea(); Is the object name which we want to create
How to create objects in C++ shape rectangle = new shape(); rectangle.width=20; recangle.height=35; rArea=rectangle.calculateArea(); “new” is the keyword used in java to create an object
How to create objects in C++ shape rectangle = new shape(); rectangle.width=20; recangle.height=35; rArea=rectangle.calculateArea(); What is this??? It looks like a function because its having pair of parentheses (). And also its having the same name of our class . But what is it used for ?? We will discuss it soon . Just leave it as it is for now
How to create objects in Java shape rectangle = new shape(); rectangle.width=20; recangle.height=35; rArea=rectangle.calculateArea(); Setting up the property values of object “rectangle” rectangle width: 20 Height: 35 calculateArea() { return width*height; }
How to create objects in Java shape rectangle = new shape(); rectangle.width=20; recangle.height=35; rArea=rectangle.calculateArea(); Calling the method calculateArea() rectangle width: 20 Height: 35 calculateArea() { return 20*35; }
Example Class : shape Height:35 width:20 Object rectangle calculateArea() { Return 20*35 } Height:10 width:10 Object square calculateArea() { Return 10*10; } Member variables Height width Member function calculateArea { return height*width; }
What we just did was • Created an object shape rectangle = new shape(); • Same like we declare variable. eg: int a; • And assigned values for it recangle.height=35; same like we assign variable value. eg: a=10; Rectangle Width: Height: calculateArea() { return width*height; } Rectangle width: 20 Height: 35 calculateArea() { return 20*35; }
So, Can i assign values into an object at the time of its creation(known as initialization)?? Something that we do with variables like int a=14;
So, Can i assign values into an object at the time of its creation?? Something that we do with variables like int a=14; ‚Yes, you can . For that purpose we use something called constructor‛
Constructors • Constructors are just a method like any other methods in the class but having the same name of the class. • It is used to initialise the properties of an object • will not have any return type, not even void • If no user defined constructor is provided for a class, the implicit constructor initializes the member variables to its default values – numeric data types are set to 0 – char data types are set to null character(‘0’) – boolean data types are set to false – reference variables are set to null
public class shape { private Int width; private Int height; private Int calculateArea() { return x*y } } How to create Constructors
public class shape { private Int width; private Int height; shape(int height,in width) { this.width=width; this.height=height; } private Int calculateArea() { return x*y } } Shape rectangle=new shape(20,35); Constructor Rectangle width: 20 Height: 35 calculateArea() { return 20*35; } How to create Constructors
Access Specifier • Access specifies defines the access rights for the statements or functions that follows it until another access specifier or till the end of a class. • The three types of access specifiers are –Private –Public –Protected –default
Getters and Setters • There are several occasion we need to validate the data when assigning values into it • For eg: rectangle.width=-10; rectangle.height=-12; • Suppose i want to check whether the user enters a negative value and if so i wish to assign 0 to the properties • In such scenarios we will create a method to do the above said actions Rectangle width: -10 Height: -12 calculateArea() { return -10*-12; }
Getters and Setters • Getters and setters are simply two function that gets and sets the value of class properties. • Setter – Rectangle.width=15; // Normally this is how we set the values of class properties. Rectangle.setWidth(15); // calling a method named ‚setWidth‛ so that the method will set the property width to 15 • Getter – Rectangle.width; // Normally this is how we get the values of class properties. Rectangle.getWidth(); // calling a method named ‚getWidth‛ so that the method will get the value of the property width
public class shape { private Int width; private Int height; Int calculateArea() { return x*y; } Public setWidth(int a) { if (a>0) width=a; else width=0 } Public Int getWidth() { return width } } How to create getters and setters
public class shape { private Int width; private Int height; Int calculateArea() { return x*y; } Public setWidth(int a) { if (a>0) width=a; else width=0 } Public Int getWidth() { return width } } How to create getters and setters Setter function
public class shape { private Int width; private Int height; Int calculateArea() { return x*y; } Public setWidth(int a) { if (a>0) width=a; else width=0 } Public Int getWidth() { return width } } How to create getters and setters Getter function
OOP features »Abstraction »Encapsulation »Polymorphism »Inheritance
Abstraction • Act of representing essential features only and hiding the implementation details • For example, a car would be made up of an Engine, but one does not need to know how the diverse components work inside. • In our example of class shape ; the users only have to create objects of type shape like rectangle,square etc. • And for finding out the area he dont really have to think about how the area is calculated. He only need to know calling the method calculateArea will reuslt him with the area.
Encapsulation • Wrapping up of data(properties) and code(methods) into a single unit is known as encapsulation • Encapsulation also includes the process of hiding all the data and methods within a class from outside world by restricting access to the object's components. • In programming languages, encapsulation is accomplished by using private access specifier
Inheritance • Is the process where one object acquires the properties of another. • Inheritance is a type of relationship – Ex: BMW is a Car • Reusability of code – Methods and properties of parent class will be accessible to child class • In java inheritance is achieved by using keyword ‚extends‛ • Java supports only single inheritance
public class shape { protected Int width; protected Int height; Int calculateArea() { return x*y; } int drawShape() { system.out.println(“shape”) } } public class threedimensionalshape extends shape { private Int depth; Int calculateVolume() { return width*heigh*depth; } } Example
Example • Shape rectangle = new rectangle(); • threedimensionalshape cube =new threedimensionalshape() Rectangle Width: Height: calculateArea() { Return width*height } cube Width: Height: depth calculateArea() { Return width*height } Int calculateVolume() { return width*height*depth; }
Polymorphism • Polymorphism is the ability to take more than one form using the same name – Eg : function overloading, Operator overloading(not supported in java) • Functions can have same name but different implementations • There are two types of polymorphism –Static –Dynamic
public class shape { Int calculateArea(int width, int height) { return width * width; } Float calculateArea(int radius) { return (22/7) * radius * radius } } public class example { Public static void main{ shape sh =new shape(); System.out. Println(sh.calculateArea(20, 10)); System.out.println(sh.calculateArea(10)); } } Output: 200 314.28 Example – Static polymorphism
public class shape { Void drawShape() { system.out.println(“Shape”) } } public class ThreeDshape extends shape { Void drawShape() { system.out.println(“3D shape”) } } public class example { Public static void main{ shape sh =new shape(); ThreeDshape tds =new ThreeDshape (); Sh.drawShape(); sh=tds; Sh.drawShape; } } Output: Shape 3D shape Example – Dynamic polymorphism
Static and Dynamic polymorphism • Achieved using Overloading • Signature difference • Inheritance not required for implementation • Decision at compile time • Early binding • Achieved by Overriding • Uses inheritance and virtual functions • Inheritance required for implementation • Decision at runtime • Late binding
Questions? ‚A good question deserve a good grade…‛
End of day
If this presentation helped you, please visit our page facebook.com/baabtra and like it. Thanks in advance. www.baabtra.com | www.massbaab.com |www.baabte.com
Contact Us Emarald Mall (Big Bazar Building) Mavoor Road, Kozhikode, Kerala, India. Ph: + 91 – 495 40 25 550 NC Complex, Near Bus Stand Mukkam, Kozhikode, Kerala, India. Ph: + 91 – 495 40 25 550 Start up Village Eranakulam, Kerala, India. Email: info@baabtra.com

Introduction to java and oop

  • 1.
    Recall • What ismeant by OOP? • What are classes and objects? • What are the differences between OOP and Procedure oriented Programming?
  • 2.
  • 3.
    Java • Oop paradigm Javais a computer programming language that is class-based, object- oriented and makes maximum out of it • “Write once run anywhere” Java applications are typically compiled to bytecode (.class file) that can run on any Java virtual machine(JVM) regardless of computer architecture
  • 4.
    C Vs java Syntaxcomparison
  • 5.
    C Vs java •int • Char • Float • double ‚Exactly the same as of left side‛ Data Types
  • 6.
    C Vs java •Conditional control structures – If – If else – Switch • Loops – for – while – Do while ‚Exactly the same as of left side‛ Control Structures
  • 7.
    C Vs java intsum(int a, int b) { Int c; c=a + b return c; } sum(12,13) ‚Exactly the same as of left side‛ functions
  • 8.
    C Vs java inta[] = {1000, 2, 3, 50}; int a[10]; int a[]={1,2,3,4}// not a preferred way int[] a={1,2,3,4} //preferred way int[] myList = new int[10]; Arrays
  • 9.
    C Vs Java Output printf(“value of a = %d”,a); Printf(“a = %d and b= %d”,a,b); Input scanf(“%d ", &a); Scanf(“%d”,&a,&b); Output System.out.println(“hello baabtra”); Input Scanner sc = new scanner(System.in); int i = sc.nextInt(); (import java.util.Scanner) Input / Output Out In System Println() Print() Write() PrintStream
  • 10.
    C Vs java charstr*+ = ‚hello‛; ‚String is character array‛ String str=‚Hello‛; ‚String is an object ‚ Strings
  • 11.
    C Vs java •As we are well aware c program execution begins at main() function Eg: main() { Printf(‚hello world‛); printHello(); } Same as C, differs that the main() will be a member function of some class. Name of the class and file should be the same. class myFirstProgram { public static void main(String[] args) { System.out.println(‚hello baabtra‛); } main() function
  • 12.
  • 13.
    What’s New injava? • OOP concepts • JVM and Platform independency • Automatic garbage collection
  • 14.
    OOP Concept • Object-orientedprogramming (OOP) is a style of programming that focuses on using objects to design and build applications. • Think of an object as a model of the concepts, processes, or things in the real world that are meaningful to your application.
  • 15.
  • 16.
  • 17.
    Objects in realworld • Object will have an identity/name  Eg: reynolds, Cello for pen. Nokia,apple for mobile • Object will have different properties which describes them best  Eg:Color,size,width • Object can perform different actions  Eg: writing,erasing etc for pen. Calling, texting for mobile
  • 18.
    Objects I have anidentity: I'm Volkswagen I have different properties. My color property is green My no:of wheel property is 4 I can perform different actions I can be drived I can consume fuel I can play Music I have an identity: I'm Suzuki I have different properties. My color property is silver My no:of wheel property is 4 I can perform different actions I can be drived I can consume fuel I can play Music
  • 19.
    How these objectsare created? • All the objects in the real world are created out of a basic prototype or a basic blue print or a base design
  • 20.
  • 21.
    Objects in thesoftware world • Same like in the real world we can create objects in computer programming world –Which will have a name as identity –Properties to define its behaviour –Actions what it can perform
  • 22.
    How these objectsare created • We need to create a base design which defines the properties and functionalities that the object should have. • In programming terms we call this base design as Class • Simply by having a class we can create any number of objects of that type
  • 23.
    Definition • Class :is the base design of objects • Object : is the instance of a class • No memory is allocated when a class is created. • Memory is allocated only when an object is created.
  • 24.
    How to createclass in Java public class shape { private Int width; private Int height; public Int calculateArea() { return x*y } }
  • 25.
    How to createclass in Java public class shape { private Int width; private Int height; public Int calculateArea() { return x*y } } Is the access specifier
  • 26.
    How to createclass in Java public class shape { private Int width; private Int height; public Int calculateArea() { return x*y } } Is the keyword for creating a class
  • 27.
    How to createclass in Java public class shape { private Int width; private Int height; public Int calculateArea() { return x*y } } Is the name of the class
  • 28.
    How to createclass in Java public class shape { private Int width; private Int height; public Int calculateArea() { return x*y } } Are two variable that referred as the properties. Normally kept private and access using getters and setters. We will discuss getters and setters later in this slide
  • 29.
    How to createclass in Java public class shape { private Int width; private Int height; public Int calculateArea() { return x*y } } Is the only member function of the class
  • 30.
    How to createobjects in java shape rectangle = new shape(); rectangle.width=20; recangle.height=35; rArea=rectangle.calculateArea(); This is how we create an object in java rectangle Height: width: calculateArea() { return height*width; }
  • 31.
    How to createobjects in C++ shape rectangle = new shape(); rectangle.width=20; recangle.height=35; rArea=rectangle.calculateArea(); Is the class name
  • 32.
    How to createobjects in C++ shape rectangle = new shape(); rectangle.width=20; recangle.height=35; rArea=rectangle.calculateArea(); Is the object name which we want to create
  • 33.
    How to createobjects in C++ shape rectangle = new shape(); rectangle.width=20; recangle.height=35; rArea=rectangle.calculateArea(); “new” is the keyword used in java to create an object
  • 34.
    How to createobjects in C++ shape rectangle = new shape(); rectangle.width=20; recangle.height=35; rArea=rectangle.calculateArea(); What is this??? It looks like a function because its having pair of parentheses (). And also its having the same name of our class . But what is it used for ?? We will discuss it soon . Just leave it as it is for now
  • 35.
    How to createobjects in Java shape rectangle = new shape(); rectangle.width=20; recangle.height=35; rArea=rectangle.calculateArea(); Setting up the property values of object “rectangle” rectangle width: 20 Height: 35 calculateArea() { return width*height; }
  • 36.
    How to createobjects in Java shape rectangle = new shape(); rectangle.width=20; recangle.height=35; rArea=rectangle.calculateArea(); Calling the method calculateArea() rectangle width: 20 Height: 35 calculateArea() { return 20*35; }
  • 37.
    Example Class : shape Height:35 width:20 Objectrectangle calculateArea() { Return 20*35 } Height:10 width:10 Object square calculateArea() { Return 10*10; } Member variables Height width Member function calculateArea { return height*width; }
  • 38.
    What we justdid was • Created an object shape rectangle = new shape(); • Same like we declare variable. eg: int a; • And assigned values for it recangle.height=35; same like we assign variable value. eg: a=10; Rectangle Width: Height: calculateArea() { return width*height; } Rectangle width: 20 Height: 35 calculateArea() { return 20*35; }
  • 39.
    So, Can iassign values into an object at the time of its creation(known as initialization)?? Something that we do with variables like int a=14;
  • 40.
    So, Can iassign values into an object at the time of its creation?? Something that we do with variables like int a=14; ‚Yes, you can . For that purpose we use something called constructor‛
  • 41.
    Constructors • Constructors arejust a method like any other methods in the class but having the same name of the class. • It is used to initialise the properties of an object • will not have any return type, not even void • If no user defined constructor is provided for a class, the implicit constructor initializes the member variables to its default values – numeric data types are set to 0 – char data types are set to null character(‘0’) – boolean data types are set to false – reference variables are set to null
  • 42.
    public class shape { privateInt width; private Int height; private Int calculateArea() { return x*y } } How to create Constructors
  • 43.
    public class shape { privateInt width; private Int height; shape(int height,in width) { this.width=width; this.height=height; } private Int calculateArea() { return x*y } } Shape rectangle=new shape(20,35); Constructor Rectangle width: 20 Height: 35 calculateArea() { return 20*35; } How to create Constructors
  • 44.
    Access Specifier • Accessspecifies defines the access rights for the statements or functions that follows it until another access specifier or till the end of a class. • The three types of access specifiers are –Private –Public –Protected –default
  • 46.
    Getters and Setters •There are several occasion we need to validate the data when assigning values into it • For eg: rectangle.width=-10; rectangle.height=-12; • Suppose i want to check whether the user enters a negative value and if so i wish to assign 0 to the properties • In such scenarios we will create a method to do the above said actions Rectangle width: -10 Height: -12 calculateArea() { return -10*-12; }
  • 47.
    Getters and Setters •Getters and setters are simply two function that gets and sets the value of class properties. • Setter – Rectangle.width=15; // Normally this is how we set the values of class properties. Rectangle.setWidth(15); // calling a method named ‚setWidth‛ so that the method will set the property width to 15 • Getter – Rectangle.width; // Normally this is how we get the values of class properties. Rectangle.getWidth(); // calling a method named ‚getWidth‛ so that the method will get the value of the property width
  • 48.
    public class shape { privateInt width; private Int height; Int calculateArea() { return x*y; } Public setWidth(int a) { if (a>0) width=a; else width=0 } Public Int getWidth() { return width } } How to create getters and setters
  • 49.
    public class shape { privateInt width; private Int height; Int calculateArea() { return x*y; } Public setWidth(int a) { if (a>0) width=a; else width=0 } Public Int getWidth() { return width } } How to create getters and setters Setter function
  • 50.
    public class shape { privateInt width; private Int height; Int calculateArea() { return x*y; } Public setWidth(int a) { if (a>0) width=a; else width=0 } Public Int getWidth() { return width } } How to create getters and setters Getter function
  • 51.
  • 52.
    Abstraction • Act ofrepresenting essential features only and hiding the implementation details • For example, a car would be made up of an Engine, but one does not need to know how the diverse components work inside. • In our example of class shape ; the users only have to create objects of type shape like rectangle,square etc. • And for finding out the area he dont really have to think about how the area is calculated. He only need to know calling the method calculateArea will reuslt him with the area.
  • 53.
    Encapsulation • Wrapping upof data(properties) and code(methods) into a single unit is known as encapsulation • Encapsulation also includes the process of hiding all the data and methods within a class from outside world by restricting access to the object's components. • In programming languages, encapsulation is accomplished by using private access specifier
  • 54.
    Inheritance • Is theprocess where one object acquires the properties of another. • Inheritance is a type of relationship – Ex: BMW is a Car • Reusability of code – Methods and properties of parent class will be accessible to child class • In java inheritance is achieved by using keyword ‚extends‛ • Java supports only single inheritance
  • 55.
    public class shape { protectedInt width; protected Int height; Int calculateArea() { return x*y; } int drawShape() { system.out.println(“shape”) } } public class threedimensionalshape extends shape { private Int depth; Int calculateVolume() { return width*heigh*depth; } } Example
  • 56.
    Example • Shape rectangle= new rectangle(); • threedimensionalshape cube =new threedimensionalshape() Rectangle Width: Height: calculateArea() { Return width*height } cube Width: Height: depth calculateArea() { Return width*height } Int calculateVolume() { return width*height*depth; }
  • 57.
    Polymorphism • Polymorphism isthe ability to take more than one form using the same name – Eg : function overloading, Operator overloading(not supported in java) • Functions can have same name but different implementations • There are two types of polymorphism –Static –Dynamic
  • 58.
    public class shape { IntcalculateArea(int width, int height) { return width * width; } Float calculateArea(int radius) { return (22/7) * radius * radius } } public class example { Public static void main{ shape sh =new shape(); System.out. Println(sh.calculateArea(20, 10)); System.out.println(sh.calculateArea(10)); } } Output: 200 314.28 Example – Static polymorphism
  • 59.
    public class shape { VoiddrawShape() { system.out.println(“Shape”) } } public class ThreeDshape extends shape { Void drawShape() { system.out.println(“3D shape”) } } public class example { Public static void main{ shape sh =new shape(); ThreeDshape tds =new ThreeDshape (); Sh.drawShape(); sh=tds; Sh.drawShape; } } Output: Shape 3D shape Example – Dynamic polymorphism
  • 60.
    Static and Dynamicpolymorphism • Achieved using Overloading • Signature difference • Inheritance not required for implementation • Decision at compile time • Early binding • Achieved by Overriding • Uses inheritance and virtual functions • Inheritance required for implementation • Decision at runtime • Late binding
  • 61.
    Questions? ‚A good questiondeserve a good grade…‛
  • 62.
  • 63.
    If this presentationhelped you, please visit our page facebook.com/baabtra and like it. Thanks in advance. www.baabtra.com | www.massbaab.com |www.baabte.com
  • 64.
    Contact Us Emarald Mall(Big Bazar Building) Mavoor Road, Kozhikode, Kerala, India. Ph: + 91 – 495 40 25 550 NC Complex, Near Bus Stand Mukkam, Kozhikode, Kerala, India. Ph: + 91 – 495 40 25 550 Start up Village Eranakulam, Kerala, India. Email: info@baabtra.com