Universidade Federal do Paran Linguagem Orientada a Objetos Prof.
Rafael Romualdo Wandresen
Semana 1 Introduo ao Java
Rafael Romualdo Wandresen Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 2 Introduo SO Linguagens Aplicativos Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 3 Programas UCP Memria RAM Disco Rgido Sada em Vdeo Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 4 Programas Os equipamentos no tm iniciativa; O conjunto de tarefas para cumprir um certo objetivo chamado de programa ou software; Usamos programas para fazer tudo em um computador;
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 5 Linguagens A UCP de um computador s entende instrues de linguagens de baixssimo nvel,a linguagem de mquina; As pessoas utilizam uma linguagem de altssimo nvel, a linguagem natural; Como a distncia entre a linguagem natural e a de mquina muito grande, foram criadas linguagens intermedirias;
UCP Linguagem de Mquina Assembler SO Linguagens de Alto Nvel Linguagens de Altssimo Nvel Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 6 Linguagens Os programas so executados atravs de instrues; Na linguagem de mquina, estas instrues so comandos que realizam operaes simples, como pegue um byte da memria e coloque no registrador; 1011001 000111001 10111010 Voc conseguiria escrever instrues desta forma? Linguagem Montadora: Assembler; ADD R1,X Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 7 Linguagens Como adicionar o contedo da posio X da memria ao contedo da posio Y? Assembler Comentrios LD R1, X Carregue (LOAD) o registrador R1 com o contedo da posio de memria X ADD R1,Y Adicione o que estiver na posio Y ao registrador R1 LD X, R1 Armazene o resultado (em R1) na posio X da memria RTN Termine a execuo (RETURN) Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 8 Como fazer com que o computador nos entenda? Meio-termo entre a linguagem Assembler e a natural; Atualmente existem centenas de linguagens de alto nvel que fazem esta traduo; Exemplos? O espao de memria ocupado pelas linguagens crescem exponencialmente quando aumenta o nvel da linguagem; Linguagens de nvel mais baixo so mais rpidas; Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 9 Linguagens de Alto Nvel Uma linguagem qualquer um conjunto de palavras e regras de sintaxe (para agrupamento dessas palavras); Cdigo fonte o programa escrito na linguagem original e que precisa ser traduzido para poder ser executado; Programa objeto o resultado da traduo quando usamos um compilador;
program Teste; Var x : integer;
Begin writeln (Teste) End; UCP 1000111100011110110101010101 Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 10 Traduo do Programa O processo de traduo pode ser feito por dois tipos de tradutores: os compiladores e os interpretadores;
TRADUO Interpretada Compilada Opera s com o programa FONTE A partir do FONTE gera o OBJETO Programa Fonte Tradutor Programa Objeto Execuo COMPILADOR INTERPRETADOR Linguagem de Mquina Execuo de Todo o Programa Executa a Instruo e Volta LINGUAGEM DE ALTO NVEL Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 11 Traduo do Programa Interpretao: implica mais tempo de execuo, pois interpreta cada comando ao execut-lo, mas evita ter de, a cada alterao do fonte, compilar tudo de novo; Compilao: l, analisa e traduz todo o programa fonte, criando o programa objeto que corresponde s instrues em linguagem de mquina. mais rpido na execuo que o modo interpretado;
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 12 Paradigmas de Linguagens Paradigma Imperativo (Procedural ou Estruturado); Paradigma Funcional; Paradigma Lgico; Paradigma Orientado a Objetos Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 13 Paradigma Imperativo Os recursos centrais das linguagens baseadas no paradigma imperativo so as variveis, as quais modelam as clulas de memria, as instrues de atribuio e a forma iterativa de repetio;
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 14 Paradigma Funcional A linguagem baseada no paradigma funcional aquela cujo principal meio de fazer computaes aplicando funes a determinadas parmetros; A programao feita sem o uso de variveis e instrues, como feito na linguagem imperativa;
Exemplo: LISP
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 15 Paradigma Lgico As linguagens baseadas no paradigma lgico so baseadas em regras. As regras so especificadas sem uma ordem particular e o sistema de implementao deve escolher uma ordem de execuo que produza o resultado desejado;
Exemplo: PROLOG;
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 16 Paradigma Orientado a Objetos um modelo em que o programa consiste de objetos que enviam mensagens entre si; Exemplos: Simula, Smaltalk, C++, Java; Linguagens Orientadas a Eventos: Contemplam a existncia de objetos, com eventos associados a eles (ex. Access);
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen Popularidade entre os paradigmas 17 Fonte: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html. Acessado em 13/04/2013 Category Ratings Apr 2013 Delta Apr 2012 Object-Oriented Languages 59.2% +1.4% Procedural Languages 36.1% -0.1% Functional Languages 3.1% -0.8% Logical Languages 1.6% -0.5% Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen Popularidade entre as linguagens de programao 18 Fonte: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html Acessado em 13/04/2013 Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen Popularidade entre as linguagens de programao 19 Programming Language Position Apr 2013 Position Apr 2008 Position Apr 1998 Position Apr 1988 C 1 2 1 1 Java 2 1 3 - C++ 3 3 2 5 Objective-C 4 42 - - C# 5 8 - - PHP 6 4 - - (Visual) Basic 7 5 4 8 Python 8 7 28 - Perl 9 6 6 21 Ruby 10 10 - - Lisp 13 16 12 2 Ada 21 17 14 3
Fonte: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html Acessado em 13/04/2013 Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen Em 1991, na Sun Microsystems, foi iniciado o Green Project, o bero do Java Criar uma nova gerao de computadores portteis inteligentes Os mentores do projeto eram Patrick Naughton, Mike Sheridan e James Gosling Props uma nova linguagem Oak (carvalho) Em 1993, a equipe apresentou um prottipo funcional: *7 (leia-se "StarSeven"), um PDA
Introduo Histrico Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen O Duke foi criado como um guia virtual ajudando e ensinando o usurio a utilizar o equipamento A equipe achava que uma boa ideia seria aplicar a tecnologia para TV a cabo interativa
A sorte que o boom da Internet aconteceu, e rapidamente uma grande rede interativa estava se estabelecendo Introduo Histrico Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen Gosling foi incumbido de adaptar o Oak para a Internet e em janeiro 1995 foi lanada uma nova verso rebatizada para Java uma linguagem de programao de alto nvel e orientada a objetos Java (Jawa) a segunda maior e a principal ilha da Indonsia Em Javans, java significa caf
Introduo Histrico Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen Em 1995 a Sun criou os Applets para rodar pequenas aplicaes nos browsers. Em 1999 foi lanado o J2EE Em 2004 Java atingiu a marca de 3 milhes de desenvolvedores em todo mundo. Em 2011 j eram mais de 9 milhes (FONTE: http://oracle.com.edgesuite.net/timeline/java/) Java tornou-se popular pelo seu uso na Internet: web browsers, mainframes, SOs, celulares, palmtops, cartes inteligentes, ... Em 2010 a Oracle assumiu os direitos Introduo Histrico Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 25 Introduo O que Java? Linguagem de Programao (de alto nvel) Plataforma
Fonte: http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 26 Introduo O que Java? Plataforma ambiente de hardware ou software no qual um programa executa. Plataforma Java ambiente unicamente de software que executa sobre uma plataforma de hardware. JVM Java Application Programming Interface (API) Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 27 Introduo O que Java? - Definio Segundo Peter Jandl Junior: O Java uma linguagem de programao de propsito geral, concorrente, baseada em classes e orientada a objetos. Foi projetada para ser simples o bastante para que a maioria dos programadores se torne fluente na linguagem. A linguagem Java tem relao com o C e C++, mas organizada diferentemente, com vrios aspectos de C e C++ omitidos e algumas idias de outras linguagens includas.
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 28 Introduo O que Java? - Definio Segundo Oracle: A tecnologia Java uma linguagem de programao (de alto nvel) e uma plataforma de desenvolvimento. Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 29 Introduo Caractersticas Linguagem Orientada a Objetos Simples Portvel (write once, run anywhere) Robusta e segura Compilada para byte-code e Interpretada pela JVM Multi-Thread Possui uma extensa API para ser utilizada Garbage Collector
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 30 Introduo Caractersticas e Vantagens No Portvel: Processo de compilao do programa em C:
Portvel: Processo simplificado de desenvolvimento com Java:
Fonte: http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 31 Introduo Caractersticas e Vantagens Portvel: JVM (Java Virtual Machine) Hardware (Intel, HPUX, Solaris) Sistema Operacional (Windows, Linux, Unix) Java Virtual Machine HelloWorldApp.class Fonte: http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 32 Java API A plataforma Java possui uma extensa API, que potencializa a velocidade de programao. A API Java consiste de pacotes de classes. Exemplo: Leitura e escrita de arquivos (java.io); Construo de interfaces grficas (javax.swing); Criptografia (java.crypto); Parser para tipos primitivos (java.lang); Outros; Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 33 Organizao Plataforma Java Atualmente, a plataforma Java est organizada nos seguintes segmentos principais: JavaSE (Java Standard Edition) : Integra os elementos padro da plataforma e permite o desenvolvimento de aplicaes de pequeno e mdio porte. Inclui todas as APIs de base e a JVM; JavaEE (Java Enterprise Edition) : Voltada para o desenvolvimento de aplicaes corporativas complexas; JavaME (Java Micro Edition) : Destinado a pequenos dispositivos computacionais mveis, como celulares, PDAs e set-top boxes; Java FX : Destinado a criao e implementao de contedo (especialmente para Internet) para browsers, desktop, celulares, TV e outros dispositivos conectados.
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 34 Verses O kit bsico de desenvolvimento de software Java chamado de JDK (Java Standard Edition Development Kit);
Ano Verso Verso Interna 1996 1.0 1.0 1997 1.1 1.1 1998 1.2 1.2 2000 1.3 1.3 2002 1.4 1.4 2004 5 (Tiger) 1.5 2006 6 (Mustang) 1.6 2011 7 (Dolphin) 1.7 Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 35 JDK, JRE e API Java Java SE: Java Development Kit (JDK) + Java SE Runtime Environment (JRE) JDK contm a JRE Java API est contida na JRE Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 36 Ambiente de Desenvolvimento JDK: Baixar JDK 7 em: http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9- downloads-1859576.html Preste ateno no SO instalado na sua mquina. Duvidas instalao: http://docs.oracle.com/javase/7/docs/webnotes/install/index.html Ambientes Linha de Comando: Programao Editor de Textos simples (NotePad), compilao e execuo em linha de comando Ambiente IDE (Integrated Development Enviorment). Ex.: Eclipse ou NetBeans. Facilita Debug, empacotamento, escrita de cdigo, testes unitrios, etc.
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 37 Ambientes de Desenvolvimento DOS Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 38 Ambiente de Desenvolvimento Grfico Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 39 Dica: Configurao do ambiente Variveis de ambiente Painel de Controle\Sistema e Segurana\Sistema\Configuraes Avanadas de Sistema\ Variveis de Ambiente PATH: Ajustar para ter o caminho completo de onde se encontra java.exe, javac.exe, javadoc.exe, etc. C:\Program Files\Java\jdk\bin CLASSPATH . Para acentuao no PROMPT de comando Modificar a fonte para Lucida Console Executar o comando chcp 1252 antes da execuo. Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 40 Estrutura de um programa em Java Um programa em Java pode ser composto de um ou mais arquivos-fonte (.java), que podem conter: Uma declarao de pacote (package); Uma ou mais diretivas de importao (import); Uma ou mais declaraes de classe (class); Uma ou mais declaraes de interface (interface);
Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 41 Um programa em Java Todo programa deve ter, no mnimo, uma classe com o mtodo main (String []) que define seu incio;
class MeuPrograma { //Classe public static void main(String[] args){//Mtodo System.out.println("Minha primeira aplicao Java!!");//Comando de impresso na tela } } ATENO! Java diferencia maisculas e minsculas! COMENTRIOS Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 42 Compilao e Execuo Com o JDK necessrio usar um prompt de comando do Windows ou Linux para efetuar a compilao e execuo de um programa Java; Compilador Java: javac [-opes] <fonte.java> Mquina Virtual Java: java [-opes] <classe> Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 43 Compilao do Hello World A compilao do programa HelloWorld.java usa o comando: javac MeuPrograma.java Ateno! Este comando deve ser executado no diretrio onde est o arquivo java; Se tudo der certo, nenhuma mensagem ser mostrada e ser criado o arquivo HelloWord.class; ATENO! A extenso do arquivo includa no comando Universidade Federal do Paran Linguagem Orientada a Objetos Prof. Rafael Romualdo Wandresen 44 Execuo do HelloWorld Para executar o programa HelloWorld preciso acionar a JVM com o comando: java HelloWorld ATENO! A extenso do arquivo NO includa no comando