Marcos André S. Kutova Setembro/98

Slides:



Advertisements
Apresentações semelhantes
C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:
Advertisements

Introdução à Programação Um enfoque orientado a construção de modelos em programas baseados em objetos Gustavo Motta Departamento de Informática - UFPB.
Sistemas distribuídos
Paulo Marques Hernâni Pedroso
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Modificadores Marco Antonio, Arquiteto de Software – TJDF Atualizado em Novembro/2008.
Capítulo 1 Introdução.
Introdução a Linguagem Java
Histórico do Java 1990 James Gosling (Sun Microsystems)
PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Carlos Lucena
Orientação a Objetos: Encapsulamento e Classificação
Persistência de objetos em arquivo texto usando Java
Iniciação ao Java – Márcio F. Campos
Programação Básica em Java
Programação Concorrente
Rebeca Schroeder Linguagem Java Rebeca Schroeder
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Wagner Santos C. de Jesus
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
A linguagem C#.
Estrutura de Dados em Java
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Uma comparação segundo os princípios da Orientação à Objetos
JAVA: Conceitos Iniciais
Concorrência em Java Threads em Java.
Unidade I: “Dê um mergulho rápido”
JAVA Linguagem Ambiente de Desenvolvimento
1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.
Streams –input e output
Atributos, Encapsulamento e Interface em Java
Programação I Aula 2 (Métodos)
Chamada Remota de Procedimentos
OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.
Linguagem de Programação JAVA
1 Mobilidade de Código com μcode Projeto Giga Alexandre Lages
Introdução à Linguagem Java
Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento
Linguagem de Programação JAVA
Professor: Márcio Amador
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
Pilhas Profa. Nádia Félix.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
Programação Orientada a Objetos - Java
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Introdução às Java Threads
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Java Kickstart, day 2 Semelhanças com linguagem C.
Classes Abstratas e Interface
Exceções Suzana Fragoso (smpf) Adaptado do material de Guilherme Carvalho (gvc)
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
Java Básico Instrutor: Davi Pires
Linguagem I Strings.
Módulo 9 Strings , Coleções e I/O
JAVA Sintaxe.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Conceitos Básicos e Manipulação de Objetos
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Java Disciplina: Programação II Professora: Mai-Ly Vanessa.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
Programação em Java Prof. Edvan Chaves.
Introdução Sintaxe Básica da Linguagem JAVA
RMI Java Remote Method Invocation em Java. Introdução Java Remote Method Invocation (Java RMI) permite desenvolver sistemas distribuídos baseados em Java.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
SOCKET - É um canal de comunicação entre processos que estabelece uma conexão entre eles na forma de cliente-servidor. Por meio de sockets, os computadores.
Java Básico Lab Ruddá Beltrão | Cristian Costa.
Introdução à plataforma Java. 2 A tecnologia Java Java: linguagem de programação e plataforma de desenvolvimento Criada pela Sun Microsystems Apoiada.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Transcrição da apresentação:

Marcos André S. Kutova kutova@icmc.sc.usp.br Setembro/98 UMA INTRODUÇÃO À JAVA Marcos André S. Kutova kutova@icmc.sc.usp.br Setembro/98

ÍNDICE Introdução Programação Orientada a Objetos A Linguagem Java Objetos e Classes em Java Classes Essenciais Applets Classes Avançadas

Introdução

O QUE É JAVA ? Linguagem de Programação Simples Orientada a Objetos Distribuída Portável Robusta Segura Interpretada Independente de arquitetura Alta Performance Dinâmica

O QUE É JAVA ? Linguagem de Programação Todos os programas Java são compilados e interpretados O compilador transforma o programa em bytecodes independentes de plataforma O interpretador testa e executa os bytecodes

O QUE É JAVA ? Linguagem de Programação Cada interpretador é uma implementação da JVM - Java Virtual Machine (ferramenta, browser, hardware) “Write Once, Run Anywhere”

O QUE É JAVA ? Plataforma Java Uma plataforma é o ambiente de hardware e software onde um programa é executado A plataforma Java é um ambiente somente de software Componentes: Java Virtual Machine (Java VM) Java Application Programming Interface (Java API)

O QUE JAVA PODE FAZER ? Applets Servlets Aplicações Aplicações cliente/servidor Aplicações para a Internet

Programação Orientada a Objetos

PROGRAMAÇÃO ORIENTADA A OBJETOS Conceitos Básicos Objetos Mensagens Classes Herança

PROGRAMAÇÃO ORIENTADA A OBJETOS O que são objetos? Conjunto de variáveis e procedimentos utilizados para modelar objetos do mundo real (e imaginário) Um objeto é caracterizado pelo seu estado e pelo seu comportamento Exemplo - Lâmpada Estados - ligada/desligada Comportamento - mudar de ligada para desligada mudar de desligada para ligada

PROGRAMAÇÃO ORIENTADA A OBJETOS O que são mensagens? Mensagens são utilizadas para fazer a comunicação entre os objetos Cada objeto entende um conjunto de mensagens que podem mudar seu estado atual Quando há a necessidade de maiores informações, as mensagens podem conter parâmetros

PROGRAMAÇÃO ORIENTADA A OBJETOS O que são classes? Uma classe é uma especificação que define as variáveis e os métodos comuns a todos os objetos de um certo tipo Um objeto é uma instância de uma classe O que é herança? A herança fornece um mecanismo poderoso e natural para organização e estruturação de objetos Uma classe herda estados e comportamentos de sua superclasse

PROGRAMAÇÃO ORIENTADA A OBJETOS Exemplo - Lâmpada class Lamp { private boolean LampIsOn; public void turnKnob() { LampIsOn = !LampIsOn; } public Lamp() { LampIsOn = false; Variável Método Construtor

A Linguagem Java

A LINGUAGEM JAVA Comentários /* texto */ O compilador ignora tudo entre /* e */ /** documentacao */ indica um comentário para documentação. Utilizado pela ferramenta javadoc // texto O compilador ignora todos os caracteres de // até o final da linha

A LINGUAGEM JAVA Tipos de dados Nomes de variáveis Inteiros: byte / short / int / long Reais: float / double Outros: char / boolean Nomes de variáveis Série de caracteres Unicode Não pode ser palavra chave Não pode ser nome de outra variável ou classe

A LINGUAGEM JAVA Inicialização Variáveis finais int i = 10; char c; c = ‘X’; Variáveis finais final float pi = 3.14159; (final também pode ser utilizado para métodos. Os métodos finais não podem ter subclasses)

A LINGUAGEM JAVA Operadores Atribuição: = Aritméticos: + - * / % Unários: ++ -- Lógicos: = = != < > <= >=

A LINGUAGEM JAVA Instruções de controle de fluxo Condicionais Laço if-else / switch-case (break) Laço for / while / do-while Exceção try-catch-finally (throw)

A LINGUAGEM JAVA Vetores Declaração Inicialização int[] arrayOfInts; Inicialização arrayOfInts = new int[10]; Declaração e inicialização (elemento de 0 a 9) int[] arrayOfInts = new int[10];

A LINGUAGEM JAVA Strings Declarações e atribuições String cde = “cde”; char data[] = { ‘a’, ‘b’, ‘c’ }; String str = new String( data ); String cc = “ab”+cde; As strings podem ser concatenadas através do operador + As strings não podem ser alteradas

A LINGUAGEM JAVA Strings - Alguns Métodos .substring() .equals() .startsWith() .endsWith() .length() .toUpperCase() .toLowerCase() .replace() .charAt() .trim .equals() .compareTo() .equalsIgnoreCase() .toString() String.valueOf()

A LINGUAGEM JAVA StringBuffer Permitem criar strings que podem ser alteradas Todos os métodos da classe StringBuffer são synchronized Desempenho pior do que com Strings Principais métodos: .append() .insert() .length() .toString()

A LINGUAGEM JAVA O Método main class HelloWorld { public static void main( String[] args ) { System.out.println( “Hello World!” ); } } Quando o interpretador Java executa uma aplicação, ele começa chamando o método main O método main então chama todos os outros métodos necessários para executar a aplicação

A LINGUAGEM JAVA Controlando o acesso aos membros da classe Especificador classe subclasse pacote todos ---------------------------------------------------------------- private X protected X X X public X X X X package X X

A LINGUAGEM JAVA Métodos e variáveis estáticos Declarados com o especificador static São comuns a todos os objetos da classe Utilizados para declaração de constantes Utilizados para declaração de métodos que não necessitam de uma instância da classe static int FALSO 0; static int VERDADEIRO 1; public static boolean testa( int p ) { if( p == this.VERDADEIRO ) return( true ); else return( false ); }

Objetos e Classes em Java

OBJETOS E CLASSES EM JAVA Exemplo: Lâmpada class Lamp { private boolean LampIsOn; public void turnKnob() { LampIsOn = !LampIsOn; } public Lamp() { LampIsOn = false; Variável Método Construtor

OBJETOS E CLASSES EM JAVA Criando um objeto da classe Lamp Lamp l; l = new Lamp(); Lamp l1 = new Lamp(); Lamp l2 = new Lamp(); Acessando variáveis e métodos l1.turnKnob(); l2.LampIsOn = true; Viola definição de visibilidade

OBJETOS E CLASSES EM JAVA Herança class StrobeLamp extends Lamp { private int strobeRate; public setStrobeRate( int s ) { strobeRate = s; }

OBJETOS E CLASSES EM JAVA Garbage Collector A plataforma Java periodicamente libera a memória usada por objetos que não são mais necessários O Garbage Collector roda em uma thread de baixa prioridade e remove todos os objetos que não são mais referenciados Finalização Antes de um objeto ser destruído, o Garbage Collector executa o método finalize do objeto (quanto existir) Isto permite, por exemplo, o fechamento de arquivos e conexões de rede

OBJETOS E CLASSES EM JAVA this A palavra reservada this permite que um objeto consiga uma referência própria Referência a uma variável do objeto int s; public setStrobeRate( int s ) { this.s = s; } Passagem de referência própria animation = new Thread( this );

OBJETOS E CLASSES EM JAVA super Referência à superclasse Utilizado para chamar o construtor da superclasse int s; public StrobeLamp( int s ) { super(); this.s = s; } Utilizado para chamar métodos da superclasse public finalize() { f.close(); super().finalize(); }

OBJETOS E CLASSES EM JAVA Interfaces Interface é uma especificação que permite que objetos não relacionados possam interagir (análogo a protocolo) As interfaces definem conjuntos de métodos, mas não os implementam Uma classe que implemente a interface deve implementar TODOS os métodos definidos nesta. public interface Sleeper { public void wakeUp(); public long ONE_SECOND = 1000; // milli }

OBJETOS E CLASSES EM JAVA Pacotes Para facilitar o uso, controle de acesso e controle de conflito de nomes, os programadores agrupam classes e interfaces relacionadas em pacotes. Os pacotes necessários a um programa devem ser incorporados através do comando import. Basta incluir no início arquivo da classe a linha: package nomePacote; Por convenção, deve-se usar o nome do pacote no formato: com.company.package ou com.company.region.package

Classes Essenciais

CLASSES ESSENCIAIS Classe System - Recursos do Sistema Não há a necessidade de inicialização (classe final) Todos os métodos são estáticos Algumas plataformas podem gerar erros por não possuírem os dispositivos acessados class UserNameTest { public static void main(String[] args) { String name; name = System.getProperty("user.name"); System.out.println(name); }

CLASSES ESSENCIAIS Exceções A linguagem Java utiliza as exceções para fornecer capacidades de controle de erros quando, durante a execução de um programa, ocorrer um evento que interrompa o fluxo normal de instruções Vantagens: Separar o gerenciamento de erro do resto do código Propagar erros Agrupar os erros

CLASSES ESSENCIAIS Exceções try { // abre o arquivo // determina o seu tamanho // aloca a memória necessária // lê o arquivo para a memória // fecha o arquivo } catch (fileOpenFailed) { fazAlgo; } catch (sizeDeterminationFailed) { fazAlgo; } catch (memoryAllocationFailed) { fazAlgo; } catch (readFailed) { fazAlgo; } catch (fileCloseFailed) { fazAlgo; }

CLASSES ESSENCIAIS Threads Uma thread - também chamada de linha de execução - é um fluxo sequencial simples de controle dentro de um programa. Quando uma thread é criada, ela executa o método run do objeto.

CLASSES ESSENCIAIS Lendo e escrevendo Normalmente, os programas devem ler ou escrever informações em fontes/destinos externos (arquivos, memória, rede, ...). Estas informações podem ser de qualquer tipo: números, textos, imagens, ... A API Java permite que o programa crie um fluxo para cada um destes pontos externos.

CLASSES ESSENCIAIS Lendo e escrevendo

CLASSES ESSENCIAIS Lendo e escrevendo Os fluxos podem ser de bytes ou caracteres. As fontes e destinos podem ser físicas ou apenas de processamento. Métodos: .read() e .write() Quando necessários, deve-se utilizar a serialização de objetos.

Applets

APPLETS O que são Applets? Applets são aplicações Java que permitem estender as funcionalidades da páginas da Internet. As applets são executas juntamente com um browser ou pelo appletviewer (programa do JDK para rodar applets). As applets são chamdas por um documento HTML.

APPLETS Características As applets não possuem o método main. Uma applet não tem acesso aos recursos da máquina local. Uma applet somente pode utilizar recursos do servidor de onde veio.

APPLETS Ciclo de vida .init() Este método é chamado para inicializar a applet. .start() Este método inicia a execução da applet. É chamado após a inicialização e toda vez que o usuário volta à pagina (enquanto estiver na memória). .paint() Desenha a applet. .stop() Interrompe a execução da applet. Inclusive quando o usuário deixa a página. .destroy() Libera os recursos alocados pela applet

APPLETS import java.applet.Applet; import java.awt.Graphics; public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString("Hello world!", 50, 25); }

APPLETS <HTML> <HEAD> <TITLE> A Simple Program </TITLE> </HEAD> <BODY> Here is the output of my program: <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25> </APPLET> </BODY> </HTML>

Classes Avançadas

CLASSES AVANÇADAS java.awt Abstract Windowing Toolkit Objetivo de fornecer as funcionalidades básicas presentes em todas as plataformas gráficas Componentes: Label, Button, CheckBox, Choice, List, TextField, MenuItem, Frame, Dialog, Panel, ...

CLASSES AVANÇADAS java.net java.rmi Permite a criação de programas que comuniquem com recursos ou outros programas em uma rede Permite conexões TCP ou UDP java.rmi Remote Method Invocation Permite que um objeto rodando em uma JVM invoque métodos de um objeto rodando em outra JVM

CLASSES AVANÇADAS java.security java.sql Importa a funcionalidade da criptografia, incluindo assinaturas digitais, gerenciamento de chaves e gerenciamento de certificados java.sql Permite a conexão aos sistemas de banco de dados tradicionais, inclusive permitindo a execução de instruções SQL

CLASSES AVANÇADAS Outras classes Java 2D Java 3D Internacionalização Java Beans Swing Servlets Java Sound Java Media Player Java Native Interface

Referências Java Technology Homepage - http://java.sun.com Teach yourself Java 1.1 in 21 Days, L. Lemay & C. Perkins Java Unleashed, Michael Morrison The Java Tutorial, Mary Campione & Kathy Walrath