Core Concepts of Java Object-Oriented Programming: Fields and Methods

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 return statement
  • 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:

  1. Terminates method execution
  2. 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;
    }
}

Tags: java Object-Oriented Programming Fields Methods Classes

Posted on Sat, 01 Aug 2026 16:49:54 +0000 by valshooter