Buscar

aula 5 prog 1

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 23 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 23 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 23 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Linguagem de Programação – Aula 5
Análise e Desenvolvimento de Sistemas/Parangaba
Ronnison Reges Vidal
Ceará, 10 de Março de 2017
DROPBOX
HTTPS://GOO.GL/EQRAXS
OBJETIVOS
O aluno deverá ser capaz de:
Compreender o conceito de sobrecarga(overload)
Conhecer alguns métodos (static) e constante da classe Math
Compreender um dos usos do this
Aplicar os conceitos acima na criação e teste de programas em Java.
MÉTODOS ESTÁTICOS
Em alguns casos precisamos implementar alguns métodos que independem dos objetos de uma classe. Nesse caso, chamamos esses métodos de métodos da classe. Tais métodos são implementados usando a palavra static.
Todos os métodos da classe Math são estáticos
MÉTODOS ESTÁTICOS
A principal diferença entre os métodos estáticos e os métodos de instância está na sua chamada.
Exemplos:
double x = 12.2;
double y = Math.sqrt(x); // calcula a raiz quadrada de x
long z = Math.round(y); // arredonda o valor de y
Constante estática PI: Math.PI
MÉTODOS ESTÁTICOS
Métodos/atributos de classe
Métodos/atributos de objetos
Constante estática PI : Math.PI
Métodos da classe Math : abs, acos, asin, atan, ceil, cos, exp, floor, log, max, min, pow, random, round, sin, tan, sqrt. Destaque para abs, max, min, pow, round, sqrt.
Métodos da classe Math : pow e sqrt.
Regra para chamar um método estático :
Classe.Método
O operador ponto é usado.
MÉTODOS ESTÁTICOS
Atributos estáticos
No caso de atributos estáticos só existe UMA cópia desse atributo na memória que é COMPARTILHADA por todos os objetos da classe.
Assim como os métodos estáticos, os atributos estáticos são chamados atributos da classe e, por isso, podem ser acessados diretamente a partir da classe.
MÉTODOS ESTÁTICOS
Diferenças importantes
Métodos de instância :
1) Só podem ser chamados a partir de objetos da classe.
2) Podem acessar (ler ou alterar) atributos da instância ou atributos da classe (estáticos).
Métodos estáticos :
1) São chamados a partir da própria classe.
2) Só podem acessar (ler ou alterar) atributos da classe (estáticos).
SOBRECARGA OU OVERLOAD
De construtores : construtores na mesma classe e que se diferenciam pela passagem de parâmetros
De métodos : dois ou mais métodos na mesma classe, com mesmo nome e que se diferenciam pela lista de parâmetros. O Java não confunde os dois métodos porque eles têm assinaturas diferentes !
Assinatura diferente significa que os métodos têm:
quantidades de parâmetros diferentes,
tipos dos parâmetros diferentes ou
ordem dos parâmetros diferente
SOBRECARGA OU OVERLOAD
this
This referencia o objeto que está sendo construído ou está usando o método. Assim, quando no construtor queremos diferenciar o atributo do parâmetro e ambos possuem o mesmo nome, usamos this.
Regra : this.atributo = parâmetro_de_mesmo_nome_que_atributo
O PARÂMETRO É UM OBJETO
Note que o parâmetro passado para um construtor ou método pode ser objeto de uma classe. Para manipulá-lo pode ser possível usar a referência this.
Construtor cópia
Imagine o seguinte trecho de código:
int a, b;
a = 10;
b = a; 		//b é uma cópia de a
O PARÂMETRO É UM OBJETO
Com objetos, essa situação é diferente:
Retangulo r1, r2;
r1 = new Retangulo(10, 20, 100, 200);
r2 = r1;
NOTE :
1) r2 vai referenciar o mesmo objeto que r1.
2) Um objeto só é criado quando usamos o operador new com o construtor da classe.
O PARÂMETRO É UM OBJETO
Quando precisamos clonar um objeto, ou seja, criar um novo objeto idêntico a um outro que já existe, precisamos implementar um construtor cópia.
Como o nome já diz, um construtor cópia tem a finalidade de criar um objeto como cópia de outro objeto.
Para definir um construtor cópia devemos criar um construtor que recebe como parâmetro uma instância da própria classe.
Dessa forma podemos copiar todos os atributos de uma instância para a nova instância.
O PARÂMETRO É UM OBJETO
Exemplo - Considere que uma classe Circulo também possui um construtor cópia.
public class Retangulo{
	private int largura;
	private int altura;
	private int x;
	private int y;
public Retangulo(Retangulo outro) {
	largura = outro.getLargura();
	altura = outro.getAltura();
	x = outro.getX();
	y = outro.getY();
	}
}
public class Circulo {
	private int x;
	private int y;
	private int raio;
public Circulo(Circulo outro) {
	x = outro.getX();
	y = outro.getY();
	raio = outro.getRaio();
	}
}
O PARÂMETRO É UM OBJETO
Exemplo - Para usar o construtor cópia, basta passar o objeto que será copiado:
public class EditorGrafico {
	public static void main(String[] args) {
		Retangulo r1, r2;
		Circulo c1, c2;
		r1 = new Retangulo(10, 20, 30, 40);
		r2 = new Retangulo(r1);
		c1 = new Circulo(5, 15, 50);
		c2 = new Circulo(c1);
	}
}
PACOTE : JAVAX.SWING
Classe JOptionPane para entrada e saída de dados ?
Métodos :
1) showMessageDialog
Exemplo 1 : JOptionPane.showMessageDialog(null, "Esta é uma mensagem !");
Outra possibilidade é
JOptionPane.showMessageDialog(null, "Texto da Mensagem",
"Titulo da janela criada", TIPOICONE);
onde TIPOICONE pode ser:
JOptionPane.ERROR_MESSAGE
JOptionPane.INFORMATION_MESSAGE
JOptionPane.WARNING_MESSAGE
JOptionPane.QUESTION_MESSAGE
JOptionPane.PLAIN_MESSAGE
PACOTE : JAVAX.SWING
Exemplo 2 :
JOptionPane.showMessageDialog(null, "Mensagem ", "Título da janela",
JoptionPane.WARNING_MESSAGE);
2) showInputDialog
Exemplo :
String numLido = JOptionPane.showInputDialog( "Informe:" );
Note : Os métodos showInputDialog e showMessageDialog são static.
Como chamar um método estático ... Regra : classe.método
PACOTE : JAVAX.SWING
Exemplo : Fonte : Deitel & Deitel
import javax.swing.JOptionPane;
public class Soma {
public static void main( String args[] )
{
String numero1, numero2;
int n1, n2, resultado;
numero1 = JOptionPane.showInputDialog ("Informe um inteiro:");
numero2 = JOptionPane.showInputDialog ("Informe outro inteiro");
// convertendo
n1 = Integer.parseInt( numero1 ); //Converte para inteiro com parseInt
n2 = Integer.parseInt( numero2 );
// somando
resultado = n1 + n2;
JOptionPane.showMessageDialog(null, "A soma é "+ resultado, "Resultado:",
JOptionPane.PLAIN_MESSAGE);
}
}
PACOTE : JAVAX.SWING
Exemplo : Fonte : Deitel & Deitel
>> Integer.parseInt() : converte, quando possível, de string para int. Se não for possível, ocorrerá uma exceção (NumberFormatException).
>> Double.parseDouble(): converte, quando possível, de string para double. Se não for possível, ocorrerá uma exceção (NumberFormatException
>> Float.parseFloat() : converte, quando possível, de string para float. Se não for possível, ocorrerá uma exceção (NumberFormatException).
APLICAÇÃO: ARTICULAÇÃO TEORIA E PRÁTICA
Exercícios
Crie um projeto com duas classes : classe Circulo e classe TestaCirculo (com a main), sabendo que todo círculo tem um raio e um centro no ponto (x,y). Neste projeto …
crie dois círculos : um com valores constantes definidos por você e outro com dados obtidos via console.
implemente todos os sets e todos os gets
use sobrecarga de construtores e crie cada círculo (item a) com um construtor.
APLICAÇÃO: ARTICULAÇÃO TEORIA E PRÁTICA
Exercícios - Continuação
Crie um projeto com duas classes : classe Circulo e classe TestaCirculo (com a main), sabendo que todo círculo tem um raio e um centro no ponto (x,y). Neste projeto …
calcule a distância de um círculo a outro. Para isso, implemente um método float distancia(Circulo outroCirculo) que calcula a distância de um círculo a outro.
calcule a área de cada círculo. Para isso, implemente um método de nome calcularArea.
calcule o perímetro de cada círculo. Para isso, implemente um método de nome calcularPerimetro.
imprima todos os dados de cada círculo. Para isso, implemente um método de nome imprimirDados.
APLICAÇÃO: ARTICULAÇÃO TEORIA E PRÁTICA
Exercícios - Continuação
Faça um programa em Java para calcular e imprimir o volume de uma esfera de raio r. Faça entrada de dados via classe JOptionPane.
Obrigado!

Outros materiais