A linguagem java

380 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
380
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

A linguagem java

  1. 1. A Linguagem JAVAConstrutores BásicosComentários /* igual a C, comentários não são aninhados */ // comentário até o final da linha /** comentário “doc”. Pode ser usado para gerar documentação - a maioria das vezes é colocado antes de uma declaração */Tipos Básicosboolean um valor true ou falsebyte valor sinalizado de 8 bitsshort valor sinalizado de 16 bitschar caracter de 16 bits (unicode)int valor sinalizado de 32 bitsfloat ponto flutuante de 32 bits (IEEE754)double ponto flutuante de 64 bits (IEEE754)long valor sinalizado de 64 bitsArrays Sintaxe é muito parecida com a do C Arrays são objetos Alocados estaticamente ou com new Indexado com qualquer tipo inteiro (# long) Espaço de memória é liberado quando ele sai do escopo// exemplo de um array simples de inteirosint numbers[] = new int[10]; int[] numbers = new int[10];// um array inicializadoint numbers[4] = {1,2,5,7}; int matrix[2][3] = {{0,1},{0,1,2}};// um array bidimensional de inteirosint matrix[][] = new int[5][10]; int[][] matrix = new int[5][10];// método que retorna um array de inteirosint[] returnArray() { return new int[10];};Expressões Muito similares as do C Não tem o operador virgula para criar operadores compostos. A vírgula é usada para inicialização em loops. (4+5)*I (i>0) ee (i<4) i<<1 (i>0) ? true : false Page 1 of 8 Printed by pedrotim@programmer.net
  2. 2. for (i=0,j=0; i<10&&j<20; i++,j++){ /* corpo do loop */ }Controle de Fluxo Novamente muito similar ao Cif-then-else Declaração if-then-else - a expressão deve retornar um boolean. Zero não pode ser usado como false e não- zero com true. if (boolean) { /* … */ } else if (boolean) { /* … */ } else { /* … */ }while e do-while As estruturas while e do-while são idênticas ao C while (boolean) { /* … */ } do { /* … */ Page 2 of 8 Printed by pedrotim@programmer.net
  3. 3. } while (boolean);for A estrutura for é similar ao C, exceto que você pode declarar uma variável na seção de inicialização for (expressão; expressãoboleana; expressão) { /* … */ } for (int i=0; i<10; i++) { /* … */ }Em contraste ao C++ o escopo da declaração apenas cobre o corpo do loopswitch A estrutura switch é idêntica ao C switch (expression) { case constante1: /* … */ break; case constante2: /* … */ break; default: /* … */ break; } Page 3 of 8 Printed by pedrotim@programmer.net
  4. 4. break e continue Os comandos break e continue podem ser usados com um label opcional. Sem o label eles funcionam como no C inicio: // label for (int j=0; j<10; j++) { /* continue vem aqui */ for (i=0; i<20; i++) { if (i==15) { continue inicio; // vai p/ inicio } } }Classes Sintaxe para definir interfaces e classes que são templates para criação de novas instâncias de objetos. A sintaxe é diferente de C++ [public] interface nomeInterface [extends interface1, interface2, …] { /* lista de métodos e campos estáticos } modificadoresClasse class nomeClasse [extends superClasse] { /* lista de métodos */ Page 4 of 8 Printed by pedrotim@programmer.net
  5. 5. }Tipos de Classes - os modificadores de classe podem ser os seguintes: abstract : contêm métodos abstratos final: não pode ser usada para derivar uma nova classe public: pode ser usada por um código de outro pacoteControle de acesso as variáveis de instância na criação de novas classes é possível especificar o nível de acesso à variáveis de instância e a métodos definidos na classepublic pode ser usado por qualquer classe de qualquer lugarprotected pode ser usado apenas por subclasses da classeprivate pode ser usado apenas pela classe onde ele esta declarado<vazio> se nada for especificado, pode ser acessado pelas classes do pacote corrente Construtores e Métodos na definição de uma classe pode ser declarado um ou mais construtores que executam funções de inicialização quando se instancia um objeto da classe A Linguagem JAVA não suporta destrutores (como em C++) mas chama o método finalize() quando o objeto não é mais usado protected void finalize() { close(); } Gerência de memória String s; // nenhuma memória alocada ainda s = new String(“abc”); // memória é alocada s = “defg”; /* nova memória alocada (novo objeto) */ Sub-classes (herança) Sub-classe é um mecanismo usado para criar um novo objeto definido em termos de outro já existente import minhaClasse; public class minhaNovaClasse extends minhaClasse { public void Adicione_ao_f (int g) { Page 5 of 8 Printed by pedrotim@programmer.net
  6. 6. f = f + (g * 2); }}this e super<this é usado para referenciar membros da própria classesuper é usado para acessar métodos de classes superiores (métodos que foram sobrepostos)Classes Abstrataspublic abstract class Graphics { public abstract void drawLine(int x1, int y1, int x2, int y2); public abstract void drawOval(int x1, int y1, int width, int height); …….}Classes Abstratas métodos são definidos na classe Graphics, mas o código que implementa a funcionalidade do método é definido em qualquer outra classepublic class minhaClasse extends Graphics { public abstract void drawLine(int x1, int y1, int x2, int y2) { < o código vem aqui > }}Interface provê um meio de se ter abstração em um nível superiorMétodos em uma classe interface são public e abstractpublic interface AudioClip { // inicia apresentação Page 6 of 8 Printed by pedrotim@programmer.net
  7. 7. void start(); // para apresentaçãovoid stop();}Classes que usam a interface AudioClip utilizam a palavra implements para definir o código que implementa afuncionalidade dos métodos class minhaClasse implements AudioClip { void start() { <implementação>> } void stop() { <implementação> } } Métodos nativos A linguagem JAVA provê um método para chamar funções C ou C++ a partir do código JAVA. A palavra native é usada. public class Date { int now; public Date() { now = time(); } private native int time() { Page 7 of 8 Printed by pedrotim@programmer.net
  8. 8. System.loadLibrary (“time”); } } Pacotes Pacote (package) é uma forma de se agrupar classes e interfaces de forma única os nomes dos pacotes são palavras separadas por pontos (.) e são armazenados em diretórios que “casam” com as palavras package java.applet diz para o compilador colocar a classe que esta sendo criada no diretório java/applet Pacotes de classes são carregados com a palavra import import java.Date; import java.awt.*; import minhaClasse;~/* Copyright F. P. Marin ( April 07 13:12:53 1997 ) E-mail: felix@bloch.ciens.ucv.ve Permission to use, copy, modifyand distribute this software and its documentation for NON-COMERCIAL purposes and without fee is hereby grantedprovided that this copyright notice appears in all copies. F. P. Marin makes no representations or warranties about thesuitability of the software, either express or implied, including but no limited to the implied warranties ofmerchantability, fitness for a particular purpose, or non-infringement. F. P. Marin shall not be liable for any damagesuffered by license as a result of using, modifying or distributing this software or its derivatives. HTML code is */import java.awt.*; public class Bubble extends java.applet.Applet implements Runnable { Graphics detras; int delay; intdx,h[],height,height1,nelem,nelem1,width,width1; Image imagen;/* Copyright F. P. Marin ( August 21 19:38:19 1997 ) E-mail: felix@bloch.ciens.ucv.ve Permission to use, copy, modifyand distribute this software and its documentation for NON-COMERCIAL purposes and without fee is hereby grantedprovided that this copyright notice appears in all copies. F. P. Marin makes no representations or warranties about thesuitability of the software, either express or implied, including but no limited to the implied warranties ofmerchantability, fitness for a particular purpose, or non-infringement. F. P. Marin shall not be liable for any damagesuffered by license as a result of using, modifying or distributing this software or its derivatives. HTML code is */import java.awt.*; public class StraightInsertion extends java.applet.Applet implements Runnable { Graphics detras; intdelay; int dx,h[],height,height1,nelem,nelem1,width,width1; Image imagen; Thread bars=null; public void init() { Strings=getParameter("nelem"); nelem=( s!=null ) ? Integer.parseInt(s):20; s=getParameter("delay"); delay=( s!=null ) ?Integer.parseInt(s):42; nelem1=nelem - 1; width=size().width; width1=width - 1; height=size().height; height1=height -1; dx=width/nelem; disorder(); imagen=createImage(size().width,size().height); detras=imagen.getGraphics(); } publicvoid disorder() { int xi,xf; h=new int[nelem]; xi=height/10; xf=height - xi; for ( int i=0 ; i=0 ) && ( h[j]insertvalue ) ; --j) { h[j + 1]=h[j]; repaint(); try { Thread.sleep(delay); } catch (InterruptedException e) {} } h[j + 1]=insertvalue;repaint(); try { Thread.sleep(delay); } catch (InterruptedException e) {} } bars=null; } public void update(Graphics g) {paint(g); } public void paint(Graphics g) { int i,x; detras.setColor(Color.cyan);detras.fillRect(0,0,size().width,size().height); x=0; for ( i=0 ; i Page 8 of 8 Printed by pedrotim@programmer.net

×