What happens if an instance variable is declared without an access modifier?

All of you are well acquainted with the concept of variables in Java which is integral to Java career or an eventual certification. Java provides us with the liberty of accessing three , i.e., local variables, class variables, and instance variables. In this article, I would be discussing the implementation of instance variable in Java. Below are the points that will be discussed:

Let’s begin!

What is instance variable in Java?

Instance variables in Java are non-static variables which are defined in a class outside any method, constructor or a block. Each instantiated object of the class has a separate copy or instance of that variable. An instance variable belongs to a class. 

You must be wondering about what exactly is an Instance? Let me help you by simplifying it.

When you create a new object of the class you create an instance. Consider, if you have a STUDENT class, then

class Student
{
String studentName;
int studentScore;
}

And if you create two STUDENT objects like,

Student student1 = new Student();
Student student2 = new Student();

Then two instances of the class Student will be created.

Now each student would have his own name and score right? So the value that is stored inside ‘studentName’ and ‘studentScore’ would vary for different students, they are called ‘variables’. And like you saw that these variables hold their own value for each instance, they are called Instance Variables in Java.

Now that you have understood the meaning of Instance variables, let’s move a step forward.

I will enlist the features of instance variables, which would help you in using them in a java code with ease.

Features of an instance variable?

The life of an instance variable depends on the life of an , i.e., when the object is created, an instance variable also gets created and the same happens when an object is destroyed.

  • Instance Variable can be used only by creating objects
  • Every object will have its own copy of Instance variables
  • Initialization of instance variable is not compulsory. The default value is zero
  • The declaration is done in a class outside any method, constructor or block 
  • Instance variables are used when the variable has to be known to different methods in a class
  • Access modifiers can be assigned to instance variables

After attaining theoretical knowledge, you might be pondering on how to implement Instance variables in Java! Let’s understand that in our next topic.

How do you implement an instance variable in Java?

Implementation of Instance variables in Java is quite easy. I have written a simple code that will help you to grasp the technical usage.

Here is a detailed code :

package Edureka;

import java.util.Scanner;

public class Student
{

public String name;

private int marks;

public Student (String stuName) {
name = stuName;
}
public void setMarks(int stuMar) {
marks = stuMar;
}

// This method prints the student details.
public void printStu() {
System.out.println("Name: " + name );
System.out.println("Marks:" + marks);
}

public static void main(String args[]) {
Student StuOne = new Student("Ross");
Student StuTwo = new Student("Rachel");
Student StuThree = new Student("Phoebe");

StuOne.setMarks(98);
StuTwo.setMarks(89);
StuThree.setMarks(90);

StuOne.printStu();
StuTwo.printStu();
StuThree.printStu();

}
}

OUTPUT:

Name: Ross
Marks:98
Name: Rachel
Marks:89
Name: Phoebe
Marks:90

Explanation:

In the above code, as you can see I have created three instance variables, namely, ‘StuOne’, ’StuTwo’, ’StuThree’. Likewise, you can create as many as you need depending upon your requirement. Now as we move further accumulating facts about instance variable, let me also elaborate to you the differences between an instance variable and a class variable!

Difference between an instance variable and a class variable

To clarify the differences, I have jotted down a few points that will help you to discard any ambiguity between the two.

Instance VariableClass Variable

Every object will have its own copy of instance variables, hence changes made to these variables through one object will not reflect in another object.

Class variables are common to all objects of a class, if any changes are made to these variables through object, it will reflect in other objects as well.

Instance variables are declared without static keyword.

Class variables are declared with keyword static

Instance variables can be used only via object reference.

Class variables can be used through either class name or object reference.

With this, we have reached towards the end of the blog. I hope that the contents of this article proved to be beneficial to you. We’ll keep exploring the Java world in the upcoming blogs. Stay tuned!

Now that you have understood “What is Instance variable in Java”, check out the Java Training by Edureka, a trusted online learning company with a network of more than 250,000 satisfied learners spread across the globe. Edureka’s Java J2EE and SOA training and certification course is designed for students and professionals who want to be a Java Developer. The course is designed to give you a head start into Java programming and train you for both core and advanced Java concepts along with various Java frameworks like Hibernate & Spring. If you’re just beginning, then watch at this Java Tutorial to Understand the Fundamental Java Concepts.

If you wish to learn more about Java, you can refer to the Java Tutorial.

Got a question for us? Please mention it in the comments section of this “” blog and we will get back to you as soon as possible or you can also join our Java Training in Makassar..

What happens if you don't declare access modifiers?

When no access modifier is used, then by default the member of a class is public within its own package, but cannot be accessed outside of its package. protected applies only when inheritance is involved.

What happens if we don't specify access modifier in Java?

Default: When no access modifier is specified for a class, method, or data member – It is said to be having the default access modifier by default. The data members, classes, or methods that are not declared using any access modifiers i.e. having default access modifier are accessible only within the same package.

How can you access the class if it is declared without any access modifiers?

A class that is declared without any access modifiers is said to have package or friendly access. This means that the class can only be accessed by other classes and interfaces that are defined within the same package.

Are access modifiers necessary?

Access modifiers are mainly used for encapsulation. It can help us to control what part of a program can access the members of a class. So that misuse of data can be prevented.