A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução á Programação em Java Abraão Ferreira Monteiro 6º Período de Sistemas de Informação UNIVERSITAS SECOMP 2009.

Apresentações semelhantes


Apresentação em tema: "Introdução á Programação em Java Abraão Ferreira Monteiro 6º Período de Sistemas de Informação UNIVERSITAS SECOMP 2009."— Transcrição da apresentação:

1 Introdução á Programação em Java Abraão Ferreira Monteiro 6º Período de Sistemas de Informação UNIVERSITAS SECOMP 2009

2 1. Histórico: A tecnologia Java foi criada como uma ferramenta de programação em computação, parte de um pequeno trabalho anônimo e secreto chamado "the Green Project" da Sun Microsystems em A equipe "Green Team", um grupo secreto formado por 13 pessoas e liderado por James Gosling, trancou-se em um escritório anônimo na Sand Hill Road em Menlo Park e trabalhou dia e noite por 18 meses, isolado de toda a comunicação com a Sun. Eles estavam tentando antever e planejar a "nova onda" na computação. Sua primeira conclusão foi que ao menos uma tendência significativa seria a convergência de computadores e de dispositivos controlados digitalmente. O resultado foi uma linguagem de programação não atrelada a dispositivos, apelidada de "Oak". Para demonstrar como o Java poderia impulsionar o futuro dos dispositivos digitais, a equipe Green Team desenvolveu um controlador portátil para sistemas de entretenimento doméstico voltado para o setor de televisão digital. A idéia estava muito à frente de seu tempo e o setor de TV digital não estava preparado para o incrível avanço oferecido pela tecnologia Java.

3 A Internet estava pronta para essa tecnologia e, em 1995, a equipe pôde anunciar que o navegador Netscape Navigator passaria a incorporar a tecnologia Java. A versatilidade, eficiência, portabilidade de plataforma e segurança fazem dela a tecnologia ideal para a computação em rede, de modo que, hoje, a tecnologia Java está presente em mais de dois bilhões e meio de dispositivos: - PCs; -Telefones celulares e outros dispositivos portáteis; - Smart cards; - Além de set-top boxes, impressoras, webcams, jogos, sistemas de navegação para automóveis, terminais lotéricos, dispositivos médicos, estações de pagamento de estacionamento, etc.

4 2. Tecnologia Java: J2SE (Core/Desktop): A plataforma Java 2 Standard Edition provê um ambiente para o sistema central do Java e para o desenvolvimento de aplicações Java em desktops, sendo a base para as tecnologias J2EE (Java 2 Enterprise Edition) e Java Web Services, tendo um compilador, ferramentas, runtimes e JAVA APIs, que permitem escrever, testar, desenvolver e executar applets e aplicações; J2EE (Enterprise/Server): A plataforma Java 2 Enterprise Edition define o padrão para desenvolver componentes baseados em aplicações empresariais multicamada e provê serviços adicionais, ferramentas e APIs para suportar o desenvolvimento simplificado das aplicações empresariais; J2ME (Mobile/Wireless): A plataforma Java 2 Micro Edition é um conjunto de tecnologias e especificações destinadas ao consumidor, com dispositivos como telefones móveis, PDAs e impressoras; Existe ainda as tecnologias Java Card, Java Web Services, XML, JSLEE, JAIN Initiative, Java Metadata Interface, Jini Network Technology, JXTA Technology, Java Dynamic Management Kit e OSS through Java Initiative.

5 Portável: Java foi criada para ser portável. O "byte-code" gerado pelo compilador para a sua aplicação específica pode ser transportado entre plataformas distintas que suportam Java (Solaris 2.3, Windows Server, Windows Seven, Mac/Os, etc). Não é necessário recompilar um programa para que ele rode numa máquina e sistema diferente, ao contrário do que acontece por exemplo com programas escritos em C e outras linguagens. Orientada a Objetos: A portabilidade é uma das características que se inclui nos objetivos almejados por uma linguagem orientada a objetos. Java suporta herança, mas não herança múltipla. A ausência de herança múltipla pode ser compensada pelo uso de herança e interfaces, onde uma classe herda o comportamento de sua superclasse além de oferecer uma implementação para uma ou mais interfaces. 3. Características da Linguagem:

6 Parecida com C, C++: Java tem a aparência de C ou de C++, embora a filosofia da linguagem seja diferente. Java também possui características herdadas de muitas outras linguagens de programação: Objective-C, Smalltalk, Eiffel, Modula-3, etc. Muitas das características desta linguagem não são totalmente novas. Java é uma feliz união de tecnologias testadas por vários centros de pesquisa e desenvolvimento de software. Segura: A presença de coleta automática de lixo, evita erros comuns que os programadores cometem quando são obrigados a gerenciar diretamente a memória (C, C++, Pascal ). A eliminação do uso de ponteiros, em favor do uso de vetores, objetos e outras estruturas substitutivas traz benefícios em termos de segurança. O programador é proibido de acessar a memória que não pertence ao seu programa. A presença de mecanismos de tratamento de exceções torna as aplicações mais robustas, não permitindo que elas abortem, mesmo quando rodando sob condições anormais.

7 Suporta concorrência: A linguagem permite a criação de maneira fácil, de vários "threads" de execução. Particularmente útil nos ambientes em que aplicações Java são suportadas, ambientes estes que geralmente podem mapear os threads da linguagem em processamento paralelo real. Eficiente: Como Java foi criada para ser usada em computadores pequenos, ela exige pouco espaço, pouca memória. Java é muito mais eficiente que grande parte das linguagens de "scripting" existentes, embora seja cerca de 20 vezes mais lenta que C, o que não é um marco definitivo. Com a evolução da linguagem, serão criados geradores de "byte-codes" cada vez mais otimizados que trarão as marcas de performance da linguagem mais próximas das de C++ e C. Suporte para programação de sistemas distribuídos: Java fornece facilidades para programação com sockets, TCP/IP, entre outros.

8 4. Bytecodes: O código de um programa de computador escrito na linguagem Java é transformado para uma forma intermediária de código denominada bytecode, que é interpretada pelas Máquinas Virtuais Java (JVMs). É essa característica que faz com que os os programas Java sejam independentes de plataforma, executando em qualquer sistema que possua uma JVM. Cada opcode tem o tamanho de um byte daí o seu nome e assim o número de diferentes códigos de operação está limitado a 256. Os 256 possíveis valores para códigos de operação não são todos utilizados.

9

10 Bytecode Visualizer 3.3

11 Em Java, classes são definidas através do uso da palavra-chave class. Para definir uma classe, utiliza-se a construção: [modif] class NomeDaClasse { // corpo da classe... } A primeira linha é um comando que inicia a declaração da classe. Após a palavra-chave class, segue-se o nome da classe, que deve ser um identificador válido para a linguagem. O modificador modif é opcional; se presente, pode ser uma combinação de public e abstract ou final. A definição da classe propriamente dita está entre as chaves { e }, que delimitam blocos na linguagem Java. Este corpo da classe usualmente obedece à seguinte seqüência de definição: 1. As variáveis de classe, iniciando pelas public, seguidos pelas protected, pelas com visibilidade padrão (sem modificador) e finalmente pelas private. 5. Classes: (Abstração)

12 2. Os atributos (ou variáveis de instância) dos objetos dessa classe, seguindo a mesma ordenação definida para as variáveis de classe. 3. Os construtores de objetos dessa classe. 4. Os métodos da classe, geralmente agrupados por funcionalidade. Toda classe pode também ter um método main associado, que será utilizado pelo interpretador Java para dar início à execução de uma aplicação. Java também oferece outra estrutura, denominada interface, com sintaxe similar à de classes mas contendo apenas a especificação da funcionalidade que uma classe deve conter, sem determinar como essa funcionalidade deve ser implementada. Propriedades de uma classe (meta-informação) podem ser obtidas através das funcionalidades oferecidas na classe java.lang.Class.

13 // Comentário de uma linha public class HelloWorld { private static String str = Hello World!; public HelloWorld(){ } private static void escreverMensagem(){ System.out.println(str); } public static void main (String args[]) { escreverMensagem(); }

14

15 6. Objeto: Uma classe define um tipo de dado. Ela não pode ser usada a não ser que seja instanciada. A exemplo dos tipos de dados primitivos os quais somente podem ser usados quando uma variável de um determinado tipo é declarada, devemos criar uma instância. Uma instância é um objeto do tipo definido pela classe. Qualquer classe (desde que não seja abstract) pode ser instanciada como qualquer outro tipo de dado da linguagem Java. O trecho de código abaixo exibe uma classe chamada Geometria criando um a instância da classe Vértice: public class Geometria { Vértice v = new Vértice(1.2, 3.5);... } A diferença mais evidente entre a declaração de um objeto de uma classe e a declaração de um dado primitivo reside na necessidade de reservar memória para o objeto através do uso do operador new. Na verdade, esse operador realiza uma série de tarefas: Reserva espaço na memória para a instância da classe Vértice, o qual deve ser suficiente para conter seu estado, isto é, os valores dos seus campos. Realiza a chamada do método construtor. Retorna uma referência para o novo objeto (o qual é atribuído à variável v).

16 7. Encapsulamento: Os objetos contém atributos e métodos. O encapsulamento trata de dar alguma segurança aos objetos. Exemplo: Um objeto Cliente por exemplo tem atributos como qualquer outro e estes não podem ser acessados por qualquer outro objeto diretamente. Existem dois tipos de atributos, os privados e os publicos. Em UML e OO (orientação a objetos) é definido que para atributos privados usa-se o sinal de - antes do nome e para atributos publicos usa-se o sinal de + antes do nome.

17 Para que o encapsulamento exista é preciso deixar os atributos privados e os métodos públicos, assim está sendo garantido que os valores atribuídos aos atributos serão sempre respeitados pelas regras existentes. Exemplo: O atributo CPF deve sempre ter 11 números, se o atributo não for privado, ele perde essa regra (11 números) pois alguém poderia acessar e colocar 12 ou 9 números tornando-o inválido. Como os atributos privados não podem ser acessados diretamente por outros objetos, existem os métodos públicos que são os responsáveis em acessar os atributos e trazer ou levar algum dado para o objeto respeitando as regras.

18 8. Herança: O que torna a orientação a objetos única é o conceito de herança que no inglês significa inheritance. Herança é um mecanismo que permite que características comuns a diversas classes com comportamentos comuns ou parecidos, sejam abstraídas e centralizadas em uma classe base, ou superclasse. Tem uma relação É um. Exemplo: Um Jaguar é um carro. Logo ele foi herdado da classe carro, pois contém as características comuns de um carro. A partir dessa superclasse outras classes podem ser especificadas. Portanto uma subclasse que é uma classe herdada da superclasse recebe sem codificação extra as características da superclasse. Ainda podemos adicionar elementos particulares a está subclasse. Na linguagem Java uma subclasse somente pode herdar uma única superclasse diretamente.

19

20 Exemplo: public class Veiculo { protected String modelo; public void setModelo(String modelo) { this.modelo = modelo; } public String getModelo(){ return this.modelo; } Existem vários tipos de veículos. Dentre os quais podemos citar Carro, moto, etc... Alguns veículos possuem características específicas. Portanto não seria interessante colocarmos os atributos de todos os veículos dentro da classe Veículo. Aí que surge o conceito de herança. Podemos criar uma classe específica para cada tipo de veiculo, como será mostrado a seguir.

21 public class Carro extends Veiculo { private String categoria; public void setCategoria(String categoria) { this.modelo = categoria; } public String getCategoria(){ return this.categoria; } A palavra reservada extends indica que a classe Carro é filha da classe Veículo. A classe Carro irá herdar atributos e métodos da classe Veiculo que não estejam com o modificador private. Por exemplo, todas as classes que herdarem da classe Veículo terão o atributo modelo.

22 9. Polimorfismo: Analisando a palavra Polimorfismo, ela significa muitas formas. Ou seja, para uma árvore de herança, temos muitas formas de objetos e métodos a partir de uma superclasse e suas subclasses. Polimorfismo é o princípio pelo qual usamos objetos construídos a partir de uma árvore de herança, através de referências do tipo de uma superclasse da hierarquia. Formas de polimorfismo: Subclasses Sobrescrita de método Sobrecarga de método ou construtor

23 10. Tipos de Dados: boolean Pode assumir o valor true ou o valor false char Caractere em notação Unicode de 16 bits. Serve para a armazenagem de dados alfanuméricos. Também pode ser usado como um dado inteiro com valores na faixa entre 0 e byte Inteiro de 8 bits em notação de complemento de dois. Pode assumir valores entre -2 7 =-128 e =127. short Inteiro de 16 bits em notação de complemento de dois. Os valores possívels cobrem a faixa de = a = int Inteiro de 32 bits em notação de complemento de dois. Pode assumir valores entre = e =

24 long Inteiro de 64 bits em notação de complemento de dois.Pode assumir valores entre e float Representa números em notação de ponto flutuante normalizada em precisão simples de 32 bits em conformidade com a norma IEEE O menor valor positivo representável por esse tipo é e-46 e o maior é e+38 double Representa números em notação de ponto flutuante normalizada em precisão dupla de 64 bits em conformidade com a norma IEEE O menor valor positivo representável é e-324 e o maior é e+308

25 11. Vetores e Matrizes: // 12 primeiros termos da seqüência de Fibonacci: long Fibonacci[] = {1,1,2,3,5,8,13,34,55,89,144}; // Tabela de sen(n*pi/6), sendo n = 0,1,2,...5 float seno[] = {0.0000,0.5000,0.8660,1.0000,0.8660,0.5000}; // Tabela de log(1+n), sendo n = 0,2...99: double tlog[] = new double[100]; for(int n=0; n<100; n++) tlog[i] = Math.log(1+n); // Matriz dos coeficientes double A[][][] = { {1,2,3}, {0,1,3}, {0,0,-1} };

26 13. Execução Condicional: a)if([condição]) [comando 1] // Executado se a condição for true else [comando 2] // Executado se a condição for false Exemplo: if(x<2) System.out.println(Valor de x MENOR que 2); else System.out.println(Valor de X MAIOR ou IGUAL a 2); b) [expressão condicional] ? [expressão 1] : [expressão 2] c) if ([condição 1]) [comando 1] else if ([condição 2]) [comandos 2]) else if ([condição 3]) [comando 3].... else [comando n]

27 d) switch([expressão]) { case [constante 1]: [comando 1] break; case [constante 2]: [comando 2] break;... case [constante n]: [de comando n] break; default: [comando] } Exemplo: public class test { public static void main(String args[]) { int op = 2; System.out.print("valor de op e: + op) switch(op) { case 1: System.out.println("case 1: op="+op); break; case 2: System.out.println("case 2: op="+op); break; case 3: System.out.println("case 3"+op); break; default: System.out.println("default: op nao esta no limite 1..3"); }

28 14. Laço de iteração: a)for ([expressão 1]; [condição]; [expressão 2]) [comando] Exemplo: for(int i=0; i<10; i++) System.out.println(i); b)while([condição]) [comando subjacente] c)do [comando] while([condição]);

29 import java.io.StreamTokenizer; public class sqrt { public static void main(String args[]) { double x; StreamTokenizer inp = new StreamTokenizer(System.in); // Lê um dado double a partir do teclado System.out.print("x = "); System.out.flush(); try { inp.nextToken(); x = inp.nval; } catch(java.io.IOException e) { x = 0; } // Decide se é possível calcular a raiz quadrada do // número dado. Sendo possível, calcula. Do contrário // emite uma mensagem de aviso if(x >= 0) System.out.println("raiz quadrada de x e " + sqrt(x)); else System.out.println("x e negativo"); }

30 Exercícios 1) Escreva uma classe que quando instanciada receba dois valores inteiros. Dentro da classe esses dois valores devem ser somados e retornados para a classe que a instanciou. 2) Escreva um loop de repetição de 1 até 100 que a cada múltiplo de 10 retorne o caractere * na tela. 3) No tópico (1) retorne agora os dois valores somados 5 vezes.

31 15. AWT e Swing: A API (Application Programming Interface) para utilizar recursos gráficos é separada em dois componentes principais: – AWT(Abstract Windowing Toolkit): Contém o conjunto de classes necessárias para a construção de programas com interfaces de janelas. – SWING: Contém o conjunto de classes complementares para a construção de interfaces avançadas (somente em Java 1.2)

32

33 16. JOptionPane: // Default title and icon JOptionPane.showMessageDialog(null, "Eggs are not supposed to be green.", "Message"); // Custom title, warning icon JOptionPane.showMessageDialog(null, "Eggs are not supposed to be green.", "Inane warning", JOptionPane.WARNING_MESSAGE); // Custom title, error icon JOptionPane.showMessageDialog(null, "Eggs are not supposed to be green.", "Inane error", JOptionPane.ERROR_MESSAGE); // Custom title, no icon JOptionPane.showMessageDialog(null, "Eggs are not supposed to be green.", "A plain message", JOptionPane.PLAIN_MESSAGE); // Custom title, custom icon JOptionPane.showMessageDialog(null, "Eggs are not supposed to be green.", "Inane custom dialog", JOptionPane.INFORMATION_MESSAGE, icon);

34 // Default icon, custom title int n = JOptionPane.showConfirmDialog( null, "Would you like green eggs and ham?", "An Inane Question", JOptionPane.YES_NO_OPTION); Object[] options = {"Yes, please", "No way!"}; int n = JOptionPane.showOptionDialog( null, "Would you like green eggs and ham?", "A Silly Question", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, //do not use a custom Icon options, //the titles of buttons options[0]); //default button title

35

36 17. NetBeans 6.7.1:

37 18. Eclipse:

38 Exercícios 1) Criar um JFrame que leia dois valores inteiros e exiba a soma deles em um JTextField. 2) Criar um JFrame que exiba o resultado em um outro JFrame. 3) Criar um JFrame com menu que permita o usuário selecionar a opção de somar ou subtrair dois números inteiros e exiba o resultado em um outro JFrame.

39 Agradeço a Atenção! UNIVERSITAS SECOMP 2009

40 Bibliografia 1.http://www.dm.ufscar.br/~waldeck/curso/java/ 2.http://www.webmonkey.com/tutorial/Program_In_Java_-_Part_1 3.http://www.ic.unicamp.br/~cmrubira/aacesta/java/javatut9.html 4.http://www.dca.fee.unicamp.br/cursos/PooJava/classes/definicao.html 5.http://www.devbr.net/tutoriais/53.html?task=view 6.http://java.sun.com/docs/books/tutorial/uiswing/components/dialog.html


Carregar ppt "Introdução á Programação em Java Abraão Ferreira Monteiro 6º Período de Sistemas de Informação UNIVERSITAS SECOMP 2009."

Apresentações semelhantes


Anúncios Google