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 os métodos de uma classe são conhecidos como seus membros.

O acesso aos membros pode ser controlado por meio de modificadores de acesso, sendo os dois mais comuns:

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

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

Esse agrupamento de dados e comportamentos relacionados, somado à restrição de acesso aos membros, é conhecido como encapsulamento, um dos conceitos centrais da orientação a objetos.

Você pode pensar em uma classe como um molde para criar instâncias dessa classe. Para criar uma instância de uma classe (também chamada de 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 (grafados em camelCase) e podem ser definidos em qualquer lugar de uma classe (grafada em PascalCase).

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

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

É possível atribuir um valor inicial a um campo, de forma opcional. Se um campo não especificar um valor inicial, ele receberá o valor padrão do seu tipo. Os valores dos campos de uma instância podem ser acessados e atualizados usando 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;

Campos privados costumam ser atualizados como efeito colateral da chamada de um método. Esses métodos geralmente não retornam nenhum valor e, 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;
    }
}

Repare que não é comum usar campos públicos em classes Java. Normalmente usam-se campos privados, acessados por meio de getters e setters.

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

class CarImporter {
    private int carsImported;

    public void setImportedCars(int carsImported)
    {
        // Update private field from public method
        this.carsImported = carsImported;
    }
}
Editar via GitHub O link abre em uma nova janela ou aba

Aprenda Classes