Você está na página 1de 34

Programao Orientada

Objetos.
Aula 3 e 4
E-mail: ederbarbozati@gmail.com

Paradigma Orientado
Objetos
2

POO

Aula 3 e 4
Sintaxe da Linguagem Java.
Implementao de classes e instanciao de
objetos.
Definio e mtodos estticos e
implementao Atributos
Definio de Usabilidade, Encapsulamento e
Acessibilidade.
Exemplos e Exerccios

Java
Entender um pouco da histria da plataforma
Java essencial para enxergar os motivos que a
levaram ao sucesso.
Quais eram os seus maiores problemas quando
programava na dcada de 1990?
Ponteiro?
Gerenciamento de memria?
Organizao?
Falta de bibliotecas?
Ter de reescrever parte do cdigo ao mudar
de sistema operacional?
Custo financeiro de usar a tecnologia?

Java
A linguagem Java resolve bem esses problemas, que
at ento apareciam com frequncia nas outras
linguagens.
A linguagem teve seu lanamento focado no uso em
clientes web (browsers) para rodar pequenas
aplicaes (applets).
O Java ganhou destaque no lado do servidor.

Mquina Virtual
Em uma linguagem de programao como C e
Pascal, temos a seguinte situao quando vamos
compilar um programa:
Cdigo fonte em C

Cdigo binrio para


um determinado SO

O cdigo fonte compilado para cdigo de mquina


especifico de uma plataforma e sistema operacional.
Esse cdigo executvel (binrio) resultante ser
executado pelo sistema operacional e, por esse
motivo, ele deve saber conversar com o SO.

Java
Cdigo binrio para
Windows

Aplicao

Sistema
Operacional

Windows

Cdigo binrio para


Linux

Linux

Java
Cdigo executvel para cada sistema operacional
Compilar uma vez para Windows, outra para o Linux,
e assim por diante
A aplicao utiliza bibliotecas do sistema
operacional, por exemplo, a de interface grfica para
desenhar as telas.

A biblioteca de interface grfica do Windows bem


diferente das do Linux.

Aplicao Multiplataforma
Como criar uma aplicao que rode de forma parecida
nos dois sistemas operacionais?
Precisamos reescrever um mesmo pedao da
aplicao para diferentes sistemas operacionais.
O Java utiliza do conceito de mquina virtual, onde
existe, entre o sistema operacional e a aplicao,
uma camada extra responsvel por traduzir

Java
Bytecode java

Bytecode java

Mquina Virtual
Java para Linux

Mquina Virtual
Java para Windows

Linux

Windows

Aplicao Multiplataforma
Dessa forma, a maneira com a qual voc abre uma
janela no Linux ou no Windows a mesma: voc
ganha independncia de sistema operacional.
Independente de plataforma em geral: no preciso
se preocupar em qual sistema operacional sua
aplicao est rodando, nem em que tipo de
mquina, configuraes, etc.
A aplicao sempre conversa apenas com a Java
Virtual Machine (JVM).

Write once, run anywhere


Esse um slogan que usado em Java, j que voc no
precisa reescrever partes da sua aplicao toda vez que
quiser mudar de sistema operacional

Keep it Simple !!!!!


Mantenha a coisa simples !!!!
No crie programas bizarros !!!!

O bom simples, claro e conciso!!!!


Reaproveite cdigo, no invente a roda !!!

JVM? JRE? JDK? O que devo baixar?


O que gostaramos de baixar no site da
Oracle/Sun?
JVM apenas a virtual machine, esse download no
existe, ela sempre vem acompanhada.
JRE Java Runtime Environment, ambiente de
execuo Java, formada pela JVM e bibliotecas, tudo
que voce precisa para executar uma aplicao Java.
JDK Java Developmento Kit, ns faremos o
download do JDK do Java SE (Standard Edition). Ele
formado pela JRE somado a ferramentas, como o
compilador.

FASES DO DESENVOLVIMENTO

FASES DO DESENVOLVIMENTO

Compilando o primeiro programa


Vamos para o nosso primeiro cdigo!

O que pode dar errado?


Muitos erros podem ocorrer no momento que voc
rodar seu primeiro cdigo. Vamos ver alguns deles:

Esse o erro de compilao mais comum: aquele onde


um ponto e vrgula fora esquecido.
Outros erros de compilao podem ocorrer se voc
escreveu palavras chaves (as que colocamos em
negrito) em maisculas, esqueceu de abrir e fechar {},
etc.

Programa ADIO
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int numero1;
int numero2;
int soma;
System.out.println("Entre com o primeiro numero");
numero1 = input.nextInt();
System.out.println("Entre com o segundo numero");
numero2 = input.nextInt();
soma = numero1+numero2;
System.out.printf("A nota final e %d \n",soma);

Referncia: Adicao.

Nossa Primeira Classe


public class Mensagens {
public void mensagemInicial()
{
System.out.println("Bem vindo ao primeiro sistema com O.O ");
}
public void mensagemFinal()
{
System.out.println("Adeus, volte sempre ao sistema");
}
}

Nossa Primeira Classe


public class Mensagens {
public void mensagemInicial()
{
System.out.println("Bem vindo ao primeiro sistema com O.O ");
}
public void mensagemFinal()
{
System.out.println("Adeus, volte sempre ao sistema");
}
}

Testando nossa Primeira Classe


*/
public class GerenciamentoMensagens {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Mensagens myMsg = new Mensagens();
myMsg.mensagemInicial();
myMsg.mensagemInicial();
// TODO code application logic here
}
}

Testando nossa Primeira Classe


*/
public class GerenciamentoMensagens {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Mensagens myMsg = new Mensagens();
myMsg.mensagemInicial();
myMsg.mensagemInicial();
// TODO code application logic here
}
}
Referncia: GerenciamentoMensagens

Getter and Setter


Mtodo Set Serve para atribuir valores para as variveis de uma
classe.
Mtodo Get Serve para obter valores de uma varivel.
Exemplo:
public class TV {
private int tamanho;
private int canal;
private int volume;
private boolean ligada;
public int getTamanho() {
return tamanho;
}
public void setTamanho(int tamanho) {
this.tamanho = tamanho;
}
} // referncia: Televisao

Case Modelar pessoas


- Modelar a classe para definir pessoas.
Cada um deve definir como quer modelar uma pessoa.
-Define quais mtodos sua classe pessoa ter.
- Crie trs pessoas(objetos) para testar sua classe.

Referncia: Projeto Pessoa

Exerccios:
1. Faa o diagrama de classe da nossa primeira classe
desenvolvida na sala de aula.
2. Qual a diferena entre modificadores de acesso
public e private ?
3. Para que serve get e set ?
4. Modele uma classe conta bancria.
No mnimo ela dever ter mtodos de creditar e debitar
novos valores da conta.

Desafio 1
-

Crie uma classe chamada empregado que inclua


trs variveis de instncia(nome, sobrenome,
salrio).
Criar mtodos get and set para cada varivel.
No mtodo set para salrio, o salrio ter que ser
positivo, caso contrrio emitir uma mensagem erro
Crie uma classe para testar.
Ela dever instanciar trs objetos e inserir dados
para eles.

Desafio 2
-

Crie uma classe chamada faturas para uma loja de


informtica, para que ele possa representar itens
vendidos na loja. Uma fatura deve incluir quatro
partes da informao como varivel de instncia.
So elas:
- Numero(tipo String)
- Descrio(tipo String)
- quantidade comprada de um item(tipo int)
- o preo por item(double).
Fornea um mtodo set e get para cada varivel de
instncia.

Desafio 2(cont)
-

Fornea um mtodo getValorFatura que calcula o


valor final da fatura(isto multiplica a quantidade
de cada item comprado).
Escreva um aplicativo de teste chamado
testeFatura.

Para fortes !!!!


-

Exerccios 3.16(Calculadora de frequncia cardiaca)

3.17(Registros de sade)

Livro do Deitel.

31

Se atualize !!!!!

Revise no capitulo 2 do livro do Deitel:


- Operadores Aritmticos
- Precedncias
- Estrutura de Deciso
Revise o capitulo 3 do livro do Deitel.
Classes e objetos.
Se familiarize com o link abaixo.
Documentao de todas as classes nativas do Java
http://docs.oracle.com/javase/8/docs/api/

Download

NetBeans:
https://netbeans.org/downloads/
Selecione a opo: Tudo
JDK:
http://www.oracle.com/technetwork/java/javase/downloads
/jdk8-downloads-2133151.html
Para windows:
jdk-8u25-windows-x64-demos.zip
Tutorial para configurao de variveis de ambiente:
http://www.devmedia.com.br/preparacao-do-ambientepara-desenvolvimento-em-java/25188