Buscar

Aula 2 Java Criando uma classe

Prévia do material em texto

Linguagem de Programação II
Prof. Márcio Artacho Peres
marcio.peres@ifms.edu.br
 
Linguagem de Programação II
● Criando uma classe:
● Abra um editor de texto (ou IDE) e digite o código abaixo;
● Salve com o mesmo nome da classe mais “.java”;
– Obs.: class indica a definição de uma classe;
– Cada classe deve ficar em um arquivo separado.
– Por padrão utiliza-se nome da classe com a letra inicial 
maiúscula;
 
Linguagem de Programação II
● Criando uma classe (outro Exemplo):
 
Linguagem de Programação II
Criando um objeto: 
● Vamos criar um objeto da classe Carro, isso é chamado 
de instanciação, ou seja, criaremos uma instância da 
classe Carro.
● Um objeto ou instância é criado através do operador new.
 
Linguagem de Programação II
● O teste da classe criada é realizado através de outra classe 
principal (PessoaTeste), que contém o método main. 
● Instanciando os objetos da classe Pessoa:
//cria uma instância de um objeto da classe Pessoa
Pessoa p1 = new Pessoa(); 
p1.nome = "Maria";
p1.idade = 38;
//cria uma instância de um objeto da classe Pessoa
Pessoa p2 = new Pessoa();
p2.corDoCabelo = "Preto";
p2.nome = "João";
int somaIdades = p1.idade = p2.idade;
System.out.print("Soma:" + somaIdades);
 
Linguagem de Programação II
● Para compilar um programa com multiplas classes utilizamos 
o comando:
javac PessoaTeste.java Pessoa.java
ou
javac *.java
que compila todos arquivos .java da pasta.
● Dois .class são gerados.
● Para executar:
java PessoaTeste
● É o .class que contém o método main.
 
Linguagem de Programação II
Getters e Setters em Java
● São métodos que padronizam as formas de acesso aos 
atributos da classe. Seguem um padrão de nome estabelecido 
iniciando com a palavra get ou set seguido do nome do atributo.
● Getters são os métodos que retornam o valor dos atributos.
public <tipoAtributo> get<nomeAtributo>( ) 
{ 
 return <nomeAtributo> ; 
}
● Setters são os métodos que recebem um valor para os 
atributos.
public void set<nomeAtributo>(tipoAtributo <nomeParametro>) 
{ 
 <nomeAtributo> = <nomeParametro> ; 
}
 
Linguagem de Programação II
Getters 
● get – tem o objetivo de retornar um valor contido em um 
determinado atributo da classe.
● Ex.
class Pessoa{
int idade;
public int getIdade(){
return idade;
}
}
 
Linguagem de Programação II
Setters
● set – tem o objetivo de ajustar/definir o valor de um atributo.
● Ex.:
class Pessoa{
int idade;
public void setIdade(int i){
idade = i;
}
}
 
Linguagem de Programação II
● this?
● This é usado para fazer auto-referência ao próprio contexto 
em que se encontra. Resumidamente, this sempre será a 
própria classe ou o objeto já instanciado.
class Pessoa{
int idade;
public void setIdade(int idade){
this.idade = idade;
}
}
 
Linguagem de Programação II
● this?
● Exercício: Criar a classe Carro e os métodos que 
acessem e modifiquem os demais atributos da classe 
Carro.
 
Linguagem de Programação II
● Métodos Construtores:
● O método construtor é desenvolvido da mesma forma que os 
demais, a única diferença é:
– ele tem o mesmo nome da classe 
– não possui tipo de retorno. 
● O método construtor é invocado no momento da criação do 
objeto. É possível passar valores iniciais para alguns de seus 
atributos. Além disso é possível executar outras instruções.
 
Linguagem de Programação II
● Métodos Construtores: 
● Toda classe possui um construtor implícito e padrão (default), 
sem parametros (não recebe nada).
Carro meuCarro = new Carro();
Pessoa p1 = new Pessoa();
● Quando em uma classe define-se outro construtor, não é 
possível mais usar o construtor padrão a não ser que se defina 
explicitamente um construtor padrão (sem parâmetros). O 
construtor padrão pode conter instruções.
 
Linguagem de Programação II
● Exercício: 
● Escreva em Java uma classe Contador, que possua um valor usado 
para contagem de itens ou eventos. Além do construtor que recebe 
um valor inicial para o contador, a classe deve oferecer métodos que 
devem:
– Zerar o contador;
– Incrementar o contador de 1 unidade;
– Retornar o valor do contador.
 
Linguagem de Programação II
● Exercício: 
● Crie uma classe que representará um Funcionário de uma Empresa. 
Esta classe deverá possuir atributos tais como:
- o seu número de Matrícula (pode ser do tipo Inteiro)
- o seu nome
- a sua idade
- o seu cargo
- o seu salário
● Criar os métodos "set" e "get".
● Para esta classe, gere três Métodos Construtores.
- o 1º não deve receber parâmetros, mas deve iniciar o valor do 
salário com R$ 1.500,00
- o 2º deve receber como parâmetro o nome e a idade do 
funcionário, e preencher estes dois campos com os valores.
- o 3º deve receber o número de matrícula, o nome, e o salário, e 
preencher estes três campos com os valores recebidos. 
 
Linguagem de Programação II
● Exercício: 
● Crie uma classe que representará um Atleta. Esta classe deverá 
possuir atributos tais como:
- o nome
- a idade
- o altura
- o peso
- imc
● Criar os métodos "set" e "get" para todos os atributos.
● Para esta classe, gere três Métodos Construtores.
- o 1º deve receber o nome, a altura e o peso e calcular o 
imc = peso / (altura²).
- o 2º deve é o construtor padrão.
- o 3º recebe o nome e a altura.
- o 4º recebe o nome e o peso. 
 
Linguagem de Programação II
● Troca de mensagens:
● Os objetos precisam se “comunicar” (aciona um método de outro).
● Essa comunicação é realizada através do mecanismo de troca de 
mensagem.
● Ex. O objeto Computador não é capaz de sozinho fazer a impressão 
de um documento, ele precisa interagir com a impressora.
 
Linguagem de Programação II
● Troca de mensagens:
● a mudança ou leitura do estado interno do objeto através da 
alteração de um de seus atributos; 
● a chamada a um dos métodos do objeto que representam seu 
comportamento e as tarefas que são capazes de desempenhar.
● Nos sistemas OO, quando objetos de classes distintas possuem uma 
troca de mensagens frequente (autodependência forte ou 
cooperarem entre si), é comum estabelecermos um relacionamento 
entre essas classes. 
 
Linguagem de Programação II
● Relacionamentos:
● Qual o relacionamento entre Gerente e Departamento?
● Qual o relacionamento entre Atleta e Time?
● Qual o relacionamento entre Aluno e Disciplina?
● Qual o relacionamento entre Carro e Pessoa?
● Qual o relacionamento entre Ponto2D e Reta2D?
● Os relacionamentos são:
– um-para-um;
– um-para-muitos; 
– muitos-para-muitos; 
 
Linguagem de Programação II
● Relacionamentos:
● Qual o relacionamento entre Gerente e Departamento? um-para-um
● Qual o relacionamento entre Atleta e Time? um-para-muitos
● Qual o relacionamento entre Aluno e Disciplina? muitos-para-muitos
● Qual o relacionamento entre Carro e Pessoa? um-para-muitos
● Qual o relacionamento entre Ponto2D e Reta2D? um-para-muitos
● Os relacionamentos são:
– um-para-um;
– um-para-muitos; 
– muitos-para-muitos; 
 
Linguagem de Programação II
● Exemplo: 
● Vamos ligar as classes Carro e Pessoa: 
– 1) esse carro só possa pertencer a uma única pessoa, 
ou seja, o carro só possui um dono (referencia de 
pessoa na classe carro);
– 2) uma pessoa possua um carro (referencia de carro na 
classe pessoa)
– relação um-para-um.
 
Linguagem de Programação II
● Exemplo: 
● 1) Vamos ligar a classe Carro à classe Pessoa:
(referencia de pessoa na classe carro) 
– Adicionar um atributo chamado dono, que é do tipo 
Pessoa. 
 
Linguagem de Programação II
● Exemplo: 
● 1) Vamos ligar a classe Carro à classe Pessoa: 
– Métodos Get e Set; 
 
Linguagem de Programação II
● Exemplo:Linguagem de Programação II
● Exemplo: 
● 2) Vamos ligar a classe Pessoa à classe Carro:
(referencia de carro na classe pessoa)
 
Linguagem de Programação II
● Exemplo: 
● pessoa.getCarro().getCor();
 
Linguagem de Programação II
● Exercício:
● Criar uma classe Ponto2D;
– Atributos x e y;
– Método (comportamento): 
● Construtor Padrão, valores da origem (0,0);
● Construtor que rebece valores para x e para y;
● transladar o próprio ponto – recebe dois valores de de 
deslocamento em x e em y;
● calcular a distância entre o ponto e outro ponto (pitágoras
● comparação de igualdade com outro ponto;
● Criar uma classe Reta2D;
– Atributos dois Ponto2D;
– Construtor que recebe dois pontos;
– Construtor que recebe quatro valores (x1, y1, x2, y2), valores 
dos dois pontos da reta;
– Método (comportamento): transladar a reta;
 
Linguagem de Programação II
● Modificadores de acesso, são palavras reservadas da 
linguagem Java cuja utilidade é permitir ou proibir o acesso 
aos atributos e/ou métodos das classes. 
● public: garante que o atributo ou método da classe seja 
acessado ou executado a partir de qualquer outra classe.
● private: pode ser acessado apenas por métodos da mesma 
classe, sendo totalmente oculto ao programador (ou outros 
objetos do sistema) que for usar instâncias dessa classe.
● protected : funciona como o private exceto que as classes 
filhas ou derivadas também terão acesso ao atributo ou 
método.
 
Linguagem de Programação II
● Modificadores de acesso
● Package ou Friendly: não são palavras reservadas de 
modificadores de acesso. Nome utilizado quando os 
atributos e métodos declarados sem modificadores. Isso 
significa que podem ser acessados por todas as classes 
pertencentes a um mesmo pacote.
● Os atributos ou métodos podem 
ser acessados de onde?
● atributo1?
● atributo2?
● atributo3?
● metodo1?
 
Linguagem de Programação II
● Os atributos ou métodos podem 
ser acessados de onde?
● atributo1? Dentro da classe
● atributo2? De alguma classe derivada
● atributo3? De qualquer classe do projeto
● metodo1? Dentro da classe
● Modificadores de acesso
● Package ou Friendly: não são palavras reservadas de 
modificadores de acesso. Nome utilizado quando os 
atributos e métodos declarados sem modificadores. Isso 
significa que podem ser acessados por todas as classes 
pertencentes a um mesmo pacote.
 
Linguagem de Programação II
● Exercício:
● Criar uma classe A, com dois atributos inteiros x1 e x2;
– x1 pode ser acessado apenas dentro da própria 
classe;
– X2 pode ser lido por qualquer classe, porém pode ser 
modificado apenas pela própria classe;
● Criar uma classe B com dois atributs do tipo A, 
denominados y1 e y2;
– Os atributos devem ser acessados apenas pela 
própria classe.
– Criar um método construtor que receba dois atributos 
A;
● Criar uma classe C que possua uma 40 atributos do tipo A 
que podem ser acessados por qualquer classe;
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31

Continue navegando