Class Members: Fields and Methods
In object-oriented programming, classes serve as blueprints containing fields (member variables) and methods (member functions). When a class is instantiated, each object maintains its own copy of the class fields.
public class PersonDemo {
public static void main(String[] args) {
// Creating first instance
Person individual1 = new Person();
individual1.fullName = "Alice";
individual1.years = 25;
System.out.println(individual1.years + individual1.fullName);
individual1.consume();
individual1.communicate("English");
individual1.rest();
// Creating second instance
Person individual2 = new Person();
System.out.println(individual2.fullName); // null
// Reference assignment
Person individual3 = individual1;
System.out.println(individual3.years + individual3.fullName);
individual3.years = 30;
System.out.println(individual1.years + individual1.fullName);
}
}
class Person {
String fullName;
int years = 1;
boolean gender;
public void consume() {
System.out.println("Person eats food");
}
public void rest() {
System.out.println("Person sleeps");
}
public void communicate(String dialect) {
System.out.println("Person speaks " + dialect);
}
}
Field vs Local Variable Comparison
Similarities
- Declaration syntax:
dataType variableName = value - Declaration before usage
- Defined scope boundaries
Differences
Declaration Location
- Fields: Declared within class braces
{} - Local variables: Inside methods, parameters, code blocks, constructors
Access Modifiers
- Fields: Support
public,protected,private, package-private modifiers - Local variables: No access modifiers allowed
Default Values
- Fields: Automatically initialized based on type
- Local variables: Must be explicitly initialized before use
Memory Allocation
- Fields: Stored in heap memory (non-static)
- Local variables: Stored in stack memory
public class UserProfile {
public static void main(String[] args) {
UserProfile user = new UserProfile();
System.out.println(user.userName);
user.dine();
user.converse("Spanish");
}
public String userName;
public int userAge;
public boolean isActive;
public void converse(String language) {
System.out.println("Communication in " + language);
}
public void dine() {
String meal = "Pasta";
System.out.println("Eating " + meal);
}
}
Method Structure and Usage
Method declaration follows: accessModifier returnType methodName(parameterList) {methodBody}
Access Modifiers
Four levels: public, protected, private, package-private
Return Types
- Methods with return values must specify return type and use
returnstatement - Methods without return values declare
void
Method Parametesr
Methods can have zero or multiple parameters with format: type1 param1, type2 param2...
The return keyword serves dual purposes:
- Terminates method execution
- Returns specified data matching the declared return type
public class ClientDemo {
public static void main(String[] args) {
Client customer = new Client();
customer.feed();
customer.getIdentity();
}
}
class Client {
String clientName;
int clientAge = 22;
boolean isVerified;
public void feed() {
System.out.println("Client is eating");
}
public void nap(int duration) {
System.out.println("Slept for " + duration + " hours");
}
public String getIdentity() {
if(clientAge > 18) {
return clientName;
} else {
return "minor";
}
}
public String getCountry(String country) {
String details = "Nationality: " + country;
return details;
}
}