DevAcademia
C++C#CPythonJava
  • Java Basics

  • Java Introduction
  • Java Get Started
  • Java Syntax
  • Java Output
  • Java Comments
  • Java Variables
  • Java Data Types
  • Java Type Casting
  • Java Operators
  • Java Strings
  • Java If...Else
  • Java Switch Statement
  • Java Loops
  • Java Math
  • Java Arrays
  • Java Date
  • Java OOP

  • Java Classes/Objects
  • Java Class Attributes
  • Java Class Methods
  • Java Constructors
  • Java Destructors
  • Java this Keyword
  • Java Modifiers
  • Java Non Modifiers
  • Java Encapsulation
  • Java Packages & API
  • Java Inheritance
  • Java Polymorphism
  • Java Super Keyword
  • Java Inner Classes
  • Java Exception Handling
  • Java Abstraction
  • Java Interfaces
  • Java Enums
  • Java User Input
  • Java Quiz

  • Java Fundamentals Quiz
  • Java Basics

  • Java Introduction
  • Java Get Started
  • Java Syntax
  • Java Output
  • Java Comments
  • Java Variables
  • Java Data Types
  • Java Type Casting
  • Java Operators
  • Java Strings
  • Java If...Else
  • Java Switch Statement
  • Java Loops
  • Java Math
  • Java Arrays
  • Java Date
  • Java OOP

  • Java Classes/Objects
  • Java Class Attributes
  • Java Class Methods
  • Java Constructors
  • Java Destructors
  • Java this Keyword
  • Java Modifiers
  • Java Non Modifiers
  • Java Encapsulation
  • Java Packages & API
  • Java Inheritance
  • Java Polymorphism
  • Java Super Keyword
  • Java Inner Classes
  • Java Exception Handling
  • Java Abstraction
  • Java Interfaces
  • Java Enums
  • Java User Input
  • Java Quiz

  • Java Fundamentals Quiz

Loading Java tutorial…

Loading content
Java OOPTopic 42 of 59
←PreviousPrevNextNext→

Java Class Methods - Complete Guide

Introduction to Class Methods

Class methods, also known as member functions, define the operations or behaviors that objects of a class can perform.

They encapsulate functionality, operate on data (attributes), and enable interaction between objects and the external world.

Types of Methods in Java

Java supports different types of methods such as instance methods, static methods, overloaded methods, and more.

Example
public class MethodTypes {
    private int counter = 0;

    // Instance method
    public void increment() {
        counter++;
        System.out.println("Counter: " + counter);
    }

    // Method with parameters and return
    public int add(int a, int b) {
        return a + b;
    }

    // Varargs method
    public double average(int... numbers) {
        if (numbers.length == 0) return 0;
        int sum = 0;
        for (int num : numbers) sum += num;
        return (double) sum / numbers.length;
    }

    // Static method
    public static String getClassName() {
        return "MethodTypes";
    }

    // Final method
    public final String getFinalMessage() {
        return "This cannot be overridden";
    }

    // Private helper
    private void resetCounter() {
        counter = 0;
        System.out.println("Counter reset");
    }

    // Using private method
    public void resetAndIncrement() {
        resetCounter();
        increment();
    }

    // Overloaded methods
    public void display(String msg) {
        System.out.println("Message: " + msg);
    }

    public void display(String msg, int times) {
        for (int i = 0; i < times; i++) {
            System.out.println("Message " + (i + 1) + ": " + msg);
        }
    }

    public static void main(String[] args) {
        MethodTypes demo = new MethodTypes();
        demo.increment();
        demo.increment();

        System.out.println("Sum: " + demo.add(5, 7));
        System.out.println("Average: " + demo.average(10, 20, 30));
        System.out.println("Class: " + MethodTypes.getClassName());
        System.out.println(demo.getFinalMessage());

        demo.resetAndIncrement();
        demo.display("Hello");
        demo.display("Java", 3);
    }
}
Output
Counter: 1
Counter: 2
Sum: 12
Average: 20.0
Class: MethodTypes
This cannot be overridden
Counter reset
Counter: 1
Message: Hello
Message 1: Java
Message 2: Java
Message 3: Java

Method Parameters and Return Types

Methods can accept parameters and return values of various types. Java passes primitives by value and objects by reference value.

Example
public class MethodParameters {
    public void modifyPrimitive(int x) {
        x = x * 2;
        System.out.println("Inside: " + x);
    }

    public void modifyObject(StringBuilder sb) {
        sb.append(" World");
        System.out.println("Inside: " + sb);
    }

    public void modifyArray(int[] arr) {
        if (arr.length > 0) arr[0] = 999;
        System.out.println("Inside arr[0]: " + arr[0]);
    }

    public int returnInt() { return 42; }
    public String returnString() { return "Hello Java"; }
    public boolean returnBoolean() { return true; }
    public double returnDouble() { return 3.14; }
    public int[] returnArray() { return new int[]{1,2,3}; }

    public Person createPerson(String name, int age) {
        return new Person(name, age);
    }

    public void printMessage(String msg) {
        System.out.println("Message: " + msg);
    }

    public static void main(String[] args) {
        MethodParameters demo = new MethodParameters();

        int num = 10;
        System.out.println("Before: " + num);
        demo.modifyPrimitive(num);
        System.out.println("After: " + num);

        StringBuilder sb = new StringBuilder("Hello");
        demo.modifyObject(sb);
        System.out.println("After: " + sb);

        int[] arr = {1,2,3};
        demo.modifyArray(arr);
        System.out.println("After arr[0]: " + arr[0]);

        System.out.println("Int: " + demo.returnInt());
        System.out.println("String: " + demo.returnString());
        System.out.println("Boolean: " + demo.returnBoolean());
        System.out.println("Double: " + demo.returnDouble());
        System.out.println("Array: " + java.util.Arrays.toString(demo.returnArray()));

        Person p = demo.createPerson("Alice", 30);
        System.out.println("Person: " + p.getName() + ", " + p.getAge());

        demo.printMessage("This is void");
    }
}

class Person {
    private String name;
    private int age;
    public Person(String n, int a) { name = n; age = a; }
    public String getName() { return name; }
    public int getAge() { return age; }
}
Output
Before: 10
Inside: 20
After: 10
Inside: Hello World
After: Hello World
Inside arr[0]: 999
After arr[0]: 999
Int: 42
String: Hello Java
Boolean: true
Double: 3.14
Array: [1, 2, 3]
Person: Alice, 30
Message: This is void

Best Practices for Class Methods

  • ✅ Use meaningful names (camelCase)
  • ✅ Keep methods short and single-purpose
  • ✅ Limit number of parameters
  • ✅ Use method overloading only when it improves readability
  • ✅ Document with Javadoc
  • ✅ Use immutables when returning objects if possible
  • ✅ Apply proper access modifiers
  • ✅ Handle exceptions gracefully
Test your knowledge: Java Class Methods - Complete Guide
Quiz Configuration
4 of 10 questions
Sequential
Previous allowed
Review enabled
Early close allowed
Estimated time: 5 min
Java OOPTopic 42 of 59
←PreviousPrevNextNext→