AnyCompiler

Classes e Objects

Uma class agrupa fields relacionados sob um tipo nomeado, e um constructor é um method especial, nomeado igual à class, que roda automaticamente sempre que você cria um novo instance com new. this.name = name dentro do constructor atribui o parâmetro ao field do próprio object, desambiguando os dois quando compartilham um nome.

public class Main {
    static class Person {
        String name;
        int age;

        Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    }

    public static void main(String[] args) {
        Person alice = new Person("Alice", 30);
        System.out.println(alice.name + " is " + alice.age + " years old");
    }
}
Output
Alice is 30 years old

A seguir: encapsulation — fields private, getters, e por que o código Java quase sempre esconde seus fields atrás de methods.

Practice exercise

Defina uma class Book com os fields title (String) e pages (int). Crie um Book com title "Dune" e pages 412, depois imprima title e pages usando System.out.println(book.title + " " + book.pages).