Buscar

NCE - Curso de Nivelamento Java - aula1

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

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

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ê viu 3, do total de 33 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

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

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ê viu 6, do total de 33 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

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

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ê viu 9, do total de 33 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

Prévia do material em texto

UFRJ 
NCE - Núcleo de 
Computação Eletrônica
Curso de programação Java
Fevereiro / 2008
Professor: Henrique Tavares
Programação Procedural
 Organização modular não respeita a 
similaridade das informações.
 Tem por objetivo identificar procedimentos 
que realizarão algum tipo de processamento 
que mistura dados com diferentes 
semânticas. 
Clientes
Funcionários
Vendas
Itens das Vendas
Parcelas da Vendas
Condições de Pagamento
Programação Procedural
Programação OO
 Informações organizadas em classes
 São identificadas as entidades e seus 
relacionamentos para compor um sistema.
 
 A computação flui por meio de um mar de 
mensagens trocadas entre os objetos.
Programação OO
Itens da Venda
Parcelas da Venda
Condições de Pagamento
Cliente
Troca de Mensagens
Funcionário
Venda
Classes
 Classes são utilizadas para caracterizar e descrever 
cenários: trata-se do uso de semântica!
 Na linguagem de programação Java, programas 
são construídos a partir de classes.
 A partir de uma definição de classe, você pode criar 
qualquer quantidade de objetos.
Classes
 Na classe são definidos os membros do objeto: seus 
atributos (dados) e métodos (comportamentos)
Pacotes (I)
 As classes são "arrumadas" dentro de 
pacotes. 
Pacotes (II)
 Pacotes são unidades de agrupamento de classes.
 Classes são agrupadas por vários motivos: 
 Organização
 Performance da aplicação
 Solução de escopos de variáveis 
 Os pacotes podem ter sub-pacotes de qualquer 
profundidade.
 Para evitar conflitos de nomes:
 O nome do pacote deve ser único para classes e 
interfaces no pacote.
 Escolher um nome que seja ao mesmo tempo significativo 
e único.
Especialização
 É a criação de subclasses a partir de superclasses.
 
 As subclasses herdam de sua classe mãe:
 
 Estrutura
 Comportamento
 Relacionamentos
 
 Algumas destas características podem ser 
redefinidas, caracterizando uma especialização com 
relação à classe mãe.
 Características adicionais podem ser definidas.
Generalização
 É a criação de superclasses a partir de suas 
subclasses.
 As características comuns entre as subclasses são 
colocadas na superclasse.
 
 Procedimento para criação de superclasse:
 Observar a estrutura e comportamento comuns entre as 
subclasses.
 Incorporar estas características à superclasse. 
 As classes originais passam a ser subclasses da nova 
superclasse.
Exemplos de Classes
 Um cenário de uma agência bancária pode 
ser caracterizado com as seguintes classes:
 PessoaFisica
 PessoaJuridica
 ContaCorrente
 ContaPoupanca
 TituloDeCapitalizacao
 FundoInvestimento
 DOC
 EscriturarioCaixa
 GerenteOperacional
 GerenteDeRelacionamento
 CaixaEletronico
 Deposito
 Saque etc.
Similaridade dos Significados
 Quais classes podem ser reunidas de acordo 
com a proximidade dos seus significados?
Conta
ContaCorrente
ContaPoupanca
Cliente
PessoaFisica
PessoaJuridica
Investimento
TituloDeCapitalizacao
FundoInvestimento
OperacaoBancaria
OperacaoOutroBanco
DOC
OperacaoMesmoBanco
Deposito
Saque
Funcionario
EscriturarioCaixa
GerenteOperacional
GereteDeRelacionamento
 Java usa herança para reutilizar classes existentes
 Herança estabelece uma relação de similaridade 
entre essas classes. Exemplo:
 ContaPoupanca é uma Conta
 PessoaFisica é um Cliente
 TituloDeCapitaliacao é um Investimento
 Em Java:
Heranca: a hierarquia dos 
Significados
class ContaPoupanca extends Conta {
}
java.lang.Object
 É a raiz da hierarquia de classes da API do Java: 
Toda classe estende Object, direta ou indiretamente
 
 Classes que não declaram estender ninguém, 
estendem Object diretamente.
 Classes que declaram estender outra classe, 
herdam de Object pela outra classe cuja hierarquia 
começa em Object.
 Todos os métodos de Object estão 
automaticamente disponíveis para qualquer objeto. 
 Porém, as implementações são default, e geralmente 
inúteis para objetos específicos.
Exercicio 1
 Usando herança e aplicando generalização, 
crie o código Java que exibe a relação de 
similaridade entre as classes: 
EscriturarioCaixa, GerenteOperacional, 
GerenteDeRelacionamento, CaixaEletronico, 
Deposito, Saque, PessoaFisica, PessoaJuridica, 
ContaCorrente, ContaPoupanca, 
TituloDeCapitalizacao, FundoInvestimento e DOC.
Objetos
 Um objeto é uma entidade que engloba 
dados e os métodos necessários à sua 
manipulação.
 Objetos são unidades autocontidas que 
executam tarefas personalizadas: trata-se de 
estruturas semanticamente autosuficientes.
Objetos – construção
 Objetos sao criados à imagem da sua 
classe geradora.
Objetos – destruição
 Após sua utilização, objetos podem ser 
destruídos.
Objetos
 Pense em uma classe como uma fábrica com 
esquemas e instruções para construir artefatos: 
objetos são os artefatos que a fábrica produz.
 Para construirmos um objeto a partir da classe 
ContaCorrente:
ContaCorrente minhaConta = new ContaCorrente();
Construtores de Objetos
 Construtores são procedimentos realizados na 
construção de objetos e devem possuir o mesmo nome 
da classe em questão.
 Podemos garantir que um objeto seja construído de 
varias formas diferentes, por exemplo:
Conta minhaConta = new Conta();
OU AINDA…
Conta minhaConta = new Conta(“Flavia”);
OU AINDA…
Conta minhaConta = new Conta(“Flavia”, 2000);
Encapsulamento
 Algumas informações não devem ser construídas 
dentro de certos objetos pois entram em discordância 
com o significado da classe de objetos.
 Torna-se necessário isolar tais informações em outros 
objetos o que torna a programação mais coerente. 
Exemplo:
Cliente umCliente = new Cliente(“Flavia”);
LOGO DEPOIS…
Conta minhaConta = new Conta( umCliente , 2000);
Encapsulamento
 Sendo assim, encapsulamento é uma forma de 
isolamento de dados (atributos) e comportamento 
(métodos) dos objetos das classes.
 Classes Java encapsulam atributos e métodos da 
seguinte forma:
class Conta {
float saldo;
void creditar( float valor ) { }
void debitar( float valor ) { }
void encerrar( ) { }
}
class Cliente {
String nome;
String endereco;
char sexo;
void enviarMalaDireta( ) { }
void realizarCobranca( ) { }
}
Habilitando Construtores de 
Objetos
 Construtores de objetos devem ser disponibilizados 
na classe de onde serão criados os objetos:
class Conta {
 float saldo;
 Cliente titular;
 void creditar( float valor ) { }
 void debitar( float valor ) { }
 void encerrar( ) { }
 Conta ( ) { }
 Conta ( Cliente cliente, double valor ) { }
}
Variáveis
 Variáveis são usadas em linguagens em geral para armazenar 
valores.
 Valores são passados para variáveis através de operações de 
atribuição
 Atribuição de valores 
 Atribuição de referências (variáveis de objeto)
numero = 44;
letra = ‘C’;
flag = false;
frase = “Saldo insuficiente!” ;
umCliente = new Cliente();
umaConta = new Conta(); 
Declaração de variáveis
 A declaração de uma variável é realizada quando 
citamos o seu tipo:
int numero;
char letra;
boolean flag;
String frase;
Cliente umCliente;
Conta umaConta;
Declaração com Atribuição 
 Frequentemente, ao declararmos uma variável 
podemos logo atribuir um valor que a inicializa.
int numero = 44;
char letra = ‘C’;
boolean flag = false;
String frase = “Saldo insuficiente!” ;
Cliente umCliente = new Cliente();
Conta umaConta = new Conta();
Tipos primitivos
 Sao atômicos, por isso nao podem ser 
quebrados em pedaços menores.
int numero = 44;
char letra = ‘C’;
boolean flag = false;
Tipos primitivosTipos Complexos
 Tipos complexos são compostos por outros tipos:
Date data = new Date(2008, 2, 18);
int[] vetorInteiros = {1, 4, 7, 9};
OU AINDA…
String frase = “Saldo insuficiente!” ;
Cliente umCliente = new Cliente(“Flavia”);
Conta minhaConta = new Conta( umCliente , 2000);
Declarando Variáveis, Atributos e 
Parâmetros na classe
 Variaveis sao declaradas no corpo dos metodos
 Parametros sao declarados no cabecalho dos metodos
 Atributos sao declarados no corpo da classe
class Conta {
 double saldo; Cliente titular; boolean ativa;
 void encerrar( ) { }
 void creditar( double valor ) { }
 void debitar( double valor ) {
double debito = valor;
saldo = saldo – debito;
 }
 Conta( ) {
 ativa = true;
 }
 Conta(Cliente cliente, double valor ) {
 ativa = true;
 saldo = valor;
 titular = cliente;
 }
}
Exercicio 2
 Termine a programação da classe Conta 
completando os métodos void encerrar() 
e void creditar(double valor)
Exercício 3
 Pergunta: de que forma podemos consultar o nome 
do titular de uma conta quando construimos objetos 
assim:
Cliente umCliente = new Cliente(“Flavia”);
LOGO DEPOIS…
Conta minhaConta = new Conta( umCliente , 2000);
	UFRJ NCE - Núcleo de Computação Eletrônica
	Programação Procedural
	Slide 3
	Programação OO
	Slide 5
	Classes
	Slide 7
	Pacotes (I)
	Pacotes (II)
	Especialização
	Generalização
	Exemplos de Classes
	Similaridade dos Significados
	Heranca: a hierarquia dos Significados
	java.lang.Object
	Exercicio 1
	Objetos
	Objetos – construção
	Objetos – destruição
	Slide 20
	Construtores de Objetos
	Encapsulamento
	Slide 23
	Habilitando Construtores de Objetos
	Variáveis
	Declaração de variáveis
	Declaração com Atribuição 
	Tipos primitivos
	Slide 29
	Tipos Complexos
	Declarando Variáveis, Atributos e Parâmetros na classe
	Exercicio 2
	Exercício 3

Outros materiais