Java Training – Learn How to Define the Scope of Elements in Java Programs with Access Modifiers

Author Image Icon

Niral Modi

Last Updated: 12 Mar 2023

Access modifiers are the most important elements defining the scope of variables, methods, classes and constructors used in the program. These are a part of Java basics and can be well learnt in a through Core Java training course.

Access modifiers are the important elements of a java program that define the scope of various variables, classes, methods and constructors in the program. They define the structure of a program and hence their clean and effective use is important for efficient programming. Every core java learner would be aware of the usage of these access specification keywords because each and every Core Java developer course usually starts with training on the basic programming fundamentals which also include the access modifiers too. Hence, taking up a Core Java training course in a reputed institute can help you gain better understanding of the basic concepts for further advancing into the vast Java programming world! Through such Java course, an individual can learn the ways to define the scope in Java and hence, learn the strategies of defining proper structure for the programs.
Placement Banner

Get 100% Job Placement support & get placed in your dream company

Job Guarantee
3000+ Companies Tie-Ups

Enter Your Details Now
There are essentially three different types of access modifiers used in Java programming explicitly – public, private and protected, while the one called “default” is set automatically to the elements where no access modifier has been specified.

Let us now see in detail about each and every access specifier in Java with an appropriate example.


A variable or method starting with the keyword “public” would be accessible all round the program. Usually the variables and functions that are to be accessed from everywhere in the program, are set to public. Public is least protective of the access controllers and hence, need to be used wisely to allow only those entities which you want to be accessed by anything or everything in the program.

There would be four access levels basically in a java program with respect to the access of variables, methods, classes. They are the class, package, sub class and other packages. The elements of the program defined as public would be accessed across all these levels freely.

For example:

package training;

public class Java Training


public void java()


public int demo=0;

System.out.println(“This is a Java Course”);


Now in the above example you can access the variable demo or the method java() anywhere in the entire program without any restriction. For instance, if you want to access java() in another package called training1, then all you need to do is to import training package into training1 with following code.

package training1;



This is the most protective of the access modifiers in Java and hence, does restrict the scope of the variables, classes or methods within the same class. The elements declared as private can nowhere else be accessed other than that class itself.

Consider the below example:

class JavaTraining {

private int numberOfstuds=10;//private variable

public void showDemo() {

System.out.println(“The Variable value is ” + numberOfstuds);


private void testDemo() {

System.out.println(“It cannot be accessed in another class”);



public class JavaTraining1


public static void main(String[] args) {

JavaTraining jt = new JavaTraining();

jt.testDemo(); // Private method cannot be used

jt.numberOfstuds = 5; // Private variable cannot be used

jt.showDemo();//runs properly




Protected has the same scope as that of private access specifier except that the elements declared as protected can be accessed in the child class of a parent class in which they are declared. It is a useful access specifier for defining the inheritance concept.

We can use protected access modifier when we want to use variables of parent class to be accessed only in the child class and nowhere else.

Consider the below example:

class JavaTraining {

protected int numberOfstuds=10;//protected variable

public void showDemo() {

System.out.println(“The variable value is ” + numberOfstuds);



class JavaTraining1 extends JavaTraining{

// child class which inherits

// the properties of JavaTraining class


public class JavaTraining2{

public static void main(String[] args) {

JavaTraining1 jt1 = new JavaTraining1();

jt1.showDemo();  // runs properly

jt1. numberOfstuds = 45; // runs properly




Default is the access specifier which gets automatically applied for the elements for which no access modifier has been specified. The elements which are given the default access control are not accessible across the package, which means that you cannot access a default variable or method of one package in another package.

For Example:

If suppose there’s a package called training with a default variable “numberOfStuds”

package training;

class TrainingDemo {

default int numberOfStuds = 40;//default variable


Now if another package called javatraining wants to use “numberOfStuds”, it cannot do that as the variable is default and hence, not accessible in another package.

package javatraining;

import training.TrainingDemo;

class TrainingExample {

public static void main(String[] args){

TrainingDemo td = new TrainingDemo ();

td. number of studs = 67;  //It is not possible.



Hence, access modifiers are essential components of a java program that define the structure and the way how the elements like variables, methods etc will be accessed across the packages, classes and all round in the program. One should join a good Core Java training course in order to get a better understanding of these access control concepts in Java through practical training under the guidance of experts.

TOPS Technologies is a leading Java training institute in Ahmedabad offering excellent job-oriented Java courses with guaranteed placements for freshers and students. The institute is known for training on the latest technologies and has an effective java training program that includes training on current technologies of Java like J2EE, Spring, Hibernate framework, etc.

The top technologies course is designed to teach students about the latest and greatest technologies. It will cover topics like web development, cyber security, programming languages, and more. If you want to be successful in the IT field, it's important that you have a good understanding of all the latest technologies. The training course is perfect for anyone who needs to be ready for a career in the IT field. Learn android programming from our expert trainers and gain skills that are in high demand! The training course is perfect for anyone who needs to be ready for a career in the IT field. Learn android programming from our android training institute. We provide the best Java Training Institute in Ahmedabad, Surat, Vadodara, Ahmedabad, Rajkot, and Nagpur with live projects and 100% placement assistance.

Author Bio: 

Niral Modi works as a Chief Executive Officer at TOPS Technologies, which is an Education company with an estimated 303 employees; and was founded in 2008. They are part of the Executive team within the C-Suite Department, and their management level is C-Level. Niral is currently based in Chicago, United States.

TOPS Technologies offer The Best Java Training in Vadodara, Hardware Training Classes, Graphic Designing & Web Design Training through Live Project Training. Having tie-ups with 3000+ IT software development companies, We provide a 100% Job Guarantee in Software Development Courses. We are known for our training courses in PHP, Python, Java course, Android & iOS, Asp. Net, C & C++, Angular Courses, IoT, Software Testing, CCNA, Cloud Computing, Ethical Hacking, Hardware Networking, Cyber Security Training, Digital Marketing, MVC Training, and SEO. We also teach Laravel, Nodejs, Unity 3D Game Development, Machine Learning with Python, Data Science, and Linux server training!"

Stay Connected