Linguagem Java Alexandre Parra E-mail: [email protected] Site: .

38
Linguagem Java Alexandre Parra E-mail: [email protected] Site: www.udesc.br

Transcript of Linguagem Java Alexandre Parra E-mail: [email protected] Site: .

Page 1: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Linguagem Java

Alexandre ParraE-mail: [email protected]

Site:www.udesc.br

Page 2: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Roteiro

Breve Histórico de Java

Características da Linguagem Java

Java Virtual Machine (JVM)

Sintaxe da Linguagem Java

Page 3: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Histórico (1/2)

Surgimento: 1990 - James Gosling – Sun Microsystems

Concebida para o desenvolvimento de pequenos aplicativos e programas de aparelhos eletrodomésticos e eletroeletrônicos.

C++ → OAK → Java

Page 4: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Histórico (2/2)

Inicialmente conhecida como uma ferramenta para criar applets para a WWW. Applet: mini-aplicação que é executada

dentro de uma página Web.

Atualmente bastante utilizada para o desenvolvimento de aplicações para Internet, e outros...

Page 5: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Características – Java (1/4)

Parecida com C, C++ Embora use um paradigma diferente do C, tem algumas

características herdadas desta linguagem. Orientada a Objetos

Implementa quase todas as características do paradigma orientada a objetos, exceto herança múltipla.

Segurança Não há ponteiros (apresenta outras estruturas mais

seguras); Coleta automática de lixo:

O programador não precisa gerenciar diretamente a memória

Mecanismos de tratamento de exceções.

Page 6: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Características – Java (2/4)

Suporta execuções concorrentes/paralelas: Threads de execução

Suporte a programação de sistemas distribuídos: Sockets; Remote Method Invocation (RMI); ...

Page 7: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Características – Java (3/4)

É uma linguagem interpretada.

Programas Java compilados chamam-se “byte-code” (.class).

O “byte-code” será interpretado por uma máquina virtual (JVM) para então executar.

O “byte-code” pode “rodar” em máquinas de plataformas diferentes (independente de plataforma).

Page 8: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Características – Java (4/4)

Page 9: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Java Virtual Machine (JVM) Somente dentro da JVM é que os códigos Java

são efetivamente executados.

Uma especificação da JVM é direcionada para uma determinada especificação de hardware.

Então “byte-code” são instruções de código de máquina para a JVM.

“Escrever uma vez, executar em qualquer parte, a qualquer tempo e para sempre”.

Patrick Naughton

Page 10: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

As versões do Java

Page 11: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

A “Sopa de Letras” do Java (1/3)

API (Application Programming Interface) São bibliotecas de classes, que podem ser

reutilizadas no desenvolvimento de aplicativos Java.

JSDK (ou JDK): Java Software Development Kit; Conjunto de ferramentas de

desenvolvimento Java disponibilizado pela SUN;

Compilador + depurador + API; Documentação.

Page 12: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

A “Sopa de Letras” do Java (2/3)

JRE (Java Runtime Environment) Bibliotecas; Máquina Virtual Java e demais componentes necessários para

executar applets e aplicações escritas em Java.

Page 13: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

A “Sopa de Letras” do Java (3/3)

J2SE (Java 2 Standard Edition) Núcleo da Plataforma Java Contém o JDK e o JRE

J2ME (Java 2 Micro Edition) É o Java para pequenos dispositivos

J2EE (Java 2 Enterprise Edition) Ambiente para o desenvolvimento de

aplicações corporativas, complexas e distribuídas fisicamente.

Page 14: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Sintaxe Java

Classe em Java Atributos Construtores Métodos

Interface Exemplos de Programas Simples

Page 15: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Classe em Java

Uma classe define o estado e comportamento de um objeto, implementando atributos e métodos.

Classe representa um tipo de dado complexo.

Objetos (instâncias) são a representação dinâmica das classes.

Principais membros das classes: atributos, métodos e construtores.

Page 16: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Tipos de Classe

São dois tipos de classes: Classes Concretas: permite a criação de

objetos (instâncias) que representam indivíduos específicos da classe.

Classes Abstratas: não permite a criação de objetos (instâncias).

Normalmente, classes abstratas são utilizadas para a definição de interfaces ou de templates que serão utilizados (através da herança) por classes concretas.

Page 17: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Sintaxe de definição de Classe em Java

Os membros só podem ocorrer dentro do bloco ‘class <NomeDaClasse> { ... }’, em qualquer ordem

(1) zero ou mais declarações de atributos;

(2) zero ou mais construtores;

(3) zero ou mais definições de métodos.

Page 18: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Exemplo de Classe Concreta

public class Lampada {// definição dos atributospublic boolean estado;

// definição do construtor da classepublic Lampada(boolean estado) {

this.estado = estado;}

// definição dos métodospublic void acende() {

estado = true;}

public void apaga() {estado = false;

}

public void mostraEstado() {if(estado == true)

System.out.println(“A lâmpada está acesa.”);else

System.out.println(“A lâmpada está apagada.”);}

} // fim da classe Lampada

construtor

atributo

métodos

Page 19: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Exemplo de Classe Abstrata

public abstract class FigurasGeometricas { private float base; private float altura; private float coordX; private float coordY;

public abstract float calculaPerimetro();

public abstract float calculaArea();

public void setBase(float base) { this.base = base;

}

public float getBase() { return base;

}

public void setAltura(float altura) { this.altura = altura;

} ...}

Classe abstrata

Page 20: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Sintaxe de definição de atributos em Java

Sintaxe básica[mod]* tipo identificador [= valor];

Chave[mod]*: zero ou mais modificadores (de

acesso, de qualidade), separados por espaços: public, private, static, final, etc...;

tipo: tipo de dados que a variável (ou constante) pode conter;

identificador: nome da variável ou constante;[= valor]: valor inicial da variável ou

constante.

Page 21: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Exemplo de atributos em Java

atributos

Page 22: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Construtores

Construtores são procedimentos usados para construção de objetos Parecem métodos, mas não têm tipo de

retorno. Têm nome idêntico ao nome da classe;

Nem sempre aparecem explícitos em uma classe: podem ser omitidos (o sistema oferece uma implementação padrão).

Page 23: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Sintaxe de definição de construtores em Java

Possui sempre o mesmo nome que a classe. Contém procedimentos entre chaves, como os

métodos. São chamados apenas uma vez: na criação do

objeto. Pode haver vários em uma mesma classe.

São identificados pelo número e tipo de argumentos.

Nunca declara-se tipo de retorno Sintaxe

[mod]* nome_classe ( [tipo arg]* ) { ... }

Page 24: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Exemplo de construtores em Java

construtores

Page 25: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Sintaxe de definição de métodos em Java

Sintaxe básica [mod]* tipo identificador ([tipo arg]*)

{ ... }

Chave[mod]*: zero ou mais modificadores de

acesso separados por espaços;tipo: tipo de dados retornado pelo método;identificador: nome do método;[arg]*: zero ou mais argumentos, com tipo

declarado, separados por vírgula;

Page 26: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Exemplo de métodos em Java

métodos

Page 27: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Sintaxe de definição de Interface em Java

Só podem ocorrer dentro do bloco “interface nomeDaInterface { ... }”:

(1) zero ou mais métodos abstratos;

(2) zero ou mais constantes;

Page 28: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Exemplos de Interface

public interface Relogio { public void setHorario(Date horario); public Date getHorario(); public void setHorarioAlarme(Date horario); public Date getHorarioAlarme(); public void ligarAlarme(); public void desligarAlarme(); public void setVolumeRelogio(int volume); public int getVolumeReologio();}

public interface Radio { public void setEmissora(float emissora, String tipo); public float getEmissora(); public String getTipoEmissora(); public void setVolumeRadio(int volume); public int getVolumeRadio(); }

Page 29: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Exemplo simples de Programa (1/2)

Page 30: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Exemplo simples de Programa (2/2)

Page 31: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Objeto em Java (1/3)

O que é um objeto ? São conceitos que têm: identidade,

estado e comportamento.

Page 32: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Objeto em Java (2/3)

Em Java, objetos são armazenados na memória heap e manipulados através de referência (variável), guardada na pilha. Tem estado (atributos); Tem comportamento (métodos); Tem identidade (a referência).

Page 33: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Interface de Objetos

Através da interface* é possível comunicar-se com objetos Não é preciso saber dos detalhes da

implementação.

O tipo (Classe) de um objeto determina sua interface O tipo determina quais mensagens podem

ser enviadas aos objetos.

* Interface aqui refere-se aos métodos de um objeto e não um conceito.

Page 34: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Exemplo de assinaturas de métodos

Page 35: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Onde obter o Java ?

J2SE - http://java.sun.com/j2se/

J2EE - http://java.sun.com/j2ee/

J2ME - http://java.sun.com/j2me/

Page 36: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

IDE (Integrated Development Environment)

JCreator - http://www.jcreator.net

NetBeans - http://www.netbeans.org/

Eclipse - http://www.eclipse.org

Page 37: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Leitura

Ler os capítulos 4 e 5 do livro “Java como Programar” presente em http://www.joinville.udesc.br/portal/professores/parra/

Page 38: Linguagem Java Alexandre Parra E-mail: parrasilva@gmail.com Site: .

Exercícios

Fazer os exercícios propostos no arquivo “exercicios_ling_java.doc” que se encontra em http://www.joinville.udesc.br/portal/professores/parra/ no link “Materiais” da disciplina LPG-II.