Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Programação Java - Apostilas - Sistemas, Notas de estudo de Análise de Sistemas de Controlo

Apostilas de Tecnologia em Análise e Desenvolvimento de Sistemas sobre o estudo de Programação Java.

Tipologia: Notas de estudo

2013

Compartilhado em 13/05/2013

Agua_de_coco
Agua_de_coco 🇧🇷

4.6

(326)

759 documentos

1 / 51

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Apostila de JAVA
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33

Pré-visualização parcial do texto

Baixe Programação Java - Apostilas - Sistemas e outras Notas de estudo em PDF para Análise de Sistemas de Controlo, somente na Docsity!

Apostila de JAVA

Sumário

    1. Introdução ______________________________________________
  • 1.1. O que é JAVA? _________________________________________
  • 1.2. O que é uma Applet ______________________________________
  • 1.3. O que é uma Aplicação____________________________________
  • 1.4. O que é o Appletviewer ___________________________________
  • 1.5. O que é Applet no WWW _________________________________
  • 1.6. Criando uma Aplicação ___________________________________
  • 1.7. Criando uma Applet _____________________________________
    1. O Básico ________________________________________________
  • 2.1 Variáveis e tipos de dados _________________________________
  • 2.2. Comentários ____________________________________________
  • 2.3. Caracteres Especiais _____________________________________
  • 2.4. Expressões e Operadores __________________________________
  • 2.5. Comparações ___________________________________________
    1. Arrays, Loops e Condicionais _______________________________
  • 3.1. Arrays ________________________________________________
  • 3.2. Condicionais ___________________________________________
  • 3.3. Operador Condicional ____________________________________
  • 3.4. Switch_________________________________________________
  • 3.5. Loop For ______________________________________________
  • 3.6. Loop While ____________________________________________
  • 3.7. Loop Do _______________________________________________
    1. Criando Classes e Aplicações em Java _________________________
  • 4.1. Definindo Classes _______________________________________
  • 4.2. Definindo Variáveis de Instância ___________________________
  • 4.3. Constantes _____________________________________________
  • 4.4. Variáveis de Classe ______________________________________
  • 4.5. Definição de Métodos ____________________________________
  • 4.6. A palavra chave this _____________________________________
  • 4.7. Passando argumentos para Métodos _________________________
    1. Mais sobre Métodos _______________________________________
  • 5.1. Polimorfismo ou Sobrecarga _______________________________
  • 5.2. Métodos Construtores ____________________________________
  • 5.3. Métodos Destrutores _____________________________________
    1. Window Toolkit __________________________________________
  • 6.1. Eventos _______________________________________________
  • 6.2. Componentes AWT ______________________________________
  • 6.3. Gráficos _______________________________________________
    1. Threads _________________________________________________
  • 7.1. O que são threads? _______________________________________
  • 7.2. Os estados de uma thread _________________________________
  • 7.3. Threads em Applets ______________________________________
  • 7.4. Herdando de Thread x Implementando Runnable _______________
    1. Procure Saber Mais Sobre __________________________________
  • Referências Bibliográficas ____________________________________

1.6. Criando uma APLICAÇÃO

Para começar, criaremos uma simples aplicação em Java: a clássica “Hello World!”, o exemplo que todos os livros de linguagens usam.

1.6.1. O código fonte

Como todas as linguagens de programação, o código fonte será criado em um editor de texto ASCII puro. No Unix alguns exemplos são emacs, pico, vi e outros. No Windows, notepad ou dosedit também servem. A seguir, o código da aplicação “Hello World!” (arquivo: HelloWorld.java):

class HelloWorld { public static void main (String args[]) { System.out.println(“Hello World!”); } }

1.6.2. Compilando a aplicação

Para compilar a aplicação, basta digitar o comando: javac HelloWorld.java Este comando vai gerar o arquivo HelloWorld.class, que é o byte-code da aplicação. Para executar o byte-code basta digitar o comando: java HelloWorld

1.7. Criando uma APPLET

Criar uma applet é diferente de criar uma simples aplicação porque uma applet é executada e visualizada dentro de uma página HTML. Como exemplo, novamente será implementada a clássica “Hello World!”.

1.7.1. O código fonte

A seguir, o código da aplicação “Hello World!” (arquivo: HelloWorldApplet.java): import java.awt.Graphics;

public class HelloWorldApplet extends java.applet.Applet { public void paint (Graphics g) { g.drawString (“Hello World!”,5,25); } }

1.7.2. Compilando a applet

Para compilar a applet, basta digitar o comando: javac HelloWorldApplet.java Este comando vai gerar o arquivo HelloWorldApplet.class, que é o byte-code da applet. Para executar o byte-code é necessário haver uma página HTML, a qual tem o código a seguir (arquivo: exemplo1.html):

Java Hello World

1.7.3. Visualização

A página com código descrito anteriormente pode ser visualizada através de um browser que suporte java ou do appletviewer utilizando-se do comando a seguir: appletviewer exemplo1.html

2.2. Comentários

Java possui três tipos de comentário, o /* e / como no C e C++. Tudo que estiver entre os dois delimitadores são ignorados: / Este comentário ficará visível somente no código o compilador ignorará completamente este trecho entre os delimitadores */

Duas barras (//) também podem ser usadas para se comentar uma linha: int idade; // este comando declara a variável idade

E finalmente os comentários podem começar também com /** e terminar com */. Este comentário é especial e é usado pelo javadoc e para gerar uma documentação API do código. Para aprender mais sobre o javadoc acesse a home page (http://www.javasoft.com).

2.3. Caracteres especiais

Caracter Significado \n Nova Linha \t Tab \b Backspace \r Retorno do Carro \f “Formfeed” (avança página na impressora) \ Barra invertida \’ Apóstrofe \” Aspas \ddd Octal \xdd Hexadecimal

2.4. Expressões e operadores

2.4.1. Operadores Aritméticos

Operador Significado Exemplo

  • soma 3 + 4
  • subtração 5 - 7
  • multiplicação 5 * 5 / divisão 14 / 7 % módulo 20 % 7

Exemplo Aritmético: class ArithmeticTest { public static void main ( Strings args[] ) { short x = 6; int y = 4; float a = 12.5f; float b = 7f;

System.out.println ( “x é “ + x + “, y é “ + y ); System.out.println ( “x + y = “ + (x + y) ); System.out.println ( “x - y = “ + (x - y) ); System.out.println ( “x / y = “ + (x / y) ); System.out.println ( “x % y = “ + ( x % y ) );

System.out.println ( “a é “ + a + “, b é “ + b ); System.out.println ( “ a / b = “ + ( a / b ) ); } }

2.5.2. Operadores lógicos

Operador Significado && Operação lógica E (AND) || Operação lógica OU (OR) ! Negação lógica & Comparação bit-a-bit E (AND) | Comparação bit-a-bit OU (OR) ^ Comparação bit-a-bit OU-Exclusivo (XOR) << Deslocamento a esquerda >> Deslocamento a direita >>> Deslocamento a direita com preenchimento de zeros

  • Complemento bit-a-bit x <<= y Atribuição com deslocamento a esquerda ( x = x << y ) x >>= y Atribuição com deslocamento a direita ( x = x >> y ) x >>>= y Atribuição com deslocamento a direita e com preenchimento de zeros ( x = x >>> y ) x &= y atribuição AND ( x = x & y ) x |= y atribuição OR ( x = x | y ) x ^= y atribuição XOR ( x = x ^ y )

3. ARRAYS, LOOPS E CONDICIONAIS

3.1. Arrays

Arrays em Java são diferentes do que em outras linguagens. Arrays em Java são objetos que podem ser passados e acoplados a outros objetos. Arrays podem conter qualquer tipo de elemento valorado(tipos primitivos ou objetos), mas você não pode armazenar diferente tipos em um simples array. Ou seja, você pode ter um array de inteiros, ou um array de strings, ou um array de array, mas você não pode ter um array que contenha ambos os objetos strings e inteiros. A restrição acima descrita significa que os arrays implementados em Java são genéricos homogêneos, ou seja, um único array pode armazenar qualquer tipo de objeto com a restrição que todos sejam do mesma classe.

3.1.1. Declarando um Array:

String difficult[]; Point hits[]; int temp[];

Outra alternativa de declaração:

String[] difficult; Point[] hits; int[] temp;

3.1.2. Criando Objetos Arrays:

Um dos caminhos é usar o operador new para criar uma nova instância de um array, por exemplo:

int[] temps = new int[99];

Quando voce cria um objeto array usando o operador new, todos os índices são inicializados para você ( 0 para arrays numéricos, falso para boolean, ‘\0’ para caracteres, e NULL para objetos). Você também pode criar e inicializar um array ao mesmo tempo.

String[] chiles = { “jalapeno”, “anaheim”, “serrano” , “jumbou”, “thai”};

Cada um dos elementos internos deve ser do mesmo tipo e deve ser também do mesmo tipo que a variável que armazena o array. O exemplo acima cria um array de Strings chamado chiles que contém 5 elementos.

void testblock(){ int x = 10, w=1;

if (x> w) { // inicio do bloco int y=50; System.out.println(“dentro do bloco”); System.out.println(“x:” + x); System.out.println(“y:” + y); } // final do bloco

System.out.println(“w:” + w); System.out.println(“y:” + y); // erro variável não conhecida }

3.3. O operador Condicional

Uma alternativa para o uso do if e else é um operador ternário condicional. Este operador ternário (?: ) , é chamado assim porque tem três termos como parâmetro. Exemplo: test? trueresult : falseresult int menor = x < y? x : y ; // A variável menor recebe o valor do menor entre x e y.

3.4. O switch

Um comum mecanismo para substituição de ifs que pode ser usado para um grupo de testes e ações junto a um simples agrupamento, chama-se switch. switch (teste){ case valorum; resultum; break;

case valordois; resultdois; break;

case valortres: resulttres; break;

default: defaultresult; }

O valor é comparado com cada um dos casos relacionados. Se a combinação não for encontrada, o bloco default executado. O default é opcional, então caso este não esteja associado ao comando, o bloco do swicth sem executar nada.

3.5. Looping For

O loop em Java tem esta sintaxe:

for(inicialização; teste; incremento) { bloco de comandos; }

Você também pode incluir um comando simples, sendo assim não há necessidade da utilização de chaves. Exemplo:

String strArray[] = new String[10]; for ( i=0; i< strArray.length; i++) strArray[i]=””;

Inicializa um array de10 elementos com “”;

3.6. Loop While

O while é usado para repetir um comando, ou um conjunto de comando enquanto a condição é verdadeira.

While (condição){ bloco de comandos; }

A condição é uma expressão booleana. Exemplo:

int count=0; while( count < array1.length && array1[count]!=0){ array2[count]=(float) array1[count++]; }

3.7. Loop Do

A principal diferença entre o while e o do é que o teste condicional no caso do while é feita antes de se executar o código interno ao loop. Desta forma, o que pode acontecer no while é que o loop pode não ser executado se a condição for false. Já no loop do o corpo do loop é executado pelo menos uma vez, pois o teste de permanência é executado no fim do loop.

do{ bodyOfLoop; } while(condition);

static final int maxObjects= 10;

4.5. Definição de Métodos

A definição dos métodos têm quatro partes básicas: · O nome do método; · O tipo objeto ou tipo primitivo de retorno; · Uma lista de parâmetros; · O corpo do método;

A definição básica de um método tem esta aparência:

tipoderetorno nomedometodo(tipo1 arg1, tipo2 arg2, ...){ .... }

Exemplo:

int[] makeRange(int lower, int upper) { ... }

A RangeClass classe:

class RangeClass{ int[] makeRange(int lower, int upper){ int arr[] = new int[ (upper - lower) + 1];

for (int i=0; i

4.6. A palavra chave this

No corpo de uma definição de método, você pode querer referir-se ao objeto corrente-o objeto que o método foi chamado - para referir-se às variáveis de instância ou para passar o objeto corrente como um argumento para um outro método. Para este tipo de referência, você pode usar a palavra chave this.

class Pessoa { String nome; int idade; Pessoa ( String nome, int idade ) { this.nome = nome; this.idade = idade; }

public void imprimeDados () { System.out.print ( “Nome: “ + this.nome + “ Idade: “ + this.idade); } }

4.7.Passando argumentos para Métodos

class PassByReference{ int onetoZero(int arg[]){ int count=0;

for(int i=0; i< arg.length; i++){ if(arg[i]==1){ count++; arg[i]=0; } } return count; } }

public static void main (String arg[]) int arr[]= { 1,3,4,5,1,1,7}; PassByReference test = new PassByReference(); int numOnes;

System.out.print(“Values of the array: [“); for( int i=0; i < arr.length; i++){ System.out.print(arr[i] + “ “); } System.out.println(“]”);

numOnes= test.onetoZero(arr); System.out.println(“Number of Ones = “ + numOnes); System.out.print(“New values of the array: [ “); for( int i=0; i < arr.length; i++){ System.out.print(arr[i] + “ “); } System.out.println(“]”);

5. MAIS SOBRE MÉTODOS

5.1. Polimorfismo ou Sobrecarga

Os métodos em Java podem ser sobrecarregados, ou seja, podem-se criar métodos com o mesmo nome, mas com diferentes assinaturas (parâmetros) e diferentes definições. Quando se chama um método em um objeto, o Java casa o nome do método, o número de argumentos e o tipo dos argumentos e escolhe qual a definição do método a executar. Para criar um método sobrecarregado, é necessário criar diferentes definições de métodos na sua classe, todos com o mesmo nome, mas com diferentes parâmetros (número de argumentos ou tipos). No exemplo a seguir veremos a definição da classe Retangulo, a qual define um retângulo plano. A classe Retangulo têm quatro variáveis para instanciar, as quais definem o canto superior esquerdo e o canto inferior direito do retângulo: x1, y1, x2 e y2.

class Retangulo { int x1 = 0; int y1 = 0; int x2 = 0; int y2 = 0; }

Quando uma nova instância da classe Retangulo for criada, todos as suas variáveis são inicializadas com 0. Definindo um método construaRetang (): este método recebe quatro inteiros e faz um “resize” do retângulo de acordo com as novas coordenadas e retorna o objeto retângulo resultante ( note que os argumentos possuem o mesmo nome das variáveis instanciáveis, portanto deve-se usar o this para referenciá-las ):

Retangulo construaRetang ( int x1, int y1, int x2, int y2 ) { this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2; return this; }

Querendo-se definir as dimensões do retângulo de outra forma, por exemplo pode-se usar o objeto Point ao invés de coordenadas individuais. Faremos a sobrecarga do método construaRetang (), passando agora como parâmetro dois objetos Point:

Retangulo construaRetang (Point superiorEsquerdo, Point inferiorDireito) { x1 = superiorEsquerdo.x; y1 = superiorEsquerdo.y; x2 = inferiorDireito.x; y2 = inferiorDireito.y; return this; }

Porém querendo-se definir um retângulo usando somente o canto superior esquerdo e uma largura e altura do retângulo pode-se ainda definir mais um método construaRetang ():