Buscar

Programação Orientada a Objetos com Java

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programação Orientada a Objetos 
com Java
Prof. MSc. André FreitasProf. MSc. André Freitas
Referências
BARNES, David; KOLLING, Michael. Programação Orientada a Objetos com Java. São 
Paulo: Makron, 2009 
BARNES, David; KOLLING, Michael. Objects First with Java. 5th ed. Pearson, 2012
Notas de aula Prof. Júlio Machado, PUCRS
Santos, Rafael. Introdução à Programação Orientada a Objetos usando Java. 
Classes e Objetos
Criando classes em Java
● Em Java, a sintaxe básica para criação de classes:
class NomeDaClasse { }
● Java é case sensitive
● O conteúdo da classe é delimitado por chaves { } e deve 
conter os seus métodos
● Ex.: ContaDeLuz, RegistroAcademico, CadastroDeFuncionarioDeSupermercado
Classes e Objetos
Criando classes em Java
● Comentário simples: //
● Comentários em bloco: /* */
● Comentários para documentação: /** */
Classes e Objetos
Criando classes em Java
● Campos devem ser declarados dentro do corpo da classe.
● Cada campo deve ser representado por um tipo de dados
● Tipos nativos:
○ byte, short, int, long..
● String
○ Instância da classe String
Classes e Objetos
Criando classes em Java
Classes e Objetos
Criando classes em Java
● Que tipo de dados devem ser utilizados?
● Uma escolha errada pode ser dispendiosa e criar 
complexidades desnecessárias
● Ex.: Usar String ao invés de int para armazenar um número 
de matrícula
● Conversões explícitas podem ser feitas utilizando cast
Classes e Objetos
Criando classes em Java
● Métodos em classes Java: 
○ Não podem ser criados dentro de outros métodos e nem 
fora da classe à qual pertencem.
○ Tradicionalmente os nomes começam com letra 
minúscula
○ Métodos refletem ações efetuadas pela classe
Classes e Objetos
Criando classes em Java
● Métodos em classes Java - Exemplo: Classe DataSimples
public class DataSimples {// declaração da classe
/**
* Declaração dos campos da classe
*/
byte dia,mês; // dia e mês são representados por bytes
short ano; // ano é representado por um short
// declaração dos métodos
.
.
.
// fim da declaração dos métodos
}//fim da classe DataSimples
Classes e Objetos
Criando classes em Java
● Métodos em classes Java 
void inicializaDataSimples(byte d,byte m,short a)
{
if (dataEValida(d,m,a))
{
dia = d; mês = m; ano = a;
}
else 
{
dia = 0; mês = 0; ano = 0;
}
}
Classes e Objetos
Criando classes em Java
● Métodos em classes Java 
private boolean dataEValida(byte d, byte m, short a) {
if ((d >=1) && 
(d <= 31) && 
(m >= 1) && 
(m <= 12)) 
return true; 
else
return false;
}
Classes e Objetos
Criando classes em Java
● Métodos em classes Java 
boolean eIgual(DataSimples outraDataSimples)
{
if ((dia == outraDataSimples.dia) &&
 (mês == outraDataSimples.mês) && 
(ano == outraDataSimples.ano)) 
return true; 
else
return false; 
}
Classes e Objetos
Criando classes em Java
● Métodos em classes Java 
void mostraDataSimples()
{
System.out.print(dia); 
System.out.print("/"); 
System.out.print(mês); 
System.out.print("/"); 
System.out.println(ano); //adiciona quebra de linha
}
Classes e Objetos
Criando aplicações Java
● Em Java, uma classe deverá ser escolhida para receber um 
método especial, main, que será o ponto de início de um 
programa.
● A presença deste método fará com que a classe se torne 
executável
● Assinatura:
public static void main(String[] argumentos) 
Classes e Objetos
Criando aplicações Java
public static void main(String[] argumentos) 
● Public: Torna o método visível por outras classes
● Static: Um método static dispensa a instanciação de sua classe para que possa 
ser chamado. (Será visto mais a frente em detalhes).
● Void: Tipo de retorno do método. O tipo void não retorna nada.
● Método main pode pertencer a qualquer classe.
Boa prática: Fazer o método main ser o único método de uma classe para 
melhorar a distinção entre os papéis das diversas classes.
Classes e Objetos
Criando classes em Java
● Métodos em classes Java 
○ Formato genérico dos métodos:
modificador-de-acesso tipo-ou-classe-de-retorno 
nome-do-método(lista-de-argumentos) {} 
● Métodos podem retornar “nada” (void), tipos primitivos (ex. bool) ou instâncias 
de classes.
● Métodos que retornam algo (diferente de void) devem incluir a palavra-chave 
return em seu código seguida de uma constante ou variável do tipo ou classe que 
foi declarada em sua assinatura.
● Métodos podem ter listas de argumentos (parâmetros), receber apenas um 
argumento ou nenhum argumento
Classes e Objetos
Criando classes em Java
● Escopo de campos em classes Java 
● Campos são válidos em toda a classe, mesmo que estejam declarados depois dos 
métodos que os usam.
● Variáveis e instâncias declaradas dentro de um método só valem dentro destes 
métodos
○ Variáveis podem possuir o mesmo nome desde que pertençam a métodos 
diferentes
○ Variáveis e instâncias devem ser declaradas antes de serem utilizadas
Classes e Objetos
Criando classes em Java
● Modificadores de Acesso em Java
● Encapsulamento
○ Ocultar campos de classes para evitar que sejam manipulados por outras 
classes sem utilizar os métodos destinados a isto.
○ A classe DataSimples foi criada sem se preocupar com a ocultação do dados 
dia, mes e ano.
● Exemplo: Classe DemoDataSimples.
Classes e Objetos
Criando classes em Java
● Modificadores de Acesso em Java
● Encapsulamento Exemplo: Classe DemoDataSimples.
● Médotos definidos nas classes podem ser acessados com a notação
○ nome-da-referencia.nome-do-metodo(argumentos1, argumento2);
○ Operador ponto “.”
○ Nos argumentos não deve-se incluir os tipos
● Campos de classes também podem ser acessados com o operador ponto
● Acessar campos diretamente: datas não-válidas podem ser inseridas sem 
tratamento.
● Ex.; dia >= 1 e dia <=31.
● Encapsualmento: restringir o acesso para que o usuário não modifique os campos 
arbitrariamente
Classes e Objetos
Criando classes em Java
● Modificadores de Acesso em Java
● Public
○ Permite acesso e execução a partir de qualquer classe
● Private
○ Só permite acesso/execução a partir de métodos da própria classe
○ Campos ou métodos que devam ser ocultos de usuários da classe devem usar 
este modificador.
● Protected
○ Funciona como o private, exceto que classes herdeiras ou derivadas têm 
acesso ao campo/método protected.
● Sem modificadores: package friendly
○ Campos/Métodos visíveis a todas as classes.
Classes e Objetos
Criando classes em Java
● Regras de acesso em Java para campos/métodos
● Campos de uma classe devem ser declarados private
● Métodos de uma classe devem ser declarados public
○ Métodos que permitem a manipulação dos campos
● Métodos private
○ Métodos que podem ser utilizados por outros métodos dentre de uma 
mesma classe, mas que devem ser ocultos para outras classes.
○ Ex.: imprimeNumeroDePagina() e imprimeRelatorio()
Classes e Objetos
Criando classes em Java
● Regras de acesso em Java para campos/métodos
Exemplo: Classe Data que implementa uma política de 
ocultação de campos.
Classes e Objetos
Criando classes em Java
● A criação e uso de instâncias de classes em métodos (ex. main) é feita com a 
palavra new
○ A instância é associada a uma referência
○ A referência é utilizada para acessar a instância e fazer operações com ela.
Classes e Objetos
Criando classes em Java
● Inicializamos uma instância com o método da classe Data
● A referência nascimentoDeGeorgeBizet não foi inicializada, mas pode ser 
utilizada.
● Os dados de uma instância podem ser atualizados:
● Ao chamar o método mostrarData() de nascimentoDeGeorgeBizet e de 
nascimentoDeJohanStrauss, que informação será exibida?
● As duas datas são iguais? Ex. Classe MaisDemoData
Classes e Objetos
Criando classes em Java
● Estas duas referências apontam para a mesma instância
○ A instância foi associada a duas referências
○ Qualquer das referências pode ser usada para modificar e usar métodos da 
instância
● Uma referência também pode ser criada sem uma instânciaassociada a ela.
○ Tentativas de chamar métodos da classe Data causarão erros de compilação.
● Instâncias diferentes ocupam espaços de memória diferentes
Classes e Objetos
Criando classes em Java
● A criação de instâncias com a palavra new pode ocorrer dentro da própria classe 
cuja instância está sendo criada
Exemplo: Classe Ponto2D
Classes e Objetos
Criando classes em Java
● A palavra null pode ser utilizada na para criar uma referência
○ Ela indica que a referência ainda não foi instanciada
● É possível criar uma referência sem criar uma instância
○ Caso uma tentativa de chamar um método seja feita, o compilador dará um 
erro impedindo que o programa seja compilado
● Quando se atribui o null a uma referência
○ O compilador permitirá a compilação
○ Caso um método seja chamado de um objeto null (sem instância), ocorrerá 
erro de execução no programa.
● Quando utilizar o null?
○ Caso haja necessidade de fazer alguma inicialização condicional
○ Campos que só podem ser determinados em tempo de execução.
Classes e Objetos

Outros materiais