Orientação a Objetos
Linguagem de Programação II
Ciência da Computação
Prof.ª 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
semelhantes a funções na linguagem C
• Campos: implementam atributos

e

são
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()

NomeDaClasse
Atributos
Mé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ódigofonte 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étodos
MÉTODO

DESCRIÇÃO

abs(x)

Valor absoluto de x

ceil(x)

Arredonda x para o maior inteiro não menor que x

cos(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 x

log(x)

Logaritmo natural de x (base e)

max(x, y)

Maior valor de x e y

min(x, y)

Menor valor de x e y

pow(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 x

tan(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étodos
Pacote

Descrição

java.applet

Criação de applets (web)

java.awt

Java abstract window toolkit package. Manipulam GUIs

java.awt.event

Tratamento de eventos de GUI

java.io

Input/output

java.lang

LANG = LANGUAGE. Classes e interfaces java diversas

java.net

NET = NETWORKING. Classes para redes

java.text

TEXT . Manipula números, datas, caracteres e strings

java.util

UTIL = UTILITIES. Data, hora, números aleatórios,
armazenamento e processamento de dados, divisão de
strings.

java.swing

Componentes GUI swing

java.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
sobrecarregados pelas suas assinaturas

métodos

• 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

JAVA - Orientação a Objetos

  • 1.
    Orientação a Objetos Linguagemde Programação II Ciência da Computação Prof.ª Ms. Elaine Cecília Gatto
  • 2.
    Introdução • Em POOqualquer entidade tem características e comportamentos • Vantagens: • Reutilização de código • Confiabilidade • Facilidade de manutenção e extensão
  • 3.
    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.
  • 4.
    Introdução • Dois tiposde objetos • Animados • Inanimados; • Todos os objetos tem atributos: • Tamanho • Forma • Cor • Peso • etc
  • 5.
    Introdução • Todos osobjetos tem comportamentos: • uma bola rola, • uma bola infla, • uma bola murcha • O bebê chora • O bebê dorme • O bebê engatinha • O bebê anda • etc
  • 6.
    Introdução • Diferentes objetospodem • 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
  • 7.
    Introdução • Classes: objetosque 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
  • 8.
    Introdução • Mensagens: • Comunicaçãoentre 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
  • 9.
    Introdução • Encapsulamento: • Aorientaçã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.
  • 10.
    Introdução • Em JAVAa unidade de programação é a CLASSE, a partir da qual os objetos são instanciados (ou criados) • Métodos: implementam operações semelhantes a funções na linguagem C • Campos: implementam atributos e são
  • 11.
    Introdução • Classes: contémcampos 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
  • 12.
    Introdução • Reutilização declasses: 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
  • 13.
    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
  • 14.
    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
  • 15.
    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
  • 16.
    Classes e Objetos •Atributos são especificados pelas variáveis de instância da classe. • EXEMPLO NO NETBEANS
  • 17.
    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
  • 18.
    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.
  • 19.
    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.
  • 20.
    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
  • 21.
    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
  • 22.
    Classes e Objetos •Representação gráfica de uma classe LivroDeNotas + MostrarMensagem() NomeDaClasse Atributos Métodos
  • 23.
    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.
  • 24.
    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
  • 25.
    Classes e Objetos •Representação gráfica do segundo exemplo LivroDeNotas2 + MostrarMensagem(NomeDoCurso : String)
  • 26.
    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
  • 27.
    Classes e Objetos •Classes no mesmo pacote (mesma pasta) são importadas implicitamente nos arquivos de códigofonte de outras classes no mesmo pacote • Uma declaração import não será exigida quando uma classe em um pacote utilizar outra domesmo pacote
  • 28.
    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
  • 29.
    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
  • 30.
    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
  • 31.
    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
  • 32.
    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
  • 33.
    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
  • 34.
    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;
  • 35.
    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
  • 36.
    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
  • 37.
    Classes e Objetos •Representação gráfica do terceiro exemplo LivroDeNotas3 - NomeDoCurso : String + setNomeDoCurso( NomeDoCurso : String) + getNomeDoCurso( ) : String + MostrarMensagem()
  • 38.
    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
  • 39.
    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;
  • 40.
    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
  • 41.
    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
  • 42.
    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.
  • 43.
    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
  • 44.
    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()
  • 45.
    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
  • 46.
    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
  • 47.
    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
  • 48.
    Métodos • Técnica “Dividirpra 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.
  • 49.
    Métodos • API: JavaApplication 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.
  • 50.
    Métodos • Métodos sãocomo 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
  • 51.
    Métodos • Um pequenomé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
  • 52.
    Métodos • Dê umnome 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
  • 53.
    Métodos • Métodos staticou 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);
  • 54.
    Métodos MÉTODO DESCRIÇÃO abs(x) Valor absoluto dex ceil(x) Arredonda x para o maior inteiro não menor que x cos(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 x log(x) Logaritmo natural de x (base e) max(x, y) Maior valor de x e y min(x, y) Menor valor de x e y pow(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 x tan(x) Tangente trigonométrica de x (x em radianos)
  • 55.
    Métodos • Variáveis declasse: • 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
  • 56.
    Métodos • Exemplo nonetbeans • 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!
  • 57.
    Métodos • Três formasde 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
  • 58.
    Métodos • APIs Java •Classes pré-definidas agrupadas em categorias • Declarações import especificam as classes exigidas para compilar um programa
  • 59.
    Métodos • Permite queos 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
  • 60.
    Métodos Pacote Descrição java.applet Criação de applets(web) java.awt Java abstract window toolkit package. Manipulam GUIs java.awt.event Tratamento de eventos de GUI java.io Input/output java.lang LANG = LANGUAGE. Classes e interfaces java diversas java.net NET = NETWORKING. Classes para redes java.text TEXT . Manipula números, datas, caracteres e strings java.util UTIL = UTILITIES. Data, hora, números aleatórios, armazenamento e processamento de dados, divisão de strings. java.swing Componentes GUI swing java.swing.event Tratamento de evento swing
  • 61.
    Métodos • Sobrecarga demé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
  • 62.
    Métodos • Exemplo nonetbeans •O compilador distingue os sobrecarregados pelas suas assinaturas métodos • 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!!!!
  • 63.
    Métodos • Declarações demé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!
  • 64.