Welcome to The Coding College! In this article, we’ll explore class attributes in Java, a fundamental concept that allows you to define the properties or characteristics of a class. Understanding attributes is crucial for designing classes effectively in object-oriented programming.
What Are Class Attributes?
Class attributes (also known as fields or variables) are variables declared within a class. These attributes represent the state or properties of the objects created from the class.
Key Points:
- Attributes can be of any data type (primitive or non-primitive).
- They are defined outside methods, constructors, or blocks.
- They can have different access modifiers (
public
,private
,protected
).
Syntax
Here’s how to define attributes in a class:
class ClassName {
// Attribute declaration
dataType attributeName;
}
Example: Defining and Using Class Attributes
// Defining a class with attributes
class Car {
// Attributes
String brand;
String model;
int year;
// Method to display car details
void displayDetails() {
System.out.println("Car: " + brand + " " + model + " (" + year + ")");
}
}
public class Main {
public static void main(String[] args) {
// Creating an object of the Car class
Car myCar = new Car();
// Assigning values to attributes
myCar.brand = "Toyota";
myCar.model = "Corolla";
myCar.year = 2020;
// Displaying attribute values
myCar.displayDetails();
}
}
Output:
Car: Toyota Corolla (2020)
Access Modifiers for Attributes
Access modifiers define the visibility of attributes:
Modifier | Description |
---|---|
public | Accessible from any other class. |
private | Accessible only within the class in which it is defined. |
protected | Accessible within the package and by subclasses. |
Default | (No modifier) Accessible within the package. |
Example: Using private
Attributes
To restrict access to an attribute, declare it as private
and use getter and setter methods to access and modify it.
class Person {
// Private attribute
private String name;
// Getter method
public String getName() {
return name;
}
// Setter method
public void setName(String name) {
this.name = name;
}
}
public class Main {
public static void main(String[] args) {
Person person = new Person();
// Using setter to assign value
person.setName("Alice");
// Using getter to retrieve value
System.out.println("Name: " + person.getName());
}
}
Output:
Name: Alice
Default Values of Attributes
If you don’t initialize an attribute, it will have a default value based on its data type:
Data Type | Default Value |
---|---|
byte , short , int , long | 0 |
float , double | 0.0 |
char | '\u0000' (null character) |
boolean | false |
Objects (reference types) | null |
Static Attributes
Attributes declared as static
belong to the class rather than to any specific object.
Example:
class Company {
// Static attribute
static String companyName = "TechCorp";
// Non-static attribute
String employeeName;
}
public class Main {
public static void main(String[] args) {
// Accessing static attribute without creating an object
System.out.println("Company: " + Company.companyName);
}
}
Output:
Company: TechCorp
Final Attributes
Attributes declared with the final
keyword cannot be changed after they are initialized.
Example:
class Constants {
final double PI = 3.14159;
void displayPI() {
System.out.println("Value of PI: " + PI);
}
}
public class Main {
public static void main(String[] args) {
Constants c = new Constants();
c.displayPI();
}
}
Output:
Value of PI: 3.14159
Best Practices
- Use meaningful names for attributes to improve code readability.
- Keep attributes private and use getter/setter methods for controlled access.
- Use final for constants to prevent accidental modification.
- Prefer static attributes for values shared across all instances of a class.
Practice Problems
- Create a
Book
class with attributes for title, author, and price. Add methods to display the details of a book. - Design a
Student
class with attributes for name, roll number, and marks. Add getter and setter methods for controlled access. - Implement a
BankAccount
class with attributes for account number, balance, and account holder name. Add a static attribute for the bank name.
For more Java tutorials, visit The Coding College. Keep learning and coding! 🚀