java - orientação a objetos

Post on 20-Jun-2015

1.091 Views

Category:

Education

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

JAVA - Orientação a Objetos

TRANSCRIPT

Orientação a ObjetosLinguagem de Programação IICiência da ComputaçãoProf.ª Ms. Elaine Cecília Gatto

Introdução

• Em POO qualquer entidade tem características e comportamentos

• Vantagens:• Reutilização de código• Confiabilidade• Facilidade de manutenção e extensão

Introdução

• OBJETOS: • pessoas, • animais, • plantas, • carros, • aviões, • edifício, • computadores,

• sinais de trânsito, • fornos de

microondas, • telefones, • casas, • sistemas de

refrigerção à água, • etc.

Introdução

• Dois tipos de objetos• Animados• Inanimados;

• Todos os objetos tem atributos: • Tamanho• Forma• Cor• Peso• etc

Introdução

• Todos os objetos tem comportamentos:• uma bola rola, • uma bola infla, • uma bola murcha• O bebê chora• O bebê dorme• O bebê engatinha• O bebê anda• etc

Introdução

• Diferentes objetos podem• exibir comportamentos semelhantes• ter atributos semelhantes

• Exemplo: • Comparação entre bebês e adultos• Comparação entre humanos e chimpanzés

• Portanto OO é semelhante àquilo que as pessoas utilizam para descrever os objetos do mundo real

Introdução

• Classes: objetos que tem as mesmas características

• Exemplo: uma classe de veículos é composta por carros, caminhões e patins.

• Herança: novas classes de objetos são derivadas de uma principal, absorvendo características desta e adicionando características únicas

Introdução

• Mensagens: • Comunicação entre objetos. • Humanos trocam mensagens entre si• Os objetos fazem o mesmo.

• Exemplo: um objeto conta bancária pode receber uma mensagem para reduzir seu saldo

Introdução

• Encapsulamento: • A orientação a objetos empacotam atributos e

operações em objetos. • As operações são os comportamentos dos

objetos.

• Exemplo: podemos dirigir um carro sem conhecer os detalhes de como motores, transmissões, freios e sistemas funcionam internamente, mas sabemos para que serve o acelerador, o freio entre outros.

Introdução

• Em JAVA a unidade de programação é a CLASSE, a partir da qual os objetos são instanciados (ou criados)

• Métodos: implementam operações e são semelhantes a funções na linguagem C

• Campos: implementam atributos

Introdução

• Classes: contém campos e conjunto de métodos que manipulam os campos e fornecem serviços a outras classes

• Podemos criar muitos objetos a partir de uma mesma classe

• Associações: relacionamento entre classes

Introdução

• Reutilização de classes: o empacotamento permite isto, diminuindo custos, tempo e esforço, ajudando a construir sistemas mais confiáveis e eficientes.

• Classes existentes são confiáveis pois:• Testes, • Depuração,• Ajustes de desempenho

Classes e Objetos

• Método: • Realiza uma tarefa em um programa (classe)• Descreve os mecanismos que realmente realizam

suas tarefas• Oculta do usuário as tarefas complexas que ele

realiza• Uma classe abriga um ou mais métodos

Classes e Objetos

• Exemplo: uma classe que representa uma conta bancária poderia contar com um método para depósitos, outro para saques e outro para obter o saldo

• Antes de qualquer coisa, o programador deve construir um objeto de uma classe antes de fazer um programa realizar as tarefas descritas na própria classe

Classes e Objetos

• Chamada de método: • Quando mensagens são enviadas para um objeto• Instrui o método do objeto a fazer a sua tarefa

• Um objeto tem atributos que são portados com o objeto quando ele é utilizado em um programa

• Exemplo: cada objeto conta bancária sabe o saldo da conta que ele representa, mas não sabe os saldos de outras contas do banco

Classes e Objetos

• Atributos são especificados pelas variáveis de instância da classe.

• EXEMPLO NO NETBEANS

Classes e Objetos

• public • É uma palavra chave que é um modificador de

acesso• Significa que o método, classe ou objeto está

diponível para o público, está acessível a todos• Por fim, pode ser chamado de fora do corpo da

declaração de classe, por métodos ou outras classes

Classes e Objetos

• Void: • Palavra chave• O método realiza uma tarefa mas não retorna

nenuma informação

• Uma classe que contém o método MAIN é um aplicativo Java

• O MAIN é um método especial que é chamado automaticamente pela JVM quando você executar o aplicativo.

Classes e Objetos

• A maioria dos métodos não são chamados automaticamente

• A classe do exemplo não é um aplicativo Java pois não contém um método main.

• Ela é simplesmente uma classe.

Classes e Objetos

• Static: um método static é especial porque pode ser chamado sem primeiro criar um objeto da classe em que o método é declarado

• Não podemos chamar um método que pertence a outra classe até criar um objeto dessa classe

Classes e Objetos

• Cada nova classe que criamos, torna-se um novo tipo em Java que pode ser utilizado para declarar variáveis e criar objetos

• New: cria um objeto da classe especificada à direita da palavra chave

Classes e Objetos

• Representação gráfica de uma classe

LivroDeNotas

+ MostrarMensagem()

NomeDaClasseAtributosMétodos

Classes e Objetos

• Métodos podem exigir um ou mais parametros que representam informações adicionais necessárias para realizar a tarefa

• EXEMPLO NO NETBEANS

• Ao declarar um método você deve especificar se o método requer dados para realizar a sua tarefa, ou não.

Classes e Objetos

• Portanto, o método pode ter uma lista de parâmetros. Pode ter nenhum, apenas um ou vários.

• Todo parametro deve especificar um tipo e um identificador

• Cuidado com o número de parametros e os seus respectivos tipos

Classes e Objetos

• Representação gráfica do segundo exemplo

LivroDeNotas2

+ MostrarMensagem(NomeDoCurso : String)

Classes e Objetos

• Porque preciso importar a classe SCANNER e não importar a classe String ou System?

• Porque o pacote java.lang é importado implicitamente em todo o programa java

Classes e Objetos

• Classes no mesmo pacote (mesma pasta) são importadas implicitamente nos arquivos de código-fonte de outras classes no mesmo pacote

• Uma declaração import não será exigida quando uma classe em um pacote utilizar outra domesmo pacote

Classes e Objetos

• Variáveis locais: • São as variáveis declaradas no corpo de um

método particular• Só podem ser utilizadas nesse método.

• Quando um método termina, os valores de suas variáveis locais são perdidos

Classes e Objetos

• Um objeto tem atributos que são portados com o objeto quando ele é utilizado em um programa

• Os atributos existem antes de um método ser chamado em um objeto e depois do método completar a execução

Classes e Objetos

• Os atributos são representados como variáveis em uma declaração de classe

• Variáveis são chamadas de CAMPOS

• São declaradas dentro de uma declaração de classe, mas fora dos corpos das declarações de método da classe

Classes e Objetos

• Variavel de instancia: • É o campo que representa o atributo• Ocorre quando cada objeto de uma classe

mantém sua própria cópia de um atributo• Cada objeto (ou instancia) da classe tem uma

instância separada da variável na memória

• EXEMPLO NO NETBEANS

Classes e Objetos

• Private: • Palavra chave • Modificador de acesso• Só são acessíveis a métodos da classe em que

são declarados

• Regra geral:• Variáveis de instância devem ser declaradas

como private• Métodos devem ser declarados como public

Classes e Objetos

• Procure declarar todas as variáveis no inicio do seu código, isto deixa o programa legível

• Ocultamento de dados: ocorre quando um programa cria um objeto de uma classe, encapsulando seus atributos, que só poderão ser acessados por métodos da classe do objeto

• Retorno de método: quando um método tem um tipo, ao completar sua tarefa, o método retorna, ao método chamador, um resultado

Classes e Objetos

• Todo campo tem um valor inicial padrão;

• Esse valor é fornecido pelo JAVA quando o programador não especificar o valor inicial;

• O valor padrão de um tipo de dado STRING é o NULL;

Classes e Objetos

• Recomenda-se inicializar STRINGS com “”, isto é, uma String vazia

• Cliente de um objeto: é qualquer classe que chama os métodos do objeto

Classes e Objetos

• As classes costumam fornecer métodos PUBLIC para permitir a clientes da classe CONFIGURAR ou OBTER valores de variáveis de instância PRIVATE

• Métodos SET e GET: métodos para configurar e obter valores

• Nomenclatura padrão do JAVA

Classes e Objetos

• Representação gráfica do terceiro exemplo

LivroDeNotas3- NomeDoCurso : String+ setNomeDoCurso( NomeDoCurso : String)+ getNomeDoCurso( ) : String+ MostrarMensagem()

Classes e Objetos• Tipos primitivos em

Java:• Boolean• Byte• Char• Short• Int• Long• Float• Double

• Todas são inicializadas com o valor ZERO, menos BOOLEAN que é inicializada com FALSE ou TRUE

• Tipos NÃO primitivos em Java:• São os tipo por

referência• Classes é um tipo não

primitivo

Classes e Objetos

• Variáveis de tipos por referência: são usadas para armazenas as localizações de objetos na memória do computador;

• Essas variáveis referenciam objetos no programa;

• Os objetos referenciados podem todos conter muitas variáveis de instância e métodos;

Classes e Objetos

• São inicializadas por padrão com o valor NULL;

• NULL = referencia a nada

• Uma referencia a um objeto é requerida para invocar os métodos do objeto

Classes e Objetos

• CONSTRUTOR

• É utilizado para inicializar um objeto de uma classe quando o objeto for criado

• Java requer uma chamada de construtor para todo objeto que é criado

Classes e Objetos

• NEW: chama o construtor da classe para realizar a incialização

• O compilador JAVA fornece um construtor-padrão sem parametros em qualquer classe que não inclua explictamente um construtor.

Classes e Objetos

• EXEMPLO NO NETBEANS

• Um construtor deve ter o mesmo nome da sua classe• Uma classe pode ter vários métodos construtores• Construtores NÃO podem retornar valores• Se o programador especificar um construtor para a

classe, o JAVA não criará um construtor-padrão

Classes e Objetos

• Representação gráfica do exemplo 4

LivroDeNotas4- NomeDoCurso : String<< construtor >> LivroDeNotas4()<< construtor >> LivroDeNotas4( Nome : String)+ setNomeDoCurso( Nome : String)+ getNomeDoCurso( ) : String+ MostrarMensagem()

Classes e Objetos

• Números de ponto flutuante

• Variáveis double podem armazem números com maior magnitude, mais detalhes e mais precisos que as variáveis float

• Por padrão, Java trata todos os número de ponto flutuante como DOUBLE e não como FLOAT

Classes e Objetos

• Números de ponto flutuante

• A maioria dos programadores JAVA usam DOUBLE e não FLOAT

• O valor armazenado sempre será apenas uma aproximação do valor exato

Classes e Objetos

• EXEMPLO NO NETBEANS

• Representação gráfica do exemplo 5:

Conta- saldo : Double<< construtor >> Conta( saldoInicial : Double) + Credito(conta : Double)+ getSaldo() : Double

Métodos

• Técnica “Dividir pra conquistar”: melhor forma de desenvolver um programa grande é construí-lo a partir de pequenas e simples partes, ou módulos.

• Métodos, classes e pacotes: são os três tipos de módulos em JAVA.

• Não reivente a roda! Utilize as APIs do Java e códigos-fontes já existentes na comunidade, para diminuir o tempo de desenvolvimento do seu projeto.

Métodos

• API: Java Application Programming Interface. Fazem parte do JDK 7. Coleções de classes pré-definidas:• Cálculos matemáticos• Manipulações de Strings• Manipulações de Caracteres• Operações de entrada/saída• Operações de banco de dados• Operações de rede• Processamento de arquivos• Verificação de erros• Etc.

Métodos

• Métodos são como funções ou procedimentos

• Permitem que o programador modularize um programa, separando suas tarefas em unidades

• Tornam os programas mais gerenciáveis

• Permite reutilização de código

Métodos

• Um pequeno método que realiza uma única tarefa é mais fácil de testar e depurar do que um método maior que realiza muitas tarefas

• Limite o seu método à realização de uma única tarefa

Métodos

• Dê um nome apropriado ao seu método, que expresse o que ele realmente faz

• Um método é invocado por uma chamada de método

• Quando o método chamado completa sua tarefa, ele retorna um resultado ou retorna o controle ao chamador

Métodos

• Métodos static ou métodos de classe: realiza uma tarefa que não depende de nenhum objeto, se aplica à classe em que é declarado como um todo

• Não é necessário criar um objeto da classe antes de usar os métodos contidos nela

• Exemplo da classe MATH, que contem as funções matemáticas pré-definidas:• Math.sqrt(numero);

MétodosMÉTODO DESCRIÇÃO

abs(x) Valor absoluto de xceil(x) Arredonda x para o maior inteiro não menor que xcos(x) Cosseno trigonométrico de x (x em radianos)exp(x) Método exponencial

floor(x) Arredonda x para o maior inteiro não maior que xlog(x) Logaritmo natural de x (base e)

max(x, y) Maior valor de x e ymin(x, y) Menor valor de x e ypow(x, y) x elevado à potência de y (isto é, xy)

sin(x) Seno trigonométrico de x (x em radianos)sqrt(x) Raiz quadrada de xtan(x) Tangente trigonométrica de x (x em radianos)

Métodos

• Variáveis de classe:

• Campos em que cada objeto de uma classe não tem uma instância separada do campo

• Campos static: permite que eles sejam acessados via nome da classe e um ponto

• Quando objetos de uma classe que contém campos static são criados, todos os objetos dessa classe compartilham uma cópia dos campos static

Métodos

• Exemplo no netbeans

• Um método com muitos parametros pode estar realizando tarefas demais

• Considere dividir o método em métodos menores que realizam tarefas separadas

• Um tipo de dado é requerido para cada parametro na lista de parametros de um metodo!

Métodos

• Três formas de chamar um método. Exemplos:

• MaiorValor(n1, n2, n3); o próprio nome do método

• MaiorValor.determineMaximo(); uma variável que contém uma referência a um objeto

• Math.sqrt(); o nome da classe

Métodos

• APIs Java

• Classes pré-definidas agrupadas em categorias

• Declarações import especificam as classes exigidas para compilar um programa

Métodos

• Permite que os programadores utilizem o nome simples da classe em vez do nome completamente qualificado da classe

• Não preciso usar java.util.Scanner no código, basta usar Scanner, desde que seja usado import java.util.Scanner; no inicio da classe

MétodosPacote Descriçãojava.applet Criação de applets (web)java.awt Java abstract window toolkit package. Manipulam GUIsjava.awt.event Tratamento de eventos de GUIjava.io Input/output java.lang LANG = LANGUAGE. Classes e interfaces java diversasjava.net NET = NETWORKING. Classes para redesjava.text TEXT . Manipula números, datas, caracteres e stringsjava.util UTIL = UTILITIES. Data, hora, números aleatórios,

armazenamento e processamento de dados, divisão de strings.

java.swing Componentes GUI swingjava.swing.event Tratamento de evento swing

Métodos

• Sobrecarga de métodos:

• Métodos com o mesmo nome podem ser declarados na mesma classe, contanto que tenham diferentes conjuntos de parâmetros

• É usada para criar vários métodos com o mesmo nome que realizam as mesmas tarefas ou tarefas semelhantes mas sobre tipos diferentes de números ou números diferentes de argumentos

Métodos

• Exemplo no netbeans

• O compilador distingue os métodos sobrecarregados pelas suas assinaturas

• Distingue pelo nome do método, número do método, tipos dos parametros e ordem dos parametros

• Void metodo1(int a, float b) e void metodo1(float a, int b) são diferentes!!!!

Métodos

• Declarações de métodos sobrecarregados com assinaturas idênticas causam erros mesmo que os tipos de retorno sejam diferentes

• O tipo de retorno então não diferenciam os métodos!

Exercícios

top related