Java data types with examples


  1. Primitive data types or Fundamental data types.
  2. Referenced data types or Derived data types.



1.Primitive Data types


1.byte

  1. package com.instanceofjava;
  2.  
  3. public class ByteDemo {
  4.  
  5. public static void main(String[] args) {
  6.  
  7.         byte a=10; // a is a variable of type byte holding the value 1;
  8.         byte b=20;// b is a variable of type byte holding the value 2;
  9.         
  10.         byte c= (byte)(a+b);
  11.         System.out.println(c);
  12.  
  13.     }
  14. }

Output:

  1. 3

2.short

  1. package com.instanceofjava;
  2.  
  3. public class ShortDemo {
  4.  
  5. public static void main(String[] args) {
  6.  
  7.         short a=1;
  8.         short b=2;
  9.         
  10.         short c= (short)(a+b);
  11.         System.out.println(c);
  12.  
  13.     }
  14. }

Output:

  1. 3

3.int

  1. package com.instanceofjava;
  2.  
  3. public class IntDemo {
  4.  
  5. public static void main(String[] args) {
  6.  
  7.         int a=10; // a is a variable of type integer holding the value 10;
  8.         int b=20;// b is a variable of type integer holding the value 20;
  9.         
  10.         int c= a+b;
  11.         System.out.println(c);
  12.  
  13.     }
  14. }

Output:

  1. 30


4.long

  1. package com.instanceofjava;
  2.  
  3. public class LongDemo {
  4.  
  5. public static void main(String[] args) {
  6.  
  7.         long a=1234567890;
  8.         long b=1234567890;
  9.  
  10.         long c= a+b;
  11.  
  12.         System.out.println(c);
  13.  
  14.     }
  15. }

Output:

  1. 2469135780


5.float

  1. package com.instanceofjava;
  2.  
  3. public class FloatDemo {
  4.  
  5. public static void main(String[] args) {
  6.  
  7.         float a=1234567.8f;
  8.         float b=1234567.8f;
  9.  
  10.         float c= a+b;
  11.  
  12.         System.out.println(c);
  13.  
  14.     }
  15. }

Output:

  1. 2469135.5


7.double

  1. package com.instanceofjava;
  2.  
  3. public class DoubleDemo {
  4.  
  5. public static void main(String[] args) {
  6.  
  7.         double a=1234567910112181314151634444422233334491.1d;
  8.         double b=1234567910112181314151634444422233334491.8d;
  9.         double c= a+b;
  10.         System.out.println(c);
  11.  
  12.     }
  13. }

Output:

  1. 2.4691358202243627E39



8.char

  1. package com.instanceofjava;
  2.  
  3. public class CharDemo {
  4.  
  5. public static void main(String[] args) {
  6.  
  7.         char a='A';
  8.         char b= 'B';
  9.  
  10.       System.out.println(a);
  11.       System.out.println(b);
  12.       System.out.println(a+b);
  13.  
  14.     }
  15. }

Output:

  1. A
  2. B
  3. 131


9.boolean

  1. package com.instanceofjava;
  2.  
  3. public class BooleanDemo {
  4.  
  5. public static void main(String[] args) {
  6.  
  7.         boolean a=true;
  8.         boolean b= false;
  9.  
  10.       System.out.println(a);
  11.       System.out.println(b);
  12.   
  13.  
  14.     }
  15. }

Output:

  1. true
  2. false

1.Referenced Data types

1.class


  1. package com.instanceofjava;
  2.  
  3. public class Sample{
  4.  int a,b; 
  5.  
  6. void add(){
  7. System.out.println(a+b);
  8. }

  9. public static void main(String[] args) {
  10.  
  11.        Sample obj= new Sample();
  12.  
  13.        obj.a=10;
  14.        obj.b=12;

  15.        obj.add();
  16.  
  17.     }
  18. }

Output:

  1. 22

2.Array

  1. package com.instanceofjava;
  2.  
  3. public class ArrayDemo {
  4.  
  5. public static void main(String[] args) {
  6.  
  7.         int a[]={1,2,3,4,5,6};
  8.  
  9.         for (int i = 0; i < a.length; i++) {
  10.             System.out.println(a[i]);
  11.         }
  12.   
  13.  
  14.     }
  15. }

Output:

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6


Constructors in java





  • Constructors will be executed when the object is created.
  • Constructors should have same name of class name.
  • Executed once per object.
  • Basically used to assign instance variables
  • We can overload constructors.
  • We can call super class constructor form sub class constructor.






  1. package instanceofjava;
  2. class A{
  3. A(){
  4. }
  5. }
  6. }

  • while creating object constructor will be executed so we can assign instance variables to some default values.

  1. package instanceofjava;
  2. class A{
  3. int a,b
  4. A(int x, int y){
  5. a=x;
  6. b=y;
  7. }
  8.  
  9. public static void main(String[] args){
  10.  A a=new A(10,20);

  11. }
  12. }

Types of constructors:

  • There are two types of constructors 
  • Default constructors
  • Parameterized constructor.

Default constructor:

  •  Default constructor will not have any arguments.
  • If we not defined any constructor in our class. JVM automatically defines a default constructor to our class.
  1. package instanceofjava;
  2. class Sample{
  3. int a,b
  4. Sample(){
  5. a=37;
  6. b=46;
  7. }
  8.  
  9. public static void main(String[] args){
  10.  
  11.  Sample obj=new Sample();
  12.   System.out.println(obj.a);
  13.   System.out.println(obj.b);
  14.  
  15. }
  16. }

Output:

  1. 37
  2. 46

Parameterized constructor


  1. package instanceofjava;
  2. class Sample{
  3. int a,b
  4. Sample(int x, int y){
  5. a=x;
  6. b=y;
  7. }
  8.  
  9. public static void main(String[] args){
  10.  
  11.  Sample obj=new Sample(37,46);
  12.   System.out.println(obj.a);
  13.   System.out.println(obj.b);
  14.  
  15. }
  16. }

Output:

  1. 37
  2. 46

Constructor overloading:

  1. package instanceofjava;
  2. class Sample{
  3. int a,b 
  4. Sample(){
  5. this(1,2);
  6.  System.out.println("Default constructor");
  7.  
  8. }
  9. Sample(int x , int y){
  10.  
  11. this(1,2,3); 
  12. a=x;
  13. b=y;
  14.  System.out.println("Two argument constructor");
  15.  
  16. }
  17.  
  18. Sample(int a , int b,int c){
  19.  System.out.println("Three argument constructor")
  20. }
  21. public static void main(String[] args){
  22.  
  23.  Sample obj=new Sample();
  24.   System.out.println(obj.a);
  25.   System.out.println(obj.b);
  26.  
  27. }
  28. }


Output:

  1. Three argument constructor
  2. Two argument constructor
  3. Default argument constructor
  4. 1
  5. 2





This and Super Keywords


  • this keyword used to store current object reference.
  • super keyword used to store super class reference in subclass object.

this keyword:

  • Predefined instance variable to hold current object reference.

It must used explicitly if non-static variable and local variable name is same.

 

 





  1. package com.instanceofjava;
  2.  
  3. public class ThisDemo {
  4.     int a, b;
  5.  
  6.  ThisDemo(int a, int b){
  7.  
  8.         a=a;
  9.         b=b;
  10.  }
  11.  
  12.     public static void main(String[] args){
  13.  
  14.         ThisDemo obj= new ThisDemo(1,2);
  15.         
  16.         System.out.println(obj.a);
  17.         System.out.println(obj.b);
  18. }
  19. }

Output:

  1. 0
  2. 0
  • Without this keyword if variable names are same we can not assign instance variables so this problem will solve by using this keyword

  1. package com.instanceofjava;
  2.  
  3. public class ThisDemo {
  4.     int a, b;
  5.  
  6.  ThisDemo(int a, int b){
  7.  
  8.         this.a=a;
  9.        this.b=b;
  10.  }
  11.  
  12.     public static void main(String[] args){
  13.  
  14.         ThisDemo obj= new ThisDemo(1,2);
  15.         
  16.         System.out.println(obj.a);
  17.         System.out.println(obj.b);
  18. }
  19. }

Output:

  1. 1
  2. 2

Used to invoke current class constructor:

  1. package com.instanceofjava;
  2.  
  3. public class ThisDemo {
  4.     int a, b;
  5.  
  6. ThisDemo(){
  7. System.out.println("Default constructor called");
  8. }

  9.  ThisDemo(int a, int b){
  10.        this();
  11.         this.a=a;
  12.        this.b=b;
  13.  }
  14.  
  15.     public static void main(String[] args){
  16.  
  17.         ThisDemo obj= new ThisDemo(1,2);
  18.         
  19.         System.out.println(obj.a);
  20.         System.out.println(obj.b);
  21. }
  22. }

Output:

  1. Default constructor called
  2. 1
  3. 2

Used to call current class method:

 

  1. package com.instanceofjava;
  2.  
  3. public class Sample{
  4.     int a, b;
  5.  

  6.  Sample(int a, int b){
  7.       
  8.        this.a=a;
  9.        this.b=b;
  10.  }
  11.  
  12. void show(){
  13.  
  14. System.out.println("Show() method called");
  15.    
  16. }
  17.  
  18. void print(){
  19.  
  20.     this.show();
  21.     System.out.println(obj.a);
  22.     System.out.println(obj.b);
  23.  
  24.  }
  25.     public static void main(String[] args){
  26.  
  27.         Sample obj= new Sample(1,2);
  28.         
  29.       
  30.         obj.print()
  31. }
  32. }



Output:

  1. Show() method called
  2. 1
  3. 2

super keyword:

  • Predefined instance variable used to hold super class object reference through sub class object.

 

Used to call super class constructor:



  1. package com.instanceofjava;
  2.  
  3. public class A{
  4.     int a, b;
  5.  
  6.  A(int a, int b){
  7.  
  8.         a=a;
  9.         b=b;
  10. System.out.println("super class constructor called");
  11.  
  12.  }
  13.  
  14. }


  1. package com.instanceofjava;
  2.  
  3. public class B extends A{
  4.     int a, b;
  5.  
  6.  A(int a, int b){
  7.     super(a,b);
  8.         a=a;
  9.         b=b;
  10. }
  11. public static void main(String[] args){
  12.  
  13.         B obj= new B(1,2);
  14.         
  15.     
  16. }
  17.  
  18.  }
  19.  
  20. }

Output:

  1. super class constructor called
  2. 1
  3. 2

Used to call super class methods from subclass:


  1. package com.instanceofjava;
  2.  
  3. public class A{
  4.     int a, b;
  5.  
  6.  A(int a, int b){
  7.  
  8.         a=a;
  9.         b=b;
  10. System.out.println("super class constructor called");
  11.  
  12.  }
  13.  
  14. void add(){
  15. System.out.println("super class method called");
  16. }
  17.  
  18. }


  1. package com.instanceofjava;
  2.  
  3. public class B extends A{
  4.     int a, b;
  5.  
  6.  A(int a, int b){
  7.     super(a,b);
  8.         a=a;
  9.         b=b;
  10. }
  11. void print(){ 
  12. super.add();
  13. System.out.println(this.a);
  14. System.out.println(this.b);
  15.  


  16. }
  17. public static void main(String[] args){
  18.  
  19.         B obj= new B(1,2);
  20.         
  21.        obj.print();
  22. }
  23.  
  24.  }
  25.  
  26. }

Output:

  1. super class method called
  2. 1
  3. 2

Abstraction

  • Abstraction is fundamental principle of modeling. A system model is created at different levels, starting at the higher levels and adding more levels with more details as more is understood about the system. When complete, the model can be viewed at several levels.
  • So abstraction is about,
  • Looking only at the information that is relevant at that time
  • Hiding details so as not to confuse the bigger picture


  • Abstraction is a process of developing a class by hiding or removing non essential details relevant to user. here non essential details means method body and logic 
  • Basically Abstraction provides a contract between a service provider and clients.
  • we can achieve this by using abstract class

  1. package Abstraction;
  2. public abstract class AbstractDemo {
  3.  
  4.     abstract void add(); // abstract method
  5.  
  6.  void show(){ // normal method
  7.         System.out.println("this is concrete method present in abstract class");
  8.  }
  9. }
  • Abstract class can not be instantiated directly.
  • Means we can not create object for abstract class directly

  1. package Abstraction;
  2. public abstract class AbstractDemo {
  3.  
  4.     abstract void add(); // abstract method
  5.  
  6.  void show(){ // normal method
  7.         System.out.println("this is concrete method present in abstract class");
  8.  }
  9.  
  10. public static void main(String[] args){
  11.  
  12. AbstractDemo   obj= new AbstractDemo(); 
  13. // ERROR: Cannot instantiate the type AbstractDemo
  14.  
  15. }
  16. }

Can we declare abstract methods as static?

  1. package Abstraction;
  2. public abstract class AbstractDemo {
  3.  
  4.     static abstract void add(); // ERROR: illegal combination of modifiers
  5.  
  6.  void show(){ // normal method
  7.         System.out.println("this is concrete method present in abstract class");
  8.  }
  9. }
  • No, we are not allowed to declare method as static . It leads to compile time error.

Can we declare abstract methods as final?


  1. package Abstraction;
  2. public abstract class AbstractDemo {
  3.  
  4.     final abstract void add(); // ERROR: illegal combination of modifiers
  5.  
  6.  void show(){ // normal method
  7.         System.out.println("this is concrete method present in abstract class");
  8.  }
  9. }
  • No, we are not allowed to declare method as static . It leads to compile time error.
  • Because it should be inherited to sub class.


Can we declare abstract methods as private?

  1. package Abstraction;
  2. public abstract class AbstractDemo {
  3.  
  4.     final abstract void add(); // ERROR: illegal combination of modifiers
  5.  
  6.  void show(){ // normal method
  7.         System.out.println("this is concrete method present in abstract class");
  8.  }
  9. }
  • No, we are not allowed to declare method as static . It leads to compile time error.
  • Because it should be inherited to sub class.

 Legal modifiers allowed in combination with abstract

 1.native

  1. package Abstraction;
  2. public abstract class AbstractDemo {
  3.  
  4.     native abstract void add(); // ERROR: illegal combination of modifiers
  5.  
  6.  void show(){ // normal method
  7.         System.out.println("this is concrete method present in abstract class");
  8.  }
  9. }

 2.protected

  1. package Abstraction;
  2. public abstract class AbstractDemo {
  3.  
  4.     protected abstract void add();
  5.  
  6.  void show(){ // normal method
  7.         System.out.println("this is concrete method present in abstract class");
  8.  }
  9. }

 3.public

  1. package Abstraction;
  2. public abstract class AbstractDemo {
  3.  
  4.    public abstract void add();
  5.  
  6.  void show(){ // normal method
  7.         System.out.println("this is concrete method present in abstract class");
  8.  }
  9. }



 4.default

  1. package Abstraction;
  2. public abstract class AbstractDemo {
  3.  
  4.   abstract void add();
  5.  
  6.  void show(){ // normal method
  7.         System.out.println("this is concrete method present in abstract class");
  8.  }
  9. }


How it works:

  1. package Abstraction;
  2. public abstract class AbstractDemo {
  3.  
  4.   abstract void add();
  5.  
  6.  void show(){ // normal method
  7.         System.out.println("this is concrete method present in abstract class");
  8.  }
  9. }


  1. package Abstraction;
  2. public abstract class Example extends AbstractDemo {
  3.  
  4.   abstract void add(){
  5.   System.out.println("this is implemented method in sub class");
  6. }
  7.  
  8.  
  9. }

Polymorphism


  • Defining multiple methods with same name
  • Static polymorphism and dynamic polymorphism

Static polymorphism:

  • Its a process of defining multiple methods with the same name and with different parameter types or list or order is called static polymorphism
  • Compile time itself we can say which method is going to get executed based on parameters types.
  • So its also called compile time polymorphism.
  • This will be achieved by method overloading.
  • Method overloading means defining multiple methods with same name and different parameters.
  • If two methods have same method name , But different parameter types those methods are considered as overloaded methods.
  • Will see example program on method overloading.

 Example program on method overloading:


  1. package instanceofjava;
  2.  
  3. public class OverloadingDemo {
  4.  
  5. void add(){
  6.     System.out.println("No-arg method");
  7. }
  8.  
  9. void add(int i){
  10.     System.out.println("int-arg method");
  11. }    
  12.  
  13. void add(String str){
  14.     System.out.println("String-arg method");
  15. }
  16.  
  17. void add(float d){
  18.     System.out.println("float-arg method");
  19. }
  20.  
  21. void add(int a, int b){
  22.     System.out.println("2 int-arg method");
  23. }
  24.  
  25. public static void main(String[] args){
  26.  
  27.     OverloadingDemo obj= new OverloadingDemo();
  28.  
  29.     obj.add();
  30.     obj.add(10);
  31.     obj.add(1.2f);
  32.     obj.add("java");
  33.     obj.add(1, 2);    
  34.  
  35. }
  36. }

Output


  1. No-arg method
  2. int-arg method
  3. float-arg method
  4. String-arg method
  5. 2 int-arg method

Method overloading with reference types:

  • We can also overload method with reference types, check below program.

  1. package instanceofjava;
  2. public class Test {
  3.  
  4. void show(){
  5.  
  6.         System.out.println("test class show() method");
  7. }
  8.  
  9. }

  1. package instanceofjava;
  2.  
  3. public class Example {
  4.  
  5. void method(String s){
  6.  
  7.        System.out.println("String-arg");
  8.  
  9. }
  10.  
  11. void method(Test obj){
  12.  
  13.     System.out.println("method(Test obj)-arg");    
  14.    obj.show();
  15.  
  16. }
  17.  
  18.  public static void main(String[] args){
  19.  
  20.     Example obj= new Example();
  21.     obj.method("polymorphism definition in oops");
  22.     obj.method(new Test());
  23.  
  24.     }
  25. }

Output:


  1. String-arg
  2. method(Test obj)-arg
  3. test class show() method

Dynamic polymorphism:

  • Redefining the super class method in sub class is called "method overriding" .
  • Method overriding is a language feature that allows a sub class to provide a specific implementation of a method that is already provided by one of its super class.
  • The implementation in the sub class overrides the implementation in the super class.
  • This is also called dynamic polymorphism / runtime polymorphism.

  1. package instanceofjava;
  2.  
  3. public class A{
  4.  
  5. void show(String s){
  6.  
  7.   System.out.println("super class method");
  8.  
  9. }
  10.  
  11. }

  1. package instanceofjava;
  2.  
  3. public class B extends A{
  4.  
  5. void show(String s){
  6.  
  7.   System.out.println("sub class method");
  8.  
  9. }
  10.  public static void main(String[] args){
  11. B obj =new B();
  12. obj.show();
  13. }
  14. }

Output:

  1. sub class method

We can not override static methods:

  • Actually static variables and static methods are class level. they are not instance level.
  • So if you try to override a static method will throw compile error
  1. package instanceofjava;
  2. public class Super {
  3.     int a,b;
  4.     static void add(){
  5.         System.out.println("super class add() method");
  6.     }
  7. }


  1. package instanceofjava;
  2. public class Sub extends Super {
  3.  
  4.  void add(){ // ERROR:This instance method cannot override the static method
  5.         System.out.println("this is sub class add() method");
  6. }
  7.  
  8.     public static void main(String [] args){

  9.         Sub obj= new Sub();
  10.  
  11.     } 
  12. }



  • Static methods are class level so we need to access by using class name.

  1. package instanceofjava;
  2. public class Sub extends Super {
  3.  
  4.  static void add(){// works fine
  5.         System.out.println("this is sub class add() method");
  6. }
  7.  
  8. public static void main(String [] args){

  9.    Super.add();
  10.    Sub.add();
  11.  
  12.  
  13.     } 
  14. }

Output:


  1. super class add() method
  2. sub class add() method

Method Overriding - Exceptions:

  •  When we overriding a method from super class to sub class. we need to follow some rules
  • Whenever sub class method throws checked exception then super class method must be declared throws with same exception or super class of that checked exception.
  1. package instanceofjava;
  2. public class Super {
  3.     int a,b;
  4.     void add(){
  5.         System.out.println("super class add() method");
  6.     }
  7. }


  1. package instanceofjava;
  2. public class Sub extends Super {
  3.  
  4.  void add() throws IOException{ // ERROR:     - Exception IOException is not compatible with
  5.                                                       //throws clause in  Super.add()
  6.         System.out.println("this is sub class add() method");
  7. }
  8.  
  9.     public static void main(String [] args){

  10.         Sub obj= new Sub();
  11.  
  12.     } 
  13. }



  1. package instanceofjava;
  2. public class Super {
  3.     int a,b;
  4.     void add()throws IOException{
  5.         System.out.println("super class add() method");
  6.     }
  7. }


  1. package instanceofjava;
  2. public class Sub extends Super {
  3.  
  4.  void add() throws IOException{// works fine
  5.         System.out.println("this is sub class add() method");
  6. }
  7.  
  8.     public static void main(String [] args){

  9.         Sub obj= new Sub();
  10.  
  11.     } 
  12. }

Inheritance Definition and Programs

  • Getting the properties from one class object to other class is known as inheritance.
  • In this inheritance will have parent class and child class so getting the properties of parent class object to child class object known as inheritance.
  • Inheritance means to take something that already made.
  • Inheritance can be implemented in java by using "extends" and "implements' keywords
  • In this we have two types.
  • Multilevel inheritance
  • Multiple inheritance

Multilevel inheritance:

  • Getting the properties from super class object to sub class object level wise with different priorities known as multiple inheritance.

Super class:

  1. package instanceofjava; 

  2. public class Super {
  3.  
  4.     int a,b;
  5.  
  6. void add(){
  7.  
  8.     System.out.println((a+b));
  9.  
  10. }
  11.  
  12. }

Sub class:

  1. package instanceofjava;
  2.  
  3. public class Sub extends Super {
  4.  
  5. void show(){
  6.  
  7.       System.out.println("this is sub class show() method");
  8.  
  9. }
  10.  
  11. public static void main(String [] args){
  12.  
  13.        Sub obj= new Sub();
  14.  
  15.         obj.a=1;
  16.         obj.b=2;
  17.  
  18.         obj.add();
  19.         obj.show();
  20.  
  21.     }
  22. }



Output:

  1. 3
  2. this is sub class show() method

Example program #2:

  1. package instanceofjava;
  2.  
  3. public class A {
  4.  
  5.     int a,b;
  6.  
  7. public void show(){
  8.  
  9.   System.out.println("A class show method");
  10.  
  11. }
  12.  
  13. }



  1. package instanceofjava;
  2.  
  3. public class B extends A{
  4.  
  5.  
  6. public void print(){
  7.  
  8.   System.out.println("B class print method");
  9.  
  10. }
  11.  
  12. }

  1. package instanceofjava;
  2.  
  3. public class C extends B{
  4.  
  5.  
  6. public void display(){
  7.  
  8.   System.out.println("C class display method");
  9.  
  10. }
  11. public static void main(String [] args){
  12.  
  13.  C obj= new C();
  14.  
  15.    obj.print();
  16.    obj.show();
  17.    obj.display();

  18. }
  19.  
  20. }

Output:

  1. B class print() method
  2. A class show method
  3. Class C display method

Multiple inheritance:

  • Multiple inheritance means getting the properties from one class object to multiple class object with different priority.
  • Multiple inheritance concept is not supported by java

  1. package instanceofjava;
  2.  
  3. public class A {

  4.  
  5. public void show(){
  6.  
  7.   System.out.println("A class show method");
  8.  
  9. }
  10.  
  11. }

  1. package instanceofjava;
  2.  
  3. public class b {
  4.  
  5. public void show(){
  6.  
  7.   System.out.println("B class show method");
  8.  
  9. }
  10.  
  11. }


  1. package instanceofjava;
  2.  
  3. public class C extends A,B {  // not supported by java
  4.  
  5.  
  6.  
  7. public void print(){
  8.  
  9.   System.out.println("C class print method");
  10.  
  11. }
  12.  
  13. }


You Might Like:

1. Java Interview Programs On Core Java

2. Java Interview Programs On Collections 

3. What is The Output Of Following Programs Java Interview:

4. Java Concept and Example Program

Select Menu