Cl

Classes em Java

12 exercícios

Sobre Classes

A principal construção orientada a objetos em Java é a classe, que combina dados (campos), também conhecidos como variáveis de instância, e comportamento (métodos). Os campos e métodos de uma classe são conhecidos como os seus membros.

O acesso aos membros pode ser controlado através de modificadores de acesso, sendo os dois mais comuns:

  • public: o membro pode ser acedido por qualquer código (sem restrições).
  • private: o membro só pode ser acedido por código da mesma classe.

Em Java, se não for especificado nenhum modificador de acesso, o padrão é a visibilidade de pacote. Neste caso, o membro é visível a todas as classes definidas no mesmo pacote.

O agrupamento acima referido de dados e comportamento relacionados, bem como a restrição do acesso aos membros, é conhecido como encapsulamento, que é um dos conceitos centrais da programação orientada a objetos.

Podes pensar numa classe como um modelo para criar instâncias dessa classe. Para criar uma instância de uma classe (também conhecida como objeto), usa-se a palavra-chave new:

class Car {
}

// Create two car instances
Car myCar = new Car();
Car yourCar = new Car();

Os campos têm um tipo e um nome (escritos em camelCase) e podem ser definidos em qualquer parte de uma classe (escritos em PascalCase).

class Car {
    // Accessible by anyone
    public int weight;

    // Only accessible by code in this class
    private String color;
}

Podes atribuir opcionalmente um valor inicial a um campo. Se um campo não especificar um valor inicial, será definido com o valor predefinido do seu tipo. Os valores dos campos de uma instância podem ser acedidos e atualizados com a notação de ponto.

class Car {
    // Will be set to specified value
    public int weight = 2500;

    // Will be set to default value (0)
    public int year;
}

Car newCar = new Car();
newCar.weight; // => 2500
newCar.year;   // => 0

// Update value of the field
newCar.year = 2018;

Os campos privados são normalmente atualizados como efeito secundário de chamar um método. Normalmente, esses métodos não devolvem qualquer valor; nesse caso, o tipo de retorno deve ser void:

class CarImporter {
    private int carsImported;

    public void importCars(int numberOfCars)
    {
        // Update private field
        carsImported = carsImported + numberOfCars;
    }
}

Repara que não é habitual usar campos públicos em classes Java. Normalmente, usam-se campos privados, que são acedidos através de getters e setters.

Dentro de uma classe, a palavra-chave this refere-se à classe atual. Isto é especialmente útil se um parâmetro tiver o mesmo nome que um campo:

class CarImporter {
    private int carsImported;

    public void setImportedCars(int carsImported)
    {
        // Update private field from public method
        this.carsImported = carsImported;
    }
}
Editar via GitHub A ligação abre numa nova janela ou separador

Aprende Classes