Escolar Documentos
Profissional Documentos
Cultura Documentos
Em Java, os atributos de classe são variáveis que são declaradas dentro de uma classe,
mas fora de qualquer método, e são compartilhadas por todos os objetos dessa classe.
Esses atributos são comuns a todas as instâncias da classe e podem ser acessados por
meio do nome da classe.
Para declarar um atributo de classe, utilizamos o modificador de acesso static antes
da definição do tipo da variável. Aqui está um exemplo de código que mostra como
declarar um atributo de classe e como usá-lo em um método:
- Exemplo
Suponha que temos duas classes, Pessoa e ContaBancaria. A classe Pessoa possui um
atributo de classe numPessoas que mantém o número total de instâncias da classe
Pessoa criadas. A classe ContaBancaria possui um atributo de instância titular do tipo
Pessoa que faz referência a uma instância da classe Pessoa. Para atribuir uma Pessoa à
ContaBancaria, precisamos primeiro criar uma instância da classe Pessoa.
Aqui está o código:
public class Pessoa {
static int numPessoas = 0;
private String nome;
private int idade;
------------------------------------------------------------------------------------------------------------------------
package meuPacote;
void metodoDefault() {
System.out.println("Método default");
}
}
package meuPacote;
import outroPacote.OutraClasse;
A IDE NetBeans organiza os pacotes de uma maneira semelhante a outras IDEs Java. Ao
criar um novo projeto, você pode escolher um nome para o pacote raiz do projeto. Por
exemplo, se você criar um projeto chamado "MeuProjeto" e definir o pacote raiz como
"com.example", então a estrutura de diretórios do projeto será semelhante a esta:
(Veja a pasta em C:\Users\m135526\Documents\NetBeansProjects\MeuProjeto\nbproject)
MeuProjeto/
├── nbproject
│ ├── project.properties
│ └── project.xml
└── src
└── meu projeto
└── MinhaClasse.java
└── outroPacote
└── OutraClasse.java
Dentro da IDE NetBeans, você pode criar novos pacotes clicando com o botão direito na
pasta src e selecionando "New" > "Java Package". Você também pode criar novas classes
dentro desses pacotes clicando com o botão direito no pacote desejado e selecionando
"New" > "Java Class".
Vamos supor que temos duas classes definidas em pacotes diferentes, cada uma com um
atributo privado e um método que tenta acessar o atributo da outra classe. A visibilidade
dos atributos determina se o método será capaz de acessar o atributo da outra classe ou
não.
Na classe ClasseA, temos o atributo atributoPrivado com visibilidade private:
package pacoteA;
Note que, como os atributos são privados, não podemos acessá-los diretamente de outras
classes, mesmo que essas classes estejam em pacotes diferentes. Se tentarmos acessar
o atributo atributoPrivado de outra classe como mostrado acima, teremos um erro de
compilação.
No entanto, se mudarmos a visibilidade dos atributos para public, poderemos acessá-los
de outras classes, mesmo que essas classes estejam em pacotes diferentes. Por
exemplo, na classe ClasseA:
package pacoteA;
E na classe ClasseB:
package pacoteB;
Nesse caso, como os atributos são públicos, podemos acessá-los diretamente de outras
classes, mesmo que essas classes estejam em pacotes diferentes.
Agora vamos estender o exemplo anterior para incluir os atributos com visibilidade default
e protected.
Primeiro, vamos relembrar o que cada uma dessas visibilidades significa:
• public: o atributo ou método é acessível de qualquer classe em qualquer pacote.
• protected: o atributo ou método é acessível dentro da mesma classe, de classes do
mesmo pacote e de subclasses (mesmo que estejam em pacotes diferentes).
• default (sem especificação de visibilidade): o atributo ou método é acessível dentro
da mesma classe e de classes do mesmo pacote.
• private: o atributo ou método é acessível somente dentro da mesma classe.
Agora, vamos supor que temos a seguinte hierarquia de classes:
pacoteA
├── ClasseA
└── ClasseC (subclasse de ClasseA)
pacoteB
└── ClasseB
Na classe ClasseC, que é uma subclasse de ClasseA, temos o método metodoC que
tenta acessar os atributos de ClasseA:
package pacoteA;
Note que, como ClasseC é uma subclasse de ClasseA, ela pode acessar os atributos
public, default e protected de ClasseA. No entanto, se tentarmos acessar o atributo
atributoProtected de ClasseA a partir de ClasseB, teremos um erro de compilação, porque
ClasseB não é uma subclasse de ClasseA.
------------------------------------------------------------------------------------------------------------------------
1. Métodos construtores:
• Crie uma classe chamada "Pessoa" com atributos nome e idade. Em seguida, crie
um construtor que receba como parâmetros o nome e a idade da pessoa e
inicialize os atributos.
• Crie uma classe "Livro" com atributos título, autor e ano de lançamento. Em
seguida, crie um construtor sem parâmetros que inicialize os atributos com valores
padrão e um construtor que receba os valores do título, autor e ano de lançamento
como parâmetros.
4. Encapsulamento (get/set):
• Crie uma classe "ContaBancária" com atributos saldo e número. Utilize os métodos
get e set para acessar e alterar os valores desses atributos.
• Crie uma classe "Cliente" com atributos nome, idade e cpf. Utilize os métodos get e
set para acessar e alterar os valores desses atributos.
------------------------------------------------------------------------------------------------------------------------
Métodos construtores:
1)
2)
public Livro() {
this.titulo = "Sem título";
this.autor = "Autor desconhecido";
this.anoLancamento = 0;
}
Obs.: Note que, para facilitar a leitura do código, foram omitidos os métodos getters e
setters das classes Pessoa e Livro. Esses métodos devem ser implementados para
garantir o encapsulamento dos atributos e permitir o acesso e a modificação desses
atributos por outras classes.
2. Classe "Retângulo"
public class Retangulo {
private double altura;
private double largura;
Exemplo de uso:
public class Main {
public static void main(String[] args) {
// Testando a classe Calculadora
Calculadora calc = new Calculadora();
calc.somar(2, 3); // Output: O resultado da soma é: 5
calc.subtrair(5, 2); // Output: O resultado da subtração é: 3
calc.multiplicar(4, 2); // Output: O resultado da multiplicação é: 8
calc.dividir(10, 2); // Output: O resultado da divisão é: 5.0
calc.dividir(10, 0); // Output: Não é possível dividir por zero!
a) Classe Pessoa:
public class Pessoa {
private String nome;
private int idade;
b) Classe Círculo:
Exemplo de uso:
Encapsulamento (get/set)
Esses exemplos utilizam o encapsulamento para controlar o acesso aos atributos das
classes ContaBancaria e Cliente. Cada atributo é declarado como private, o que significa
que não pode ser acessado diretamente de fora da classe. Em vez disso, os métodos get
e set são utilizados para permitir o acesso controlado aos atributos. Os métodos get
retornam o valor do atributo e os métodos set permitem alterar o valor do atributo.
2)
public class Funcionario {
public String nome;
private double salario;
3)
public class Carro {
private String modelo;
int ano;
Atributo de classe
1)
public class Circulo {
private double raio;
private static double pi = 3.14;