Fala, meus consagrados! Beleza?
A estrutura de uma classe em Java é composta por várias partes fundamentais que definem o estado e o comportamento dos seus objetos criados a partir da classe. Vamos estudar neste artigo sobre a estrutura de uma classe em Java.
Uma classe em Java possui a seguinte estrutura:
package principal;
import java.util.*;
// Nome da classe.
public class Classe {
// Zero ou mais atributos.
public String nome;
// Zero ou mais construtores.
public Classe(String nome) {
this.nome = nome;
}
// Zero ou mais métodos.
public String getNome() {
return this.nome;
}
}
Vamos dissecar a classe Java apresentada aqui, para que possamos entender cada uma de suas partes de forma didática.
Nome do pacote:
package principal;
Figura 1: Estrutura de uma classe em Java.
Em Java, package é uma maneira de organizar classes relacionadas. Pense nisso como uma pasta no seu computador onde você mantém arquivos relacionados juntos. Aqui, a palavra-chave package é seguida pelo nome do pacote `principal`, indicando que nossa classe faz parte deste pacote.
Importações de outras classes:
import java.util.*;
O comando import é usado para trazer outras classes ou pacotes inteiros para dentro do contexto atual. No exemplo acima, estamos importando tudo (`*`) do pacote java.util, que contém coleções de classes, como listas, conjuntos e mapas. Embora não estejamos usando estas classes diretamente no nosso código de exemplo, frequentemente as importamos para utilizar estruturas de dados que facilitam a manipulação de conjuntos de dados.
Declaração da classe:
public class Classe {
…
}
A palavra-chave public é um modificador de acesso que torna a classe acessível de qualquer outro lugar do programa. class é a palavra-chave que indica que estamos declarando uma nova classe, e Classe é o nome que estamos dando a ela. É comum e uma boa prática de programação começar o nome da classe com uma letra maiúscula.
Atributos da classe:
public String nome;
A classe Classe tem um único atributo chamado nome. Este atributo é do tipo String, o que significa que ele pode armazenar uma sequência de caracteres (texto). O modificador public faz com que este atributo seja acessível diretamente de qualquer outro lugar do programa, embora muitas vezes seja preferível usar private para promover o encapsulamento, um princípio chave da programação orientada a objetos.
Construtor declarado na classe para criar objetos:
public Classe(String nome) {
this.nome = nome;
}
Um construtor da classe é um método especial que é chamado quando um novo objeto da classe é criado. O construtor tem o mesmo nome da classe e não tem tipo de retorno. O propósito do construtor é inicializar o objeto.
Na classe de exemplo, o construtor possui um parâmetro nome que é usado para inicializar o atributo nome (this.nome). A palavra-chave this é usada para referenciar o objeto atual e é útil para diferenciar o atributo nome do parâmetro nome.
Métodos da classe:
public String getNome() {
return this.nome;
}
Por fim, temos um método chamado getNome(). Este é um exemplo de um método de acesso, também conhecido como getter, que serve para consultar o valor de um atributo de uma classe. Este método retorna o valor do atributo nome. O uso de getters é uma prática comum em Java, pois permite que você acesse os valores dos atributos de um objeto de maneira controlada.
Para declarar uma classe em Java, usamos as seguintes informações:
Modificadores de acesso de nível superior:
- public; ou
- default;
Quando não usamos um modificador de forma explícita.
Outros modificadores que podemos usar (opcionais) para a declaração de uma classe:
- final:
- Torna uma classe impossível de ser estendida;
- Impede que essa classe seja estendida
- É útil para garantir que a implementação da classe não seja alterada por meio de herança;
- abstract:
- Indica uma classe abstrata que pode ter ou não métodos abstratos; e
- Indica uma classe abstrata que não pode ser instanciada, mas pode ter subclasses.
Figura 2: Modificadores usados na declaração de classes em Java.
Após indicarmos o modificador de acesso e, se for necessário, indicar que a classe é final ou abstract, usamos a palavra-chave class, seguida do nome da classe que começa com letra maiúscula por convenção e a sua nomeação segue as regras de nomeação de variáveis.
Se a classe for subclasse de outra, podemos citar o nome da superclasse a ser estendida, precedido da palavra-chave extends. E uma classe deve estender apenas uma superclasse.
Caso a classe implemente uma ou mais interfaces, é necessário citar uma lista de nomes das interfaces a serem implementadas, precedida da palavra-chave implements. Os nomes das interfaces são separados por vírgulas. Uma classe pode implementar mais de uma interface.
Finalmente, o corpo da classe é envolvido por chaves {}.
Como exemplos de classes temos:
Classe default:
class Classe {
…
}
Classe que estende outra:
public class Classe extends SuperClasse {
…
}
Classe que implementa uma interface:
class Classe implements Interface {
…
}
Classe que estende outra e implementa mais de uma interface:
public class Classe extends SuperClasse implements Interface1, Interface2 {
…
}
Classe final que não pode ser estendida:
public final class Classe {
…
}
Classe abstrata que não pode ser instanciada:
public abstract class Classe {
…
}
Como exemplo de superclasse, que será estendida, temos:
public class SuperClasse {
public void metodo(String x) {
System.out.println(x);
}
}
E como exemplo de subclasse dessa classe acima, temos:
public class ClasseFilha extends SuperClasse {
@Override
public void metodo(String x) {
System.out.println(“Valor: ” + x);
}
}
É isso! Espero que tenham gostado!
Forte abraço e até a próxima jornada!
_________________________
Professor Rogerão Araújo
Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil?
clique nos links abaixo:
Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
clique no link abaixo e inscreva-se gratuitamente: