sads

Monday, 9 January 2017

Practise Best Samples

    class Student1{ 
     int id;//data member (also instance variable) 
     String name;//data member(also instance variable) 
     
     public static void main(String args[]){ 
      Student1 s1=new Student1();//creating an object of Student 
      System.out.println(s1.id); 
      System.out.println(s1.name); 
     } 
    } 


-------------------------------------
    class Student2{ 
     int rollno; 
     String name; 
     
     void insertRecord(int r, String n){  //method 
      rollno=r; 
      name=n; 
     } 
     
     void displayInformation(){System.out.println(rollno+" "+name);}//method 
     
     public static void main(String args[]){ 
      Student2 s1=new Student2(); 
      Student2 s2=new Student2(); 
     
      s1.insertRecord(111,"Karan"); 
      s2.insertRecord(222,"Aryan"); 
     
      s1.displayInformation(); 
      s2.displayInformation(); 
     
     } 
    } 

------------------------------------------

    class Rectangle{ 
     int length; 
     int width; 
     
     void insert(int l,int w){ 
      length=l; 
      width=w; 
     } 
     
     void calculateArea(){System.out.println(length*width);} 
     
     public static void main(String args[]){ 
      Rectangle r1=new Rectangle(); 
      Rectangle r2=new Rectangle(); 
     
      r1.insert(11,5); 
      r2.insert(3,15); 
     
      r1.calculateArea(); 
      r2.calculateArea(); 
    } 
    } 


--------------------------------------


    class Calculation{ 
     
     void fact(int  n){ 
      int fact=1; 
      for(int i=1;i<=n;i++){ 
       fact=fact*i; 
      } 
     System.out.println("factorial is "+fact); 
    } 
     
    public static void main(String args[]){ 
     new Calculation().fact(5);//calling method with annonymous object 
    } 
    } 

---------------------------------

    class Rectangle{ 
     int length; 
     int width; 
     
     void insert(int l,int w){ 
      length=l; 
      width=w; 
     } 
     
     void calculateArea(){System.out.println(length*width);} 
     
     public static void main(String args[]){ 
      Rectangle r1=new Rectangle(),r2=new Rectangle();//creating two objects 
       
      r1.insert(11,5); 
      r2.insert(3,15); 
     
      r1.calculateArea(); 
      r2.calculateArea(); 
    } 
    } 


-------------------------------
    class Calculation{ 
      void sum(int a,int b){System.out.println(a+b);} 
      void sum(int a,int b,int c){System.out.println(a+b+c);} 
     
      public static void main(String args[]){ 
      Calculation obj=new Calculation(); 
      obj.sum(10,10,10); 
      obj.sum(20,20); 
     
      } 
    } 

--------------------------------

    class Calculation2{ 
      void sum(int a,int b){System.out.println(a+b);} 
      void sum(double a,double b){System.out.println(a+b);} 
     
      public static void main(String args[]){ 
      Calculation2 obj=new Calculation2(); 
      obj.sum(10.5,10.5); 
      obj.sum(20,20); 
     
      } 
    } 

----------------------------
Que) Why Method Overloaing is not possible by changing the return type of method?

    class Calculation3{ 
      int sum(int a,int b){System.out.println(a+b);} 
      double sum(int a,int b){System.out.println(a+b);} 
     
      public static void main(String args[]){ 
      Calculation3 obj=new Calculation3(); 
      int result=obj.sum(20,20); //Compile Time Error 
     
      } 
    } 

--------------------------------

Can we overload main() method?


    class Overloading1{ 
      public static void main(int a){ 
      System.out.println(a); 
      } 
       
      public static void main(String args[]){ 
      System.out.println("main() method invoked"); 
      main(10); 
      } 
    } 

-----------------------
class OverloadingCalculation1{ 
  void sum(int a,long b){System.out.println(a+b);} 
  void sum(int a,int b,int c){System.out.println(a+b+c);} 
 
  public static void main(String args[]){ 
  OverloadingCalculation1 obj=new OverloadingCalculation1(); 
  obj.sum(20,20);//now second int literal will be promoted to long 
  obj.sum(20,20,20); 
 
  } 


---------------

    class OverloadingCalculation2{ 
      void sum(int a,int b){System.out.println("int arg method invoked");} 
      void sum(long a,long b){System.out.println("long arg method invoked");} 
     
      public static void main(String args[]){ 
      OverloadingCalculation2 obj=new OverloadingCalculation2(); 
      obj.sum(20,20);//now int arg sum() method gets invoked 
      } 
    } 

-----------------------------------------
Example of Method Overloading with Type Promotion in case of ambiguity
    class OverloadingCalculation3{ 
      void sum(int a,long b){System.out.println("a method invoked");} 
      void sum(long a,int b){System.out.println("b method invoked");} 
     
      public static void main(String args[]){ 
      OverloadingCalculation3 obj=new OverloadingCalculation3(); 
      obj.sum(20,20);//now ambiguity 
      } 
    } 

-----------------
Understanding the problem without method overriding

    class Vehicle{ 
      void run(){System.out.println("Vehicle is running");} 
    } 
    class Bike extends Vehicle{ 
       
      public static void main(String args[]){ 
      Bike obj = new Bike(); 
      obj.run(); 
      } 
    } 

--------------------------

Example of method overriding
    class Vehicle{ 
    void run(){System.out.println("Vehicle is running");} 
    } 
    class Bike2 extends Vehicle{ 
    void run(){System.out.println("Bike is running safely");} 
     
    public static void main(String args[]){ 
    Bike2 obj = new Bike2(); 
    obj.run(); 
    } 

-----------------------------





    class Bank{ 
    int getRateOfInterest(){return 0;} 
    } 
     
    class SBI extends Bank{ 
    int getRateOfInterest(){return 8;} 
    } 
     
    class ICICI extends Bank{ 
    int getRateOfInterest(){return 7;} 
    } 
    class AXIS extends Bank{ 
    int getRateOfInterest(){return 9;} 
    } 
     
    class Test2{ 
    public static void main(String args[]){ 
    SBI s=new SBI(); 
    ICICI i=new ICICI(); 
    AXIS a=new AXIS(); 
    System.out.println("SBI Rate of Interest: "+s.getRateOfInterest()); 
    System.out.println("ICICI Rate of Interest: "+i.getRateOfInterest()); 
    System.out.println("AXIS Rate of Interest: "+a.getRateOfInterest()); 
    } 
    } 

---------------------------------

Difference between method overloading and method overriding in java

There are many differences between method overloading and method overriding in java. A list of differences between method overloading and method overriding are given below:
No.Method Overloading Method Overriding
1)Method overloading is used to increase the readability of the program.Method overriding is used to provide the specific implementation of the method that is already provided by its super class.
2)Method overloading is performed within class.Method overriding occurs in two classes that have IS-A (inheritance) relationship.
3)In case of method overloading, parameter must be different.In case of method overriding, parameter must be same.
4)Method overloading is the example of compile time polymorphism.Method overriding is the example of run time polymorphism.
5)In java, method overloading can't be performed by changing return type of the method only. Return type can be same or different in method overloading. But you must have to change the parameter.Return type must be same or covariant in method overriding.



1 comment:

  1. class OverloadingCalculation3{
    void sum(int a,long b){System.out.println("a method invoked");}
    void sum(long a,int b){System.out.println("b method invoked");}

    public static void main(String args[]){
    OverloadingCalculation3 obj=new OverloadingCalculation3();
    obj.sum(20,20);//now ambiguity
    }
    }
    Please explain how did ambiguity happened in this program

    ReplyDelete