Skip to main content

Object Oriented Programming in java

Object Oriented Program or Oops is a technique to create programs based on the real world object. In the Oops programming model programs are organized around objects and data rather than actions and logic.

What is Oops?
          An Object Oriented Programming organizes a program around its data, i.e., objects and a set of well defined interfaces to that data. An object-oriented programming can be characterized as data controlling access to code.

Why Oops?
          Object Oriented Programming enables programmers define not only the data, but also its associated behaviors that can be applied to the data. It also enables programmers to create relationship between one object and another. For example, Objects can inherit characteristics from other objects. To understand the importance of Oops first we need to understand the problem with Procedural / Structural programming practices.

Problems with Procedure Oriented Programming?
          Procedure Oriented Programming suitable for small scale projects. But as the program increases in size, along with maintenance burden also increases. The modules were tightly integrated changes in one part of the module it also effects the other modules. Team developments not truly achievable. The next big problem with procedural programming was with respect to re-usability of the code. It was very difficult to write re-usable code, with minimum maintenance.

Advantages of Oops:
          Oops emulates the real world in a software system. Some of the advantages of Objects Oriented Programming includes,
  • Real-world programming
  • Reusability of code
  • modularity of code
  • Resilience to change
  • Information hiding
Features of Oops:
Object:  An object is any thing that exists in the world. An object will have properties and actions. Variable and methods are available in object. Object is the super class of all the classes in java. Objects are two types,
         1. Mutable Objects: which objects content can be modified, those objects are mutable objects. For example, StringBuffer,..
         2. Immutable Objects: Which object content can't be modified, those object are immutable objects. For example, String,..

Class: A class is a model of creating an object (or) A class is a blue print of an objects. Class can not exists physically. In the below mentioned few more important points about Class,
  • Without a class we can not create an object
  • But a class can exists without object
  • Class also will have variables(data) and methods(code)
  • There are three class access modifiers: public, protected, private.
  • There are four access levels: public, protected, default, private.
  • Classes can also be modified with final, abstract and strictfp
  • A class can not be both final and abstract
  • A final class prevents inheritance i.e. A final class can not extends to another class.
Abstraction: shows only necessary details and hides unnecessary information from the user is what called abstraction. The another definition for abstraction is abstraction refers to the act of representing an essential features without including background details.

Encapsulation: The exact definition of the encapsulation is binding up of data and methods into a single unit is called as encapsulation. POJO class is a example for encapsulation or else simply a class is example for encapsulation.
                             (or)
          private variables and public methods is also called as encapsulation. For example, I have declared a class with private variables and public methods which will work on variables. Private variables we can not access directly to other classes, we can access through only the public methods.

Inheritance: normal definition for inheritance is deriving a new class from existing class is called as inheritance. The newly derived class is called as subclass and existing class is called as super class. The main advantage of using inheritance is code re-usability. Subclass has the access of super class properties and all, but super class doesn't have access to subclass properties.


Polymorphism: Polymorphism word came from two Greek words. Poly means many morphism means forms. So, adding of these two words as Polymorphism means many forms. In java there are two types of polymorphism is there. 

                   1. Compiletime polymorphism
                   2. Runtime Polymorphism

Message Passing: calling a method is called message passing.

Why java is object oriented language?
          Java obeys all the features on Oops.

What is the difference between object oriented programming and object based programming?
          Object oriented language follows all the features of Oops.
Ex: C++, Java
          Object based programming languages contains all the features of Oops except inheritance.
Ex: Smalltalk, Simula67,JavaScript...

Object is an instance of a class:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package com.javatbrains;

public class Employee {
     // Properties
     int id;
     String name;

     // Methods
     public void demo(int id, String name) {
          System.out.println("Employee Id: "+ id);
          System.out.println("Employee Name: "+ name);
     }

     public static void main(String[] args) {
          // emp object is the instance of Employee class
          Employee emp = newEmployee();
          emp.demo(10, "JavaTBrains");
          System.out.println("Hashcode of the emp: "+emp.hashCode());
     }

}
OutPut:
     Employee Id: 10
     Employee Name: JavaTBrains
     Hashcode of the emp: 4072869
         
  • new operator(new Employee()) will create the object, objects are created JVM on dynamic memory.
  • Hashcode is produced or generated from memory address. Hashcode & memory address are not same. Hashcode is the reference of the object.
  • A class is called user defined datatype.
  • The variables which are stored in the object are called instance variables.
  • Method codes are stored in method area.
  • The unique code or id of every objects which is allotted by JVM.
  • When the instance variables are not initialized java compiler uses some default values to initialize them. It gives initial value on the data type.
Access Specifier:
          An access specifier is a keyword that represents, how to access the members of a class. There are four types of access specifiers.

      1. Private: A private member of a class is not available at any where outside of the class or makes a method or a variable accessible only with in the class. Which will declares the keyword as private.

      2. Public: A public members of a class are accessible from any where outside the class or makes a class, a method or a variable accessible from any other class. Which will declares the keyword as public.
      3. Protected: A protected members are available out side the class, but with in the package. Which will declares the keyword as protected.
      4. Default: If there is no specifier declared any front of the class or variable or method declaration, that treated as a default variable or default method or default class.


Opps Interview Questions and answers:

Q1: What is object oriented approach?

A: Object Oriented Programming approach is a Programming methodology to design computer programs using classes and objects.

Q2: What are the Oops features in java?

A: There are many features related to Object Oriented Approach. That are,
                      1. Class/Object
                      2. Encapsulation
                      3. Abstraction
                      4. Inheritance
                      5. Polymorphism

Q3: What is the difference between a class and object?

A: A class is a model for creating objects and does not exist physically. An object is any thing which exists physically. Both the class and object contains variables and methods.

Q4: What is the difference between Object Oriented Programming and Object Based Programming languages?

A: Object oriented Programming languages follow all the features of Object Oriented Programming System(Oops). Smalltalk, Simula-67, C++, Java are examples for Oops languages.
Object Based Programming languages follow all the features of OOPs, except inheritance. For example, JavaScript and VBScript will come under object based programming languages.

Q4: What is hash code?

A: Hash code is a unique identification number allotted to the objects by the JVM. This hash code number is also called reference number which is created based on the object in memory and is unique for all objects, except for String. 

Q5: How can you find hash code if an object?

A: The hashCode() method of 'Object' class in java.lang package is useful to find the hash code of an object. 

Q6: What is the use of constructor in java?

A: If you want to read about the Constructor related questions and answers. Please refer my post name as Constructor .

Q7: What is Overloading and Overriding in java?

A:  If you want to come to know what all the overloading and overriding related interview questions and answers follow with these link Overloading and Overriding in java.

Q8: What is Object Graph?


A: Object Graph is a graph showing relationship between different objects in memory.


If any one is facing other than these questions in interview, please share with me through "Contact Me Here" gadget or drop me an email to "admin@javatbrains.com".


Do you know? 

Comments

Popular posts from this blog

Multithreading in java with example

Multithreading  is one of the most important concept in core java. In this article we will learn what is multithreading? , what is the use of it? and What is the use of Synchronization and when to use it?  with detailed examples. At a time, two or more threads are accessing the same object is called as Multithreading  in Java .  First, we will create two threads for two objects. It is also possible to run two or more threads on a single class object. In this case, there is a possibility to get unreliable results. If the two threads are perform same task, then they need same object to be executed each time. For your better understanding, take an example of any reservations like, railway, movie ticket booking,etc. Let us think only one berth is available in a train and two passengers are asking for that berth. The first person has sent a request to allocate that ticket/berth to him. At the same time, the second person also sent a request to allocate that ...

Git installation for AngularJS 2 in Windows 10

Download Git latest version from https://git-scm.com/downloads or you click on the below link to download directly for windows https://git-scm.com/download/win . Once download completes, click on executable file to start installation process and choose Yes to allow the software installation in windows 10. Click on Next button to continue further installation. Browse the isntallation directory and click on Next button to continue. Select the list of components which you want to be installed and click on Next button to proced further installation. Type the shortcut name for Start menu and click on Next button. Select how you want to use the Git and click on Next button. For Windows no need to change anything, let it be the default one. Choose the Use the OpenSSL library and click on Next button. Select how should Git treat line ending in text files and click on Next button. Select which terminal emulator to use with Git and click on Next button. Configure extr...

JNDI configuration for Tomcat 9 with Oracle

In this article, I am going to place the required source code to get data from the table by using the JNDI configuration. Below are the environment details that I have configured currently. Windows - 7 Oracle - 10g Tomcat - 9 JDK - 8 Eclipse Oxygen Ojdbc6 jar required First, we need to create the Dynamic Web Project. If you don't know how to do <Click Here>. I have faced a lot of issues before getting the output like 405, No driver class to load, etc. I am using JSP & Servlets in the current explanation. Before started writing the application logic, we need to do the below configuration in the installed tomcat directory. Place OJDBC6.jar in the Tomcat LIB directory. Add this Resource under <GlobalNamingResources> in Server.xml file which is present under the conf directory in Tomcat. < Resource name = "jdbc/myoracle" global= "jdbc/myoracle" auth = "Container" type= "javax.sql.DataSource" driverClass...