48
Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida [email protected] www3.ifrn.edu.br/~andrealmeida Aula IV Escrevendo Programas em Java

Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida [email protected]

  • Upload
    vankien

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

Prof. André Gustavo Duarte de Almeida [email protected]

www3.ifrn.edu.br/~andrealmeida

Aula IV – Escrevendo Programas em Java

Page 2: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Roteiro

• Declarando uma classe

• Declarando variáveis

• Declarando métodos

• Comandos Básicos

• Programa Completo em Java

Page 3: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Declarando uma classe

<modificador> <espaço_em_branco>class

<espaço_em_branco><NomedaClasse> {

//Declaração de Atributos

//Declaração de Métodos

} <modificador> deve ser substituído por public ou

deixando em branco

<espaco_em_branco> deve ser substituído por

pelo menos um espaço em branco

<NomeDaClasse> deve ser substituído por uma

palavra que necessariamente deve começar com

letra e a primeira letra deve ser maiúscula. Caso

tenha mais de uma palavra no nome da classe, a

primeira letra de cada palavra deve ser maiúscula

Page 4: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Declarando uma classe

• Exemplos

public class ImpressoraLaser {

}

class Aluno {

}

public class aluno {

}

public class Impressora Laser

{

}

Correto!!! Incorreto!!!

Page 5: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Declarando variáveis

• Assim como em algoritmos, todos programa precisa de variáveis, que são espaços de memória para armazenar informações

<tipo_da_variavel><espaço_em_branco><nome_da_variave1>,<no

me_da_variavel2>,...;

<tipo_da_variavel> Deve ser substituído pelo tipo válido da

linguagem Java, que pode ser os tipos pré-definidos como

também uma classe criada pelo programador

<nome_da_variavel> Deve ser substituído pelo nome da

variável, que deve começar com letra minúscula ou com _. Evitar

começar nome de variáveis com letras maiúsculas. Não é

possível começar com números. Não deve conter espaços em

brancos. Caso tenha mais de uma palavra, colocar _ ou a

primeira letra da palavra com maiúscula

Page 6: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Declarando Variáveis

• Exemplos

int x,y,z;

String nomeCompleto;

Aluno a1;

double delta,x1,x2;

String primeiro_nome,sobreNome;

String nome completo;

int 1Variavel;

Aluno andre

Correto!!! Incorreto!!!

Page 7: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Declarando Variáveis

• Tipos Básicos

Tipo Capacidade Valores

int Número inteiro de

32 bits

boolean Indica verdadeiro

ou falso

true or false

double Número real de

64 bits

String Cadeia de

caracteres com

tamanho máximo

de 255 caracteres

float Número real de

32 bits

O tipo String é

uma classe

enquanto os

demais são tipos

primitivos

Page 8: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Declarando Variáveis

• As classes que definimos, também são definidas como tipos

• A partir do momento da definição da classe, é possível utilizar a mesma como tipo de dados, para criação dos objetos

Page 9: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Vamos considerar um contexto em que queremos descrever um Carro

• Citem 4 atributos de um carro

• Utilizando o BlueJ, criem a classe Carro com seus respectivos atributos

• Lembre-se de utilizar as boas práticas vistas até agora

Page 10: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Declarando Métodos

<modificador> <espaço_em_branco> <tipo_de_retorno>

<espaço_em_branco> <nome_do_metodo>(<declarar

parâmetros>){

//Comandos

}

<modificador> dever ser substituído por: public, private, protected ou

deixar em branco. Por enquanto deixaremos sempre em branco

<tipo_de_retorno> deve ser substituído por um tipo válido do Java. Senão

tiver retorno usar a palavra reservada void

<nome_do_metodo> deve ser substituído pelo nome do método, que

deve começar com letra minúscula. Se tiver mais de uma palavra, separar

por _ ou então usar a primeira letra maiúscula, a partir da segunda palavra

<declara parâmetros>: Utilizar a mesma regra da declaração de variáveis,

sem a necessidade de colocar ;(ponto-e-vírgula)

Page 11: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Declarando Métodos public String getNome(){

return nome;

}

public void setNome(String

_nome){

nome=_nome;

}

int somar(int x,int y){

int z;

z=x+y;

return z;

}

void set nome(String x){

nome=x;

}

int multiplicar(int x ,int y

String k){

return x*y;

}

Correto!!! Incorreto!!!

Page 12: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Considerando a classe Carro que começamos a escrever, vamos escrever os métodos do tipo get/set

• Pensem agora em dois comportamentos para um carro

• Vamos tentar escrever os métodos em Java para esses comportamentos?!

Page 13: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos

• Escrever uma mensagem no console(tela)

• System.out.println(<mensagem>);

• <mensagem>: deve ser substituído para uma variável / método do tipo String, ou qualquer tipo primitivo(int, double, float) etc....

• Podemos usar o operador “+” para concatenar mensagens, mesclando valores.

Page 14: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos

• Escrever mensagem na tela

• Exemplos //Mensagem Simples

System.out.println("Olá Mundo");

//Exibindo uma mensagem e concatenando com uma

operação

System.out.println("A 2+3 é igual a "+(2+3));

//Realizando cálculos e exibindo o resultado

double x,y,z;

x=4.5;

y=2.35;

z=x/y;

System.out.println("O resultado de x/y é "+z);

//Utilizando uma variável do tipo String

String s;

s="Esta é uma cadeia de caracteres";

System.out.println("Mensagem"+s);

Page 15: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Operadores Aritméticos Operação Operador em

Java

Exemplos

Adição + 2+3

X+4

Subtração - 2-4

x-y

Divisão / 2/5

x/y

Multiplicação * 2.4*3

2*3

X*Y

Resto % 5%3

x%3

Atribuição = X=5

Page 16: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Operadores Aritméticos

• Precisamos atentar que a operação de resto(%) só funciona com número inteiros

• Divisão de números inteiros irá produzir um número inteiros

• Em Java o tipo mais amplo tem preponderância sobre um tipo inferior

• Se multiplicarmos um número real por um número inteiro, o resultado será um número real

double n;

n=4.5;

int numero=z*2;

Erro, pois um tipo int não

suporta um double

Page 17: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Operadores Aritméticos

• Precedência de Operadores

• *, / e %, com mesma precedência, sendo a expressão avaliada da esquerda para direita

• + e -, com mesma precedência, sendo a expressão avaliada da esquerda para direita

• Parêntesis: Da mesma maneira que na matemática, os parêntesis determinam a ordem de avaliação de uma expressão

Page 18: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Operadores Aritméticos

• Exemplos

• Vamos avaliar as seguintes expressões

double a,b,c,d,e,f;

a=5;b=4.5;c=3.2;d=4;e=6;f=5.4;

double r1,r2;

r1=a*b-4*d+c/e-f;

r2=a*b-4*((d+c/e)-f);

System.out.println("Expresão 01: "+r1);

System.out.println("Expressão 02:"+ r2);

Usando algumas das classes passados, criem um comportamento

chamado executarOperacao, que não retorne nada e executa o código

acima. Em seguida criem um objeto dessa classe e testem o método

Page 19: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos

• Vamos retomar os 3 comportamentos da classe carro • Para o método transportar, considere que ele recebe como

informação a capacidade do carro e o número de pessoas. Imprima o número de vagas ocupadas e disponíveis

• Para o método acelerar, considere que ele recebe como parâmetro a velocidade. Imprima essa velocidade.

• Para o método buzinar, apenas imprima uma mensagem que represente o som da buzina

• Crie um método que imprima o modelo, marca e cor do carro

• Use o operador + para concatenar Strings e números quando for necessário.

Page 20: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Resolução do Exercício

Page 21: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Incremento e Decremento

• ++ e --

• Acrescente +1 e subtrai -1 de um número inteiro Uso Descrição

x++ Incrementa o valor de x depois da expressão

ser avaliada

++x Incrementa o valor de x antes da expressão

ser avaliada

x-- Decrementa o valor de x depois da expressão

ser avaliada

--x Decrementa o valor de x antes da expressão

ser avaliada

Page 22: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Incremento e Decremento

• Exemplos

int i,j,k,l;

i=10;j=3;

k=++i * 2*j--;

l=j*j*i;

System.out.println("O valor da 1 expressão é "+k);

System.out.println("O valor da 2 expressão é "+l);

Variável Valor

k

l

Page 23: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Operadores Relacionais

Operador Uso Descrição

> op1 > op2 op1 maior do que op2

< op1 < op2 op1 menor do que op2

>= op1 >= op2 op1 maior ou igual a op2

<= op1 <= op2 op1 menor ou igual a op2

== op1 == op2 op1 igual a op2

!= op1 != op2 op1 diferente de op2

Page 24: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Operadores Lógicos

• Operador &&(e lógico) e &(binário)

• x1 && x2 / x1 & x2

• x1 e x2 são expressões que produzem valores booleanos(true ou false)

• Tabela Verdade

X1 X2 Resultado

V V V

F V F

V F F

F F F

Page 25: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos

• Operador && e &

• A diferença entre esses operadores, reside no conceito de curto circuito

• Suponha a seguinte expressão

• (x>5) && (y-3>x)

• Se a primeira expressão for falsa, o próprio operador informa que não é necessário avaliar a expressão seguinte

• A mesma expressão, sendo que com o operador & todas as expressões seriam analisadas

Page 26: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Operadores Lógicos

• Operador ||(ou lógico) e |(ou binário)

• x1 || x2 / x1 | x2

• x1 e x2 são expressões que produzem valores booleanos(true ou false)

• Tabela Verdade

X1 X2 Resultado

V V V

F V V

V F V

F F F

Page 27: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos

• Operador || e |

• A diferença entre esses operadores, reside no conceito de curto circuito

• Suponha a seguinte expressão

• (x>5) || (y-3>x)

• Se a primeira expressão for verdadeira, o próprio operador informa que não é necessário avaliar a expressão seguinte

• A mesma expressão, sendo que com o operador & todas as expressões seriam analisadas

Page 28: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Operadores Lógicos

• Operador !(negação)

• !x1

• x1 é uma expressão que produz um valor booleano(true ou false)

• Tabela Verdade

X1 Resultado

V F

F V

Page 29: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Operadores Lógicos

• Ao construir expressões booleanas é fundamental o uso adequado dos parêntesis, de forma a termos expressões corretas

• Com relação a precedência dos operadores lógicos, a sequência é a seguinte

• !, & , |

• &&, ||

• Com utilização correta dos parêntesis, não é necessário uma preocupação maior com essa regra

Page 30: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Operadores Lógicos

int i,j,k,l;

i=10;j=3;

k=++i * 2*j--;

l=j*j*i;

System.out.println((i>k)||!(j*2<=100));

System.out.println((l<k) && (j>100 ||

(i<30)));

Page 31: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Operador Condicional

• exp1 ? exp2:exp3

• Exp1 deve ser é uma expressão booleana. Caso exp1 seja verdadeiro a exp2 é executada, caso contrário a exp3 é executada

• As expressões exp2 e exp3 podem ser de qualquer tipo, inclusive uma expressão com operador condicional

Page 32: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Operador Condicional

double n1,n2,media;

String resultado;

n1=5.0;n2=7.0;

media=(n1+n2)/2;

resultado=(media>=6.0)?"Aprovado":"Reprovado";

System.out.println("A média é :"+media);

System.out.println("A situação do aluno é "+resultado);

Page 33: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Operador Condicional

• Suponha que no exemplo anterior, o aluno que tiver nota entre 3 e 5.9 esteja em recuperação

• Queremos agora modificar o mesmo código de forma a definirmos o status do aluno como sendo: ”Aprovado”, “Recuperação” ou “Reprovado”

resultado=(media>=6.0)?"Aprovado":(media>=3)?

"Recuperação":"Reprovado";

Page 34: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Exercícios

• Crie uma classe chamada IMC

• Em seguida construa um método(comportamento) que recebe como parâmetro o peso e a altura de uma pessoa. Esse método deve calcular o índice de massa corpórea de uma pessoa.

• O método deve se limitar a imprimir esse índice

• A fórmula é a seguinte

IMC=

𝑝𝑒𝑠𝑜

𝑎𝑙𝑡𝑢𝑟𝑎∗𝑎𝑙𝑡𝑢𝑟𝑎

Page 35: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Exercícios

• Crie uma classe Pessoa com os seguintes atributos:

• Nome, idade, peso, altura

• Defina os métodos get/set para esses atributos

• Crie um método que imprima os valores desses atributos na tela

Page 36: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Exercícios • Desafio

• Crie um método chamado eObeso na classe pessoa, que retorna uma String, baseado no IMC, conforme virmos anteriormente

• Os resultados possíveis são os seguintes:

IMC Resultado

Abaixo de 18,5 “Você está abaixo do seu peso

ideal”

Entre 18,5 e 24,9 “Você está no peso ideal”

Entre 25 e 29,9 “Você está com sobrepeso”

Acima de 30 “Você está Obeso”

Page 37: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Operador new

• Até o momento criamos objetos através do BlueJ

• Agora veremos como declarar e criar um objeto a partir de uma classe por nós definida ou mesmo uma classe existente na linguagem Java

• Utilizaremos o operador new

• <Nome_da_Classe> <Nome_da_Variavel>;

• <Nome_da_Variavel>=new <Nome_da_Classe>();

• Ou faz tudo em uma linha só Carro c1=new Carro();

Aluno a;

a=new Aluno();

Page 38: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Usando métodos de um objeto

• <variavel><ponto><metodo>(<valores_dos_parametros>)

• <ponto>= Substituir por .

• (<valores_dos_parametros>) deve ser substituído por uma variável do mesmo tipo do parâmetro ou mesmo um valor fixo(constante)

• Já executamos isso através do blueJ

Page 39: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Usando métodos

Carro c1=new Carro();

c1.setAno(2011);

c1.setCor("Amarelo");

String marca;

marca="Volksvagem"

c1.setMarca(marca);

c1.setModelo("Punto");

c1.imprimir();

Cria um objeto da classe Carro

que será referenciado pela

variável c1

Invoca o método setAno do

objeto referenciado pela

variável c1, passando como

parâmetro o ano de

fabricação do carro

Page 40: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Operador new

• Como vimos, o operador new cria um novo objeto da memória, com base na classe que definimos

• Mais a frente veremos que existem outras maneiras de se criar um objeto usando new, inclusive definindo algumas informações no momento de criação do objeto

• Para cada vez que o operador new é acionado um novo objeto é criado, independente da variável ser a mesma

Page 41: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Operador new

• Vejamos o seguinte exemplo

Carro c1=new Carro();

c1.setAno(2011);

c1.setCor("Amarelo");

c1.imprimir();

c1=new Carro();

c1.imprimir();

Atributo valor

modelo null

marca Null

cor “Amarelo”

ano 2011

c1

Atributo valor

modelo null

marca null

cor null

ano 0

Page 42: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Escrevendo um programa em Java – Método Main

• Todo programa possui um ponto principal, ou seja, de onde ele começa

• Veremos que em Java, um programa possuirá diversas classes e dentre elas, precisamos definir onde o programa irá iniciar

• Equivale ao inicio de um programa em portugol

Page 43: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• O método main deve ser declarado da seguinte maneira:

public static void main(String[] args) {

//Comandos do bloco principal

}

Page 44: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

public class Principal {

public static void main(String[] args) {

Carro c1=new Carro();

c1.setAno(2011);

c1.setCor("Amarelo");

c1.setMarca("Volksvagem");

c1.setModelo("Punto");

c1.imprimir();

}

}

Fe

cha m

éto

do m

ain

Fecha a

cla

sse P

rincip

al

Page 45: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Lendo Entrada do Usuário

• Através do console

• Usaremos a classe Scanner, fornecida pela linguagem Java, que permite “escanear” a entrada de dados

• Existem outras forma de ler dados do usuário, porém no momento focaremos nossas atenções na classe Scanner

Page 46: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Entrada do Usuário

• Usando a classe Scanner import java.util.Scanner;

public class Principal {

public static void main(String[] args) {

Carro c1=new Carro();

Scanner sc=new Scanner(System.in);

System.out.println("Digite o

modelo do carro");

c1.setModelo(sc.nextLine());

c1.imprimir();

}

}

“importa a classe Scanner”

Cria um objeto da classe

Scanner para escanear a

entrada de dados do sistema

Solicita ao objeto da classe

Scanner que leia a próxima

linha

Page 47: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Lendo Entrada de dados

Método Descrição

nextLine() Lê uma linha de caracteres

nextInt() Lê um número inteiro

nextDouble() Lê um número real do tipo

double

nextBoolean() Lê um valor booleano

Page 48: Programação Orientada a Objetos - ifrn.edu.brandrealmeida/lib/exe/fetch.php?media=aulas:2011... · Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br

Programação Orientada a Objetos

• Comandos Básicos – Entrada de Dados

• Exercício

• Complete o exemplo anterior, agora solicitando do usuário que digite os demais atributos do carro