P n o t n ifíci c a a Un U i n ve v r e si s da d d a e d e C a C t a ól ó ica c a d o d o R i R o o d e d e J a J n a e n i e ro o PU P C U -Ri R o



Documentos relacionados
Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

2 Orientação a objetos na prática

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

AULA Uma linguagem de programação orientada a objetos

Linguagem de Programação Introdução a Linguagem Java

Programação Orientada a Objetos

Sintaxe Básica de Java Parte 1

A Linguagem Java. Alberto Costa Neto DComp - UFS

Desenvolvimento Web TCC Turma A-1

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

Programação Orientada a Objetos

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Linguagens de. Aula 02. Profa Cristiane Koehler

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Programação de Computadores II TCC Turma A-1

CURSO DE PROGRAMAÇÃO EM JAVA

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel

Capítulo 1. Introdução ao Java. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Orientação a Objetos em Java. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

JAVA. Fabrício de Sousa

Orientação a Objetos com Java

Introdução à linguagem

Java. Marcio de Carvalho Victorino

Universidade Federal de Uberlândia

FBV - Linguagem de Programação II. Um pouco sobre Java

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

PROGRAMAÇÃO JAVA. Parte 1

JAVA. Introdução. Marcio de Carvalho Victorino. Page 1 1/40 2/40

Introdução à Linguagem Java

Introdução à Linguagem Java. Departamento de Informática Prof. Anselmo C. de Paiva

Fundamentos de Programação II. Introdução à linguagem de programação C++

UNIVERSIDADE FEDERAL DO PARANÁ

Programação por Objectos. Java

Programação Orientada a Objetos (DPADF 0063)

Faculdade Instituto Educare - FIED Curso: Sistemas de Informação Disciplina: Linguagem de Programação I Prof.: Rhyan Ximenes rxbrito@gmail.

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Prof. M.Sc. Fábio Procópio Prof. M.Sc. João Maria Criação: Fev/2010

Faculdade Latino Americana Programação Orientada a Objetos II - 4º Período Ciências da Computação. REVISÃO POO Parte 01

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

A Linguagem Java. Apresentação. Java. A Linguagem da Internet

UNIVERSIDADE FEDERAL DO PARANÁ

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Objetivos do Curso. Você será capaz de:

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

LINGUAGEM DE PROGRAMAÇÃO JAVA

Prof. Esp. Adriano Carvalho

Unidade IV: Ponteiros, Referências e Arrays

Um pouco do Java. Prof. Eduardo

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

Noções sobre Objetos e Classes

Introdução a Linguagem

Programação online em Java

Algoritmos e Programação 2. Introdução à Programação Orientada a Objetos. Orientação a Objetos. O que é um paradigma de programação?

Aspectos de Segurança em Programação com Java

Programação por Objectos. Java

Sobre o Professor Dr. Sylvio Barbon Junior

insfcanceof new public switch transient while byte continue extends for int null

Linguagem Java. Arquitetura e Ambiente de Desenvolvimento. Arquitetura e Ambiente de Desenvolvimento Prof. Anderson Augustinho Uniandrade

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Relevância e Motivação. Programação Orientada a Objetos Utilizando Java. Qualidade do Software. Objetivos. Cancelamentos.

Programação Orientada a Objetos

Técnicas de Programação II

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática

Programação de Computadores II TCC /Turma A-1A

Java para Desktop. Introdução à Plataforma Java JSE

Características de Java

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

EMENTA DO CURSO. Tópicos:

Organização de programas em Java. Vanessa Braganholo

Introdução a Java. Mário Meireles Teixeira. l Java é tanto uma linguagem de programação de alto nível quanto uma plataforma de desenvolvimento

Instituto Superior de Engenharia de Lisboa

Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

PROGRAMAÇÃO ORIENTADA A OBJETOS EM JAVA*

Programação para Dispositivos Móveis Aula 1. Prof. William Yamamoto

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

Keeper of Knowledge. Capítulo 1 Conceitos Básicos do Java

Aula 1 POO 1 Prática. Profa. Elaine Faria UFU

BSI UFRPE Prof. Gustavo Callou

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Desenvolvimento OO com Java 3 Estruturas de Controle e Programação Básica

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Transcrição:

Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática Costa clayton.maciel@ifrn.edu.br monteiro@inf.puc-rio.brrio.br Nada existe no mundo tão poderoso quanto uma idéia cujo tempo chegou. Victor Hugo 1

Unidade II: Introdução à Linguagem Java Introdução à Linguagem Java O nome java é usado para referir-se a: Uma linguagem de programação orientada a objetos; Uma coleção de APIs (classes, componentes, frameworks) para o desenvolvimento de aplicações multiplataforma; Um ambiente de execução presente em browsers, eletrodomésticos, mainframes, SOs, celulares, palmtops, cartões inteligentes, James Gosling, sun microsystems, 1995; Linguagem projetada para eletrodomésticos 2

Introdução à Linguagem Java Origem e Evolução 1991 (Green Project/Oak) - SW p/ dispositivos de eletrônicos em rede. Requisitos: suporte a diferentes plataformas distribuição de software via rede garantia de confiabilidade de código baixos requisitos de memória código pequeno 1994 - HotJava - browser 100% Java 1995 - lançada no SunWorld (voltada à Web) Origem e Evolução Ideal para a Internet; Os applets são colocados em páginas html Servlets/JSP Independente da Internet; Pode ser usada para o desenvolvimento de aplicações standalone Aplicações de Console (DOS) Aplicações Desktop (Windows Forms) E muito mais 3

Tecnologia e Conceitos A evolução da linguagem é controlada pelo Java Community Process (www.jcp.org) formado pela Sun e usuários Java; Ambientes de execução (JRE) e de desenvolvimento (SDK) são fornecidos por fabricantes de hardware e software; Java possui uma coleção de APIs (bibliotecas) padrão que podem ser usadas para construir aplicações Organizadas em pacotes (java.*. Javax.* e extensões); Usadas pelos ambientes JRE e SDK; Terminologia JDK - Java Development Kit: Terminoligia utilizada até a versão 1.1 para identificar a plataforma Java. Java 2: Terminologia utilizada a partir da versão 1.2 da plataforma Java, atualmente na versão 1.4. J2SDK Java 2 Software Development Kit: Ambiente completo para o desenvolvedor Java. Inclui compilador e a Virtual Machine. J2RE Java 2 Runtime Environment: Ambiente apenas para execução de aplicações Java, utilizada em ambientes de produção. Não contém o compilador. JVM Máquina Virtual Java. Máquina imaginária implementada como uma aplicação de software em uma máquina real. 4

Plataformas Java AWT Swing Applets Threads Collections Files Java Development Kit (JDK) Enterprise APIs Plataformas Java 5

Plataformas Java Source: Sun Microsystems, Inc. Plataformas Java 6

Orientada a Objetos; Orientada a Eventos; C++ like (sem ponteiros explícitos) Distribuída; Compilada/Interpretada; Robusta; Segura; Portável; Código Móvel; Multi-Threaded; Garbage Collected; Case Sensitive; Trat. de Exceções; Linguagem Concorrente; Ambientes Visuais; Programação com Componentes; Java é um padrão suportado por várias indústrias; 7

Orientada a Objetos Objetos; Classes (abstratas e concretas); Encapsulamento; Proteção (public, private, protected, default); Herança (simples e quase múltipla ); Polimorfismo; C++ Like class Complex float real, imag; boolean isreal () ( return (imag==0); 8

Distribuída Pacote de classes para programação em rede (java.net): sockets, urls, http, datagrama, etc; Rmi; Integração com Corba (Objetos Distribuídos); Excelente para o desenvolvimento de aplicações Cliente/Servidor; Compilada/Interpretada Compilada (bytecodes) Interpretação (máquina virtual, jvm) Portável - write once run anywhere AloMundo.java compilador (javac) AloMundo.class interpretador (JVM) Execução 9

Compilada/Interpretada HelloWorldApp.class Compilada/Interpretada HelloWorldApp.java 10

Compilada/Interpretada Bytecode / API Interpretador Java Virtual Machine bytecodes Browser Servidor HTTP Obs: 5% de C compilado (Desempenho) Código Nativo JIT Compiler Bytecode / API Java Virtual Machine bytecodes Browser Servidor HTTP Obs: JIT (Just-in-Time compiler, 50% de C compilado (Desempenho) 11

Compilada/Interpretada Código Nativo Compilador Convencional Código Fonte Bibliotecas/API Ex: Excelsior JET (http://www.excelsior-usa.com/products.html) Excelsion JET: Transforms Java applications into native Win32 executables that run ate the speed of C++ applications Obs: Ganha desempenho, mas, perde portabilidade. Desempenho similar a C++. Portável Planejada para sistemas embutidos: hardware muito heterogêneo; Bytecode portável; Escreva uma vez e rode em qualquer lugar ; Bytescodes (.class) JavaVM JavaVM JavaVM IBM / Aix PC / Windows Sun / Solaris 12

Portável HelloWorldApp.class A JVM é específica para cada SO e Hardware. (JVM) (JVM) (JVM) Robusta Não permite acesso direto à memória; (não utiliza ponteiros explícitos); Possui coletor de lixo (garbagge collector); Possui tratamento de exceções; Fortemente tipada; Implementa o conceito de cast s; Verificações obrigatórias (ex: arrays); 13

Segura Não possui ponteiros explícitos; Acesso controlado aos recursos do sistema ram, sistema de arquivos; Gerenciador de segurança classe securitymanager ; Verificação dos bytecodes que trafegam na rede; Existem ferramentas para encriptação de applets; Obs: os applets podem ser interceptados através da rede e decompilados com ferramentas de engenharia reversa, como o mocha. Multi-Threaded Implementa threads de forma bastante simples e segura; O suporte é dado pela própria linguagem, faz parte do pacote padrão de java (pacote java.lang); É portável, até mesmo em plataformas sem threads; 14

Tratamento de Exceções Permite o tratamento de situações excepcionais; Sintaxe apropriada: try, catch, finally, throw, throws; Exceções embutidas; Permite a criação de novas exceções definição de situações excepcionais; Estrutura de um Programa Java class <nome_da_classe> public static void main ( < parâmetros > ) < declarações > < comandos > main: método por onde se inicia a execução do programa. public: é o qualificador do método, indica que este método é acessível a objetos de classes externas. static: qualificador, os métodos statics podem ser invocados mesmo sem existir um objeto instanciado da classe. void: indica que o método não tem valor de retorno. 15

O Primeiro Programa Java public class HelloWorld public static void main ( String args[ ] ) System.out.println( Hello World! ); Salvar o arquivo com o nome da classe: HelloWorld.java Para Compilar: javac HelloWorld.java Para Executar: java HelloWorld Literais e Tipos Tipos representam um valor, uma coleção de valores ou coleção de outros tipos. Podem ser: Tipos básicos, ou primitivos: quando representam unidades indivisíveis de informação (de tamanho fixo). Tipos complexos: quando representam informações que podem ser decompostas em tipos menores (primitivos ou outros tipos complexos). 16

Literais e Tipos Literais: São valores representáveis literalmente: Números: 1, 2.14, 1.6e-23, etc Unidimensionais Valores booleanos: true e false Caracteres individuais: a, u0041, \n, etc Seqüências de caracteres: aaa, Java Vetores de números, booleanos ou strings: a, b Compostos Tipos Primitivos Têm tamanho fixo. Têm sempre um valor default. Armazenados na pilha (acesso rápido). Não são objetos. 17

Tipos Primitivos boolean char byte short int long float double true ou false caracteres ( Unicode ) inteiro ( 8 bits ) inteiro (16 bits) inteiro ( 32 bits ) inteiro ( 64 bits) ponto flutuante ( 32 bits ) ponto flutuante (64 bits ) Operadores Operadores Relacionais: > >= < <= ==!= Operadores Lógicos: && ( and) (or)! ( not ) Precedência: Unários, aritméticos, relacionais, lógicos ( primeiro && e depois ) 18

Strings String não é um tipo primitivo e sim uma classe; Literais:, Hello, World ; Concatenação: Hello + World = HelloWorld ; Conversão Implícita: Hello + 2001 = Hello2001 ; Comparação de Strings: a.equals(b) ; Tamanho de uma String: a.length() ; Atribuição < IDENTIFICADOR> = < EXPRESSÃO> Ex: idade = 23; sexo = M ; tem_filhos = false; Incremento e Decremento idade = idade + 1; ou idade + = 1; ou idade ++; idade = idade - 1; ou idade - = 1; ou idade --; 19

Estrutura Condicional FORMA GERAL: if ( < EXPRESSÃO > ) < BLOCO DE COMANDOS > else < BLOCO DE COMANDOS > Onde: <bloco-de-comandos> é uma seqüência de comandos entre e. Estrutura Condicional EXEMPLO:... int x = 5; int y = 10; if (x == y) System.out.println( x = y ); else System.out.println( x!= y );... 20

Estrutura Condicional Exemplo: maior entre dois números... int x, y; Scanner s = new Scanner(System.in); x = s.nextint (); y = s.nextint (); if (x > y ) System.out.println (x); else if (y > x) System.out.println (y); else System.out.println ( x = y );... Estrutura Condicional... if (x > y )...... if (x > y ) System.out.println (x); else if (y > x) System.out.println (y); else System.out.println ( x = y ); PS: Escreva com clareza!!! System.out.println (x); else if (y > x) System.out.println (y); else System.out.println ( x = y );... 21

Estrutura Condicional Exemplo: maior entre três números...... if ((x > y) && (x > z)) System.out.println (x); else if ((y > x) && (y > z)) System.out.println (y); else System.out.println (z); Estrutura de Repetição: While FORMA GERAL: while ( < EXPRESSÃO > ) < BLOCO DE COMANDOS > 22

Estrutura de Repetição: While EXEMPLO: Soma de 1 a N... Scanner s1 = new Scanner(System.in); int i, n, s; n = s1.nextint (); i = 1; s = 0; while (i < = n) s = s + i; i = i + 1; System.out.println(s);... Estrutura de Repetição: Do While FORMA GERAL: do < BLOCO DE COMANDOS > while ( < EXPRESSÃO > ); 23

Estrutura de Repetição: Do While EXEMPLO: Soma de 1 a N...... int i, n, s; n = Util.readInt (); i = 1; s = 0; do s = s + i; i = i + 1; while (i < = n); System.out.println(s); Estrutura de Repetição: For FORMA GERAL: for ( < INICIALIZAÇÃO >; < TESTE >; < ATUALIZAÇÃO >; ) < BLOCO DE COMANDOS > 24

Estrutura de Repetição: For EXEMPLO: int soma = 0 ; for ( int i =1 ; i <= 100 ; i ++ ) soma = soma + i ;... Estrutura de Repetição: For EXEMPLO: int soma = 0 ; for ( int i =1, j =2; i <= 100 ; i ++, j ++ ) soma = soma + i + j ;... 25

Estrutura de Repetição: For EXEMPLO: int soma = 0 ; for ( int i =1, j =2, System.out.println(i); i <= 100 ; i ++, j ++ )... soma = soma + i + j ; Erro de compilação. Código feio. Estrutura de Repetição: For EXEMPLO: Código feio. int soma = 0 ; int i, j; for ( i =1, j =2, System.out.println(i); i <= 100 ; i ++, j ++ ) soma = soma + i + j ;... 26

Estrutura de Repetição: For EXEMPLO: int soma = 0 ; int i = 1; for (;;) soma = soma + i ; System.out.println(soma); i++;... Estrutura Case FORMA GERAL: switch ( < EXPRESSÃO > ) case x: < BLOCO DE COMANDOS > case y: case z: case w : < BLOCO DE COMANDOS > default: < BLOCO DE COMANDOS > 27

Estrutura Case char, byte, short ou int. switch ( i % 35 ) case 0: < BLOCO DE COMANDOS 1 > case 5: case 10: case 15 : < BLOCO DE COMANDOS 2 > default: < BLOCO DE COMANDOS 3 > Onde: % operador resto da divisão. Constant Expression. Opcional. Estrutura Case Saída: Case 0. int i = 0; switch (i) case 0: System.out.println("Case 0"); case 5: case 10: case 15 : System.out.println("Case 5, 10 ou 15"); default: System.out.println("Case Default"); 28

Estrutura Case Saída: Case 5, 10 ou 15. int i = 10; switch (i) case 0: System.out.println("Case 0"); case 5: case 10: case 15 : System.out.println("Case 5, 10 ou 15"); default: System.out.println("Case Default"); Estrutura Case Saída: Case Default. int i = 1; switch (i) case 0: System.out.println("Case 0"); case 5: case 10: case 15 : System.out.println("Case 5, 10 ou 15"); default: System.out.println("Case Default"); 29

Estrutura Case int i = 0; switch (i) case 0: System.out.println("Case 0"); case 5: case 10: case 15 : System.out.println("Case 5, 10 ou 15"); Saída: Case 0. Estrutura Case int i = 1; switch (i) case 0: System.out.println("Case 0"); case 5: case 10: case 15 : System.out.println("Case 5, 10 ou 15"); Saída: 30

Estrutura Case Saída: Case 5, 10 ou 15. int i = 5; switch (i) case 0: System.out.println("Case 0"); default: System.out.println("Case Default"); case 5: case 10: case 15 : System.out.println("Case 5, 10 ou 15"); Estrutura Case int i = 0; switch (i) case 0: System.out.println("Case 0"); case 5: case 10: case 15 : System.out.println("Case 5, 10 ou 15"); default: System.out.println("Case Default"); Saída: Case 0 Case 5, 10 ou 15 Case Default. 31

Estrutura Case int i = 0; switch (i) case 0: System.out.println("Case 0"); default: System.out.println("Case Default"); case 5: case 10: case 15 : System.out.println("Case 5, 10 ou 15"); Saída: Case 0 Case Default Case 5, 10 ou 15. Estrutura Case int i = 5; switch (i) case 0: System.out.println("Case 0"); case 5: case 10: case 15 : System.out.println("Case 5, 10 ou 15"); default: System.out.println("Case Default"); Saída: Case 5, 10 ou 15 Case Default. 32

Estrutura Case int i = 5; switch (i) case 0: System.out.println("Case 0"); default: System.out.println("Case Default"); case 5: case 10: case 15 : System.out.println("Case 5, 10 ou 15"); Saída: Case 5, 10 ou 15. Estrutura Case int i = 0; switch (i) case 0: System.out.println("Case 0"); case 5: case 10: case 15 : System.out.println("Case 5, 10 ou 15"); break; default: System.out.println("Case Default"); Saída: Case 0 Case 5, 10 ou 15. 33

Estrutura Case int i = 0; switch (i) default: System.out.println("Case Default"); break; case 0: System.out.println("Case 0"); case 5: case 10: case 15 : System.out.println("Case 5, 10 ou 15"); break; Saída: Case 0 Case 5, 10 ou 15. Estudo de Caso 34

A diferença entre problemas e dificuldades é que os primeiros têm solução. Roberto Civita Exercícios A série de fibonacci é formada pela seqüência: 1, 1, 2, 3, 5, 8, 13, etc. Escreva um programa que gera a série de fibonacci até o vigésimo termo. Faça um programa para calcular o fatorial de um número lido do teclado. Faça um programa que recebe uma frase (várias strings) como parâmetro e a imprime no vídeo. 35

Desafio Escreva um programa que faça o seguinte teste para os números entre 1 e 100: Se for múltiplo de 5 imprima: fizz ; Se for múltiplo de 7 imprima: buzz ; Se múltiplo de ambos imprima: fizzbuzz ; Use: args[ i ], para se referir a um valor passado como parâmetro. BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); e String line = in.readline( ); para ler uma string do teclado. Exemplo public class Fibonacci public static void main(string[] args) int current, prev = 1, prevprev = 0; System.out.print(prev + " "); for(int i = 0; i < 19; i++) current = prev + prevprev; System.out.print(current + " "); prevprev = prev; prev = current; 36

Exemplo public class Factorial public static void main(string args[]) int fact = 1; int numero; System.out.println("Digite um numero: "); numero = Util.readInt(); for(int i = 2; i <= numero; i++) fact *= i; System.out.println("O fatorial de " + numero + " e " + fact); 37