ao c~ Apresenta Java { conceitosasicos B Java {...

35

Transcript of ao c~ Apresenta Java { conceitosasicos B Java {...

Page 1: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Java { Conceitos B�asicos

I ClassesI o que s~aoI constitui�c~aoI heran�ca

I M�etodosI tipos de m�etodosI sobreposi�c~ao e sobrecarga

I ObjectosI o que s~aoI cria�c~aoI cadeias de caracteresI vectores

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 2: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Caracter��sticas do Java

I linguagem orientada a objectosI abstrac�c~aoI heran�caI modularidadeI encapsulamentoI polimor�smo

I permite reutiliza�c~ao de software

I independente da plataforma

I facilidades gr�a�cas independentes do dispositivo

I �e do dom��nio p�ublico

I facilidades para aplica�c~oes na Web

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 3: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Caracter��sticas menos positivas do Java

I execu�c~ao lentaI mecanismos de E/S [razoavelmente] complexos

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 4: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Elementos do Java

I linguagem de programa�c~ao JavaI m�aquina virtual Java (Java Virtual Machine { JVM)

m�aquina virtual executa um c�odigo chamado bytecodeI Java Application Programing Interface (Java API). De�ne as

classes padr~ao dispon��veis na linguagem

um programa em Java corre como application ou applet

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 5: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Ambiente Java

(do livro \Java How to Program" - H. Deitel & P. Deitel)Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 6: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Classes em Java

De�nem tipos abstractos de dados. Organizadas hierarquicamente. Os seus

membros podem ser:I campos de dados (guardam valores de atributos)

I vari�aveis do tipo primitivoI referencias (\apontadores" para objectos)

I m�etodos (implementam comportamentos)I construtoresI atribui�c~ao de valores (set methods)I inspec�c~ao de valores (get methods)I predicadosI m�etodos que implementam comportamentosI �nalizador

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 7: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Tipos Primitivos

I Tipos primitivos n~ao originam objectos (e�ciencia)I Vari�aveis autom�aticasTipo Tamanho M��nimo M�aximo TipoPrimitivo Derivadoboolean 1 bit { { Booleanchar 16 bit Unicode 0 Unicode 216-1 Characterbyte 8 bit -128 127 Byteshort 16 bit -215 215 -1 Shortint 32 bit -231 231 -1 Integerlong 64 bit -263 263 -1 Long oat 32 bit -3.4E+38 3.4E+38 Floatdouble 64 bit -1.8E+308 1.8E+308 Double

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 8: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Programar em Java

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 9: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Operador \."

Separa os elementos no caminho at�e ao membro a que queremosaceder.exemplo:I classe Pessoa: campo de dados contador; m�etodo quantasSao()I objecto referenciado pela vari�avel pessoa: campo de dados idade; m�etodo

mostraIdade()acesso ao campo de dados da classe ) Pessoa.contadoracesso ao campo de dados do objecto ) pessoa.idadeEvoca�c~ao do m�etodo da classe ) Pessoa.quantasSao( .. )Evoca�c~ao do m�etodo do objecto ) pessoa.mostraIdade( .. )

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 10: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Classes em Java{ exemplo {

/* Esta classe tem dois campos de dados e dois m�etodose �e uma subclasse da classe Object */

public class Pessoa extends Objectf/* Dados */

int idade; // vari�avel do tipo primitivoString nome; // referencia

/* M�etodos */public Pessoa(String nomePessoa, int idadePessoa)f

idade = idadePessoa;nome = nomePessoa;

gpublic int idadePessoa()f

return idade;g

g

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 11: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Classes { heran�ca simples{ exemplo {

/* A classe Aluno �e subclasse de Pessoa. Herda os campos de dados e os m�etodos */

public class Aluno extends Pessoaf/* Dados */

int notaCPA;

/* M�etodos */public Aluno(String nome, int idade, int nota)f

super(nome, idade);notaCPA = nota;

gpublic void mostraDados()f

System.out.println(\idade = \+idade+" nota = \+notaCPA);g

g

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 12: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

M�etodos{ classi�ca�c~ao {

I Construtores: inicializa�c~oes aquando da cria�c~ao de umobjecto

I Atribui�c~ao de valores: alterar os campos de dados quandoh�a encapsulamento

I Inspec�c~ao de valores: inspeccionar os campos de dadosquando h�a encapsulamento

I Predicados: testes boleanos aos campos de dadosI M�etodos que implementam comportamentos:

implementa�c~ao de algoritmos e qualquer outro prop�ositoI �nalizador: evocado quando um objecto �e removido da

mem�oria. Usado para libertar recursos espec���cos do objectoa remover

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 13: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

M�etodos{ exemplo {

public class Pessoafint idade;

/* Construtor */

public Pessoa(int idadePessoa)fidade = idadePessoa;

g/* Atribuicao de valores */

public void atribuiIdade(int idadePessoa)fidade = idadePessoa;

g/* Metodo de inspeccao */

public int idadePessoa()freturn idade;

g

/* Predicado */public boolean eVelho()f

return idade >= 80;g

/* Outros propositos */

public int calculaSalario()f...return salario;

g/* Finalizador */

protected void �nalize()fSystem.out.println(\Objecto termina

a sua existencia");gg

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 14: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

M�etodos{ sobrecarga {

M�etodos com o mesmo nome mas com n�umero de parametros diferentes oumesmo n�umero de parametros mas de tipos diferentes.public class Complexof

double parteReal, parteImaginaria;double modulo, fase;public Complexo()f

parteReal = parteImaginaria = 0.0;modulo = fase = 0.0;

gpublic Complexo(double real)f

modulo = parteReal = real;fase = real >= 0.0 ? 0.0 : 180.0;parteImaginaria = 0.0;

gpublic Complexo(double real, double imag)f

parteReal = real;parteImaginaria = imag;modulo = Math.sqrt(real * real + imag * imag);fase = Math.atan(imag / real);

gg

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 15: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

M�etodos{ sobreposi�c~ao {

Uma subclasse cont�em um m�etodo com o mesmo nome, rede�nindo essecomportamento da classe (codi�car uma excep�c~ao, por exemplo).

public class Avef

public boolean voa()freturn true;

gg

public class Avestruz extends Avef

public boolean voa()freturn false;

gg

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 16: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Regras de nomea�c~ao

I Vari�aveis locais e parametros: nome curtos em min�usculas(ex: int numero, idade;)

I Classes e Interfaces: nomes ou frases nominais, 1a letra de cada nome emmai�uscula. As restantes em min�usculas(ex: class PessoaAdulta extends ...)

I Campos de dados (excepto �nal): nomes ou frases nominais em que a 1a letrade cada palavra �e mai�uscula(ex:class Pessoa f

int limiteDeIdade;...

)I constants em interfaces e vari�aveis �nal: letras mai�usculas com palavras

separadas por \ " (ex: �nal int MAXIMO VALOR;)I M�etodos: verbos ou frases verbais em que a 1a letra de cada palavra �e

mai�uscula (ex: int comparaDoisInteiros( ... )

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 17: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Sugest~oes para escrita de Programas

Generalidadesusar:I \programa�c~ao estruturada" (m�etodos pequenos)I campos de dados antes dos m�etodosI de�nir TODAS as vari�aveis antes do c�odigo do m�etodoI dar nomes intelig��veis �as vari�aveis

evitar:I usar o quali�cador public em dados (e m�etodos auxiliares) a

menos que absolutamente necess�arioI usar \vari�aveis globais" desnecessariamente

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 18: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Objectos

I Todos os objectos s~ao instancias de uma classeI S~ao criados \a pedido" usando a instru�c~ao new.

Algo semelhante �a gest~ao de mem�oria dinamica em C.I S~ao acedidos atrav�es de referencias (apontadores)I Como argumentos de m�etodos s~ao passados por referenciaI Espa�co libertado por garbage collection quando n~ao h�a nehuma referencia

para o objecto

declara�c~ao de referencias:Pessoa pessoaRef1, pessoaRef2;

cria�c~ao de dois objectos do tipo Pessoa:pessoaRef1 = new Pessoa();pessoaRef2 = new Pessoa();

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 19: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Instancia�c~ao

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 20: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Objectos (cont.)

Inicialmente tres objectos s~ao criados automaticamente:

I System.out ! associado ao ecr~a (\standard output")

I System.in ! associado ao teclado (\standard input")

I System.err ! associado ao ecr~a (\standard error")

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 21: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Auto-referencia (this)

I um m�etodo tem sempre umparametro impl��cito que �e oobjecto (ou classe) a que se vaiaplicar

I x.inc() pode ser visto comoinc(x) (nota�c~ao mais corrente)

I se se omitir o objecto assume-seque se trata do objecto corrente

I para referir explicitamente oobjecto corrente usa-se this

I uma escolha criteriosa doresultado das fun�c~oes podepermitir um estilo de escritaque use composi�c~ao de fun�c~oes

public class Contadorfprivate int i = 0;

Contador inc()fi++;return this;

gvoid print()f

System.out.println(\i = "+i);g

public static void main(String [] args)fContador x = new Contador();Contador y = new Contador();

x.inc().inc().inc().print();y.inc().print();

gg

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 22: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Referencias this e super

Para designar um membro m (atributo ou m�etodo) de um objecto o, anota�c~ao �e o.m

I na de�ni�c~ao dos m�etodos de uma classe, o objecto corrente est�anormalmente impl��cito (referem-se os membros sem pre�xo)

I se existir uma vari�avel x num m�etodo da classe com o mesmo nomede um atributo, este �ca escondido; para o aceder usa-se this.x

I this referencia o objecto corrente

I se existir um m�etodo local f() com o mesmo nome de um numasuperclasse, este �ca escondido; para o aceder usa-se super.f()

I super pode ser usado para fazer revoga�c~ao parcial de um m�etodo:fornecer nova de�ni�c~ao que chama m�etodo da superclasse

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 23: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Construtores e this

public class Florfprivate int i = 0;private String s = new String(null);

Flor(int x)fi = x;System.ot.println(\Construtor com int: i = \+i);gFlor(String ss)fs = ss;System.ot.println(\Construtor com String: s = \+ss);g

Flor(String s, int x)fthis(x);this.s = s;System.ot.println(\Dois args\);g

Flor()fthis(\cravo", 47);System.out.println(\Construtor por omissao\);gvoid print()f

System.out.println(\i = "+i+ \ s = \+s);

gpublic static void main(String args[])fFlor x = new Flor();x.print();gg/* RESULTADO:Construtor com int: i = 47Dois argsConstrutor por omissaoi=47 s = cravo */

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 24: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Cria�c~ao e Elimina�c~ao

I construtor por omiss~ao n~ao temargumentosI s�o �e sintetizado se n~ao se

de�nir nenhum construtorI um construtor pode usar outro

chamando-o com a sintaxe:this(args)I tem que ser a 1a instru�c~aoI s�o se pode chamar outro

construtor uma vezI n~ao se pode usar esta sintaxe

num m�etodo n~ao construtorI this para referenciar o objecto

corrente num construtor, (ex.desambiguar nome de atributoigual a parametro (this.s = s))

I n~ao existe destrui�c~aoexpl��cita de objectosI quando deixam de ser

precisos (n~ao h�areferencias para eles)s~ao eliminados pelogarbage collector

I se n~ao se de�ne o construtorI construtor por omis~ao

inicializa tiposprimitivos a zero ereferencias a null

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 25: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Cadeias de caracteres (String)

I imut�aveis depois de criadas

I concatena�c~ao: + constroi String se um dos elementos o for

I == e != testam identidade de objectos n~ao a igualdade entre asstrings

I alguns m�etodos:I esquerdo.compareTo(direito) compara de acordo com ordem

lexicogr�a�caI cadeia.length() devolve o comprimentos da stringI cadeia.charAt(posicao) indexa a partir de 0I cadeia.substring(inicio, �m)

I toString() converte tipo primitivo em String (�e impl��cito em +)

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 26: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Cadeias de caracteres (String)| cria�c~ao |

Declara�c~ao de uma referencia (n~ao de um objecto) para String:

String cadeia;

Declara�c~ao de uma referencia e cria�c~ao de um objecto tipo String:

String cadeia = new String(\Mensagem");

no caso especial das strings o mesmo pode ser obtido com:

String cadeia = \Mensagem";

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 27: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Vectores

I Colec�c~ao de entidades do mesmo tipo

I Declara�c~ao:int [] vector1;int vector1[];

I Cria�c~ao:vector = new int[100];com inicializa�c~ao int vector[] = 2, 3, 4;

I Tamanho: vector.length

I Cria�c~ao dinamica

I Multi-dimensional: int [][] matriz = new int[10][10];

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 28: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Vectores| exemplo |

public class Vectorfint [] vector;

public Vector(int dimensao, int valor)fint i;vector = new int[dimensao];for(i = 0; i < vector.length; i++)

vector[i] = valor;gvoid mostraVector()f

int i;for(i = 0; i < vector.length; i ++)

System.out.print(vector[i]+\ ");g

g

public class TestaVectoresfpublic static void main(String [] args)f

Vector vector = new Vector(10, 2);

vector.mostraVector();g

g

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 29: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Vectores| outro exemplo |

public class Matrizfint [][] matriz;

public Matriz(int dim1, int dim2, int valor)fint i, j;matriz = new int[dim1][dim2];for(i = 0; i < matriz.length; i++)

for(j = 0; j < matriz[i].length; j++)matriz[i][j] = valor;

gvoid mostraMatriz()f

int i, j;System.out.println("nnnn matriz "+matriz.length+"x"+matriz[0].length);System.out.println("nn");for(i = 0; i < matriz.length; i ++)f

for(j = 0; j < matriz[i].length; j++)System.out.print(matriz[i][j]+" ");

System.out.println();g

g

public class TestaVectoresfpublic static void main(String [] args)f

Matriz vect = new Matriz(10, 3, 2);vect.mostraMatriz();

gg

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 30: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Vectores| ainda outro exemplo |

public class MatrizEsquisitafint matriz[][] = ff1, 2, 3, 4g, f5g, f6, 7gg;

void mostraMatriz()fint i, j;

for(i = 0; i < matriz.length; i ++)ffor(j = 0; j < matriz[i].length; j++)

System.out.print(matriz[i][j]+" ");System.out.println();

gg

public class TestaMatrizEsquisitafpublic static void main(String [] args)f

MatrizEsquisita matriz = new MatrizEsquisita();matriz.mostraMatriz();

gg

resultado:

1 2 3 456 7

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 31: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Mini-programa em Java

public class Pessoafint idade;String nome;public Pessoa(String nomePessoa,

int idadePessoa)fidade = idadePessoa;nome = nomePessoa;System.out.println("Construtor Pessoa");

gpublic int idadePessoa()f

return idade;g

g

public class Aluno extends Pessoafint notaCPA;public Aluno(String nome, int idade, int nota)f

super(nome, idade);notaCPA = nota;System.out.println("Construtor Aluno");

g

public void mostraDados()fSystem.out.println("idade = " + idade + " nota = " +

notaCPA);System.out.println("metodo idade =" + idadePessoa());

gg

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 32: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Mini-programa em Java (cont.)

public class TestaPessoaEAlunof

public static void main(String[] args)fAluno aluno = new Aluno("Antonio", 21, 15);aluno.mostraDados();

gg

Compilar:

comando> javac *.javacomando> java TestaPessoaEAluno

Resultado da execu�c~ao:

Construtor PessoaConstrutor Alunoidade = 21 nota = 15metodo idade =21

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 33: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Segundo Mini-programa em Java

public class Complexofdouble parteReal, parteImaginaria;double modulo, fase;public Complexo()f

parteReal = parteImaginaria = 0.0;modulo = fase = 0.0;

gpublic Complexo(double real)f

modulo = parteReal = real;fase = real >= 0.0 ? 0.0 : 180.0;parteImaginaria = 0.0;

gpublic Complexo(double real, double imag)f

parteReal = real;parteImaginaria = imag;modulo = Math.sqrt(real * real + imag * imag);fase = Math.atan(imag / real);

gpublic void mostraValores()f

System.out.print(\Re = \+parteReal);System.out.println(" Im = \+parteImaginaria);System.out.print(\Mod = \+modulo);System.out.println(" Fase = \+fase);

gg

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 34: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Segundo Mini-programa em Java (cont.)

public class TestaComplexof

public static void main(String[] args)fComplexo complexo1 = new Complexo(2, 2);Complexo complexo2 = new Complexo(4);complexo1.mostraValores();System.out.println("|||\);complexo2.mostraValores();

gg

Compilar:comando> javac *.javacomando> java TestaComplexo

Resultado da execu�c~ao:Re = 2.0 Im = 2.0Mod = 2.8 Fase = 0.785|||Re = 4.0 Im = 0.0Mod = 4.0 Fase = 0.0

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC

Page 35: ao c~ Apresenta Java { conceitosasicos B Java { ConceitosasicosBrcamacho/cadeiras/cpa/acetatos/... · 2006. 3. 6. · ao c~ Apresenta Java { conceitosasicos B Tipos Primitivos I Tipos

Apresenta�c~aoJava { conceitos B�asicos

Realizar um programa em Java

I Identi�car as entidades envolvidas no problemaI Cada entidade origina uma classeI Sempre que poss��vel usar classes da Java APII Codi�car cada classe

I conceber a estrutura da classedadosm�etodos

I ligar a classe na hierarquia de classesI Uma classe com um m�etodo public static void main()

onde o programa inicia a execu�c~aoI Guardar uma classe em cada �cheiro .javaI Compilar os �cheiros: javac *.javaI Executar o programa: java ClassePrincipal

Rui Camacho Complementos de Programa�c~ao e Algoritmos { LEIC