Learn Java Step by Step and become an Expert

The one-stop place to learn, understand the Java Programming Language from the basics and become an Expert.
3.5 (96 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
11,368 students enrolled
25% off
Take This Course
  • Lectures 21
  • Length 2.5 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 2/2016 English

Course Description

In this course, You will learn how to develop and execute Java Programs in a step by step approach with clear & precise examples and you can easily master the Java programming language.

Any Programming Language can be easily learned if the concepts are taught with proper examples. This course is created with that view and I hope, with this approach, you will succeed.

This Java course is meant for newbie’s who have want to learn and understand the Java programming language. This course is also designed in such a way that even experienced developers can learn new stuffs and also will be a good course for refresh their knowledge.

In this course, you will

1) Learn to set up the development environment to develop and execute Java Programs.
2) Understand the concepts of object oriented programming.
3) Understand Java Packages and Access Specifiers.
4) Learn the various Object Oriented Programming Concepts step by step with clear & precise examples.

What are the requirements?

  • Basic computer knowledge knowing how to install various softwares and understanding of basic programming concepts.

What am I going to get from this course?

  • Learn, Develop and Execute Java Programs in a step by step approach and easily master the language.

Who is the target audience?

  • This Java course is meant for newbies who have want to learn and understand the java programming language .
  • This course is designed in such a way that even experienced developers can learn new stuffs and will be a good refresher course.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.



In this lecture, we will go over the objective and details of the course & how it is structured.

Section 1: Setting up the Environment

In this lecture, we will understand how to download the JDK and install it. Also, we will work on setting the required environment variables.


In this lecture, we will download Eclipse IDE and extract it. Also, we will open the Eclipse IDE and ensure that it is pointing to the JDK that we installed.


In this lecture, we will develop and execute the first program in Eclipse IDE.

Section 2: Class & Objects

Object Oriented Programming is Real World Programming where we mimic the real world interaction in a computer system.


What is a Class?

  • It is a template or blueprint of what it contains (State & Behaviour).
  • Logical Entity.

What is an Object?

  • Object is an instance of a Class (When you give life to a Class).
  • Physical Entity (Memory is allocated once you create an Object).

In this lecture, we will understand what happens when an object is created. Also, we will discuss on the scenario where more than one object reference point to the same object.

Section 3: Packages & Access Specifiers


A Package is a namespace that organizes a set of related classes and interfaces.

Advantages of using package:-

  1. Java package is used to categorize the classes and interfaces so that they can be easily maintained.
  2. Java package provides access protection.
  3. Java package removes naming collision.

Access Specifiers (Controlling Access):-

Access Specifiers determine whether other classes can use a particular class, particular field or invoke a particular method.

At a class level, we have two access specifiers:-

  1. Default - access the class only within the package
  2. Public - access the class not only within the package but outside the package as well (anywhere).

At a data member and method level, we have the following access specifiers:-

  • Private - access only within the class only.
  • Default - access only within the package.
  • Protected - (We will discuss later)
  • Public - access anywhere (both inside and outside)

Encapsulation in Java is a mechanism of wrapping the data (variables) and code acting on the data (methods) together as as single unit.

In encapsulation the variables of a class will be hidden from other classes, and can be accessed only through the methods of their current class, therefore it is also known as data hiding.

To achieve encapsulation in Java:-

  1. Declare the variables of a class as private.
  2. Provide public setter and getter methods to modify and view the variables values.
Section 4: OOPS Part 1:- Constructors, Method Overloading, This reference

Constructor is a special type of method that is used to initialize the object and is automatically invoked when the object is created.

Constructor name must be same as its class name & Constructor must have no explicit return type.

There are two types of constructors namely:

  • Default constructor (no-arg constructor)
  • Parameterized constructor

Method Overloading

If a class have multiple methods by same name but with different signatures, it is known as Method Overloading.

What does signature mean?

  • Number of arguments
  • Data type of arguments
  • Order of the arguments

It does not consider the return type

Method overloading increases the readability of the program.

This Reference
Section 5: OOPS Part 2:- Relationships

Relationships between classes

There are two types of relationships between classes:-

1) Is a relationship (Inheritance)

2) Has a relationship (Aggregation)

Class Employee{


Class FullTimeEmployee extends Employee{


Class PartTimeEmployee extends Employee{


Inheritance (Is a relationship) continued...
Protected Access Specifier
Inheritance - Order of Constructor Execution

Aggregation (Has a relationship / Contains)

class Engine{


class Tyre{


class Car{

Engine engine;

Tyre[] tyre;


Use of Super Keyword in Java
Method Overriding
Section 6: OOPS Part 3:- Static, Interfaces, Abstract Classes
The static keyword to create fields and methods that belong to the class, rather than to an instance of the class.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Navaneetha Nataraj, Solution Architect and Passionate Trainer

I am Navaneetha Nataraj. I have been working in IT for the last ten years and have expertise in developing applications using Java, J2EE and Oracle technologies. I have worked for big tech companies namely Intel, SAP & Oracle and also build large scale applications for clients like Qualcomm and Emerson. I am passionate about learning new technologies and also teach people how to learn it in the better and easier way.

In my spare time, I provide 1 to 1 trainings through Webex and spend lot of my time surfing the internet - learning and understanding new technologies.

Ready to start learning?
Take This Course