DEV Community

loading...

JAVA and Object Oriented Programming Basic

Md. Ashikur Rahman
Experience in full stack (PHP, Java, Javascript, MySQL, MongoDB, Linux, Apache - LAMP, MEAN stacks) software development following Agile (Scrum, XP).
Updated on ・3 min read

JAVA and Object Oriented Programming Basic

Ashikur Rahman

Any real-life entity/object have two parts

  • Properties (Describes its height, weight, width etc.)
  • Functionality (Describes how it behaves)

Object-oriented programming removes some constraints of procedural programming language.

  • Modularity (Logic are modular)
  • Reusability (Code are re-usable fashion)
  • Extendable (Code are extendable)

Object

An object is an entity which has

  • Identity (Names)
  • State (Values)
  • Behavior (Performance) An object is an individual representation of a real-world entity.

Class

A class is a template, helps to describe common

  • Attributes (e.g. customer id, name, telephone no…)
  • Activities (e.g. purchasing an item, etc.) Example of a real-world entity (Customer)

Definition of a class of different perspective:

  • A class is a blueprint/real-world entity
  • A class is a generalized representation
  • A class is an encapsulation of properties and corresponding functionality A program is a set of instruction to solve a problem UML (Unified Modeling Language) A class diagram is a notation used to represent a class in a document. Class diagram is a kind of UML. UML is a language for visualizing, specifying, constructing and documenting the software.

Access modifier/specifies

(-) Private: Only can be accessed from inside the class where it is declared.
(+) public: Can be accessed from anywhere

It is recommended that in a class all the variable/properties should be private and all the method/functions should be public.
Five feature of object-oriented programming:

  • Classes and objects
  • Abstractions
  • Encapsulations
  • Inheritance
  • Polymorphism

Abstraction:
Hiding unnecessary details and showing only necessary details. The concept of identifying the essential details to be known and ignoring the non-essential details from the perspective of an end user.
(E.g.: Method name and parameter need to be known, we need not know the whole process)

Encapsulations:
Combining all elements into a capsule (E.g. : A class, which contains attributes and functions and all those attributes and functionality need not be exposed using access modifier we can achieve this).
The concept of hiding internal details and providing a simple interface to the user.

Inheritance:
Concepts of which allows defining generalized and specialized characteristic and behavior. The specialize entities automatically inherit all the properties and behavior of the generic one.

  • All the generalize details will be present in a parent class
  • All the specialize details will be present in a child class
  • A child class will extend the parent to get the generalize properties.

Polymorphism:
If the same method behaves different ways in different situations

Object-oriented system development:
3 main phases

  • Object-oriented analysis (OOA)
  • Object-oriented design (OOD)
  • Object-oriented programing (OOP)

OOA: Analysis the problem structure and identifying the number and the name of the class
OOD: Elaborate class structure, what should contain (attribute and functionality)
OOP: The process of implementing the design using the object-oriented programing language

Member variables: Used for representing the state of an object/attribute of a class called member variable also called global variables.

Access modifier: Used to access or hide the attribute and the behavior of the class

The following syntax can be used to create an object of a customer class and refer is using a reference variable.

Customer custobject= new Customer();
Custobject – Reference variable and new Customer() – is the object.

JAVA architecture is composed 3 components

  • JAVA programming language
  • JAVA byte code
  • JAVA virtual machine

.java -> .javac -> .class ->Interpreter (Win32) or Interpreter (Linux) or Interpreter (Mac)

JAVA is a byte code level platform independent
Platform independency depends on

  • Source code level
  • Byte code/ executable level

.cpp or c++ is a source code level platform independent but in executable level, it is not. The only component in JAVA which is platform dependent is JVM (Java virtual machine)

JVM – Converts bytecode to corresponding machine level language and executes the instructions.
JDK – Create/develop JAVA in runtime
JRE – Runtime/ Kit just to run and compile or convert the code to bytecode
JVM – Interpreter/ Read line by line and convert byte to executable

During the execution of a program, the storage of a program and data as follows:

  • All the java code stored in the memory called code segment
  • All the global variable we declare for a class stored in the data segment
  • All the variable which declare inside the class and outside of all the function is called member variable/ global variable
  • Life of a member variable depends on an object
  • The reference which points to a newly created object is called reference variable
  • All the details of a class should be present in the { }

Private int a;
Public void geta(){}

When we create an object it resides in the heap memory.
New keyword returns a newly created object.
The reference variable is simple variable use to access the object which is created in a heap memory.
Main is the starting point of execution of any Java program.

Discussion (0)