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

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

Analisando o Java: principais conceitos, apresentados em um enfoque comparativo com o C++. Eng. Luciano Santos Driemeier COMET DPM/FEM UNICAMP.

Apresentações semelhantes


Apresentação em tema: "Analisando o Java: principais conceitos, apresentados em um enfoque comparativo com o C++. Eng. Luciano Santos Driemeier COMET DPM/FEM UNICAMP."— Transcrição da apresentação:

1 Analisando o Java: principais conceitos, apresentados em um enfoque comparativo com o C++. Eng. Luciano Santos Driemeier COMET DPM/FEM UNICAMP

2 Estrutura da Apresentação 1. Motivação 2. Introdução 3. Compilando e Executando em Java 4. Estrutura de Dados e Gerenciamento de Memória 5. Classes, Objetos e Herança 6. Applets: o Java e a Internet 7. Ferramentas Úteis 8. Dicas para Design no Rose 9. Projeto BIA 10.Tendências 11. Referências Conteúdo

3 Objetivos e público alvo - Descrever e acabar com eventuais mitos a respeito do Java. - Apresentação direcionada a comparação das linguagens CONCEITUAL. - Apresentação de recursos que podem ser destacados pela eficiência ou utilidade no Java. - Não é objetivo apresentar conceitos de OOP ou OOD. Motivação

4 Histórico: Projeto Green - Histórico baseado na entrevista dos criadores do Java a revista online SunWorlds (jul/95). - Antes de 91 - Motivação - criação de uma linguagem compacta para ser usada em equipamentos domésticos. - Pela aplicação o produto deveria: - usar pouca memória; - executar em diferentes CPUs. - O projeto recebeu o nome Green. Introdução

5 Histórico: Viabilizando a Idéia Conceito: gerar um código intermediário para máquinas hipotéticas. - Máquinas hipotéticas Virtual Machines JVM Java Virtual Machine - O código poderia ser lido em toda máquina que tivesse o interpretador adequado. - Como o background dos programadores da Sun é UNIX, o Java foi baseado em C++. Introdução

6 Histórico: Do Primeiro Produto ao Sucesso - *7 - primeiro produto. Não despertou interesse dentro da Sun e o departamento comercial não conseguiu clientes para o produto. - Mudança de nome. (First Person) - Paralelamente ao desenvolvimento do produto, a WWW (93/94) crescia muito. - Navegador Mosaic escrito, em parte, por Marc Andreessen (em sua graduação a US$ 6,80 por h). Introdução

7 Histórico: Do Primeiro Produto ao Sucesso - Dentro da Sun, surgiu a idéia da aplicação na WWW. - As motivações do projeto se encaixavam nos maiores desafios da rede. - O grande salto do Java foi quando a Netscape lançou sua versão Java Enabled. - Após a Netscape, os demais navegadores também lançaram suas versões Java Enabled. Introdução

8 O que é o Java? - O Java é uma linguagem de programação: - simples; - orientada a objetos; - de arquitetura neutra; - portável; - interpretada. Introdução

9 Inverdades sobre o Java. - O Java é uma extensão do HTML. - Todos os programas em Java são executados em uma página da Web. - O Java é uma linguagem fácil de programar. - O Java será uma linguagem de programação universal. - O Java é interpretado, portanto muito lento para aplicações sérias. Introdução

10 Compilando em Java - O Java não faz distinção entre arquivos de: Interface (declaração) Implementação (definição) - Toda a classe Java está definida e declarada em um arquivo de extensão.java com o mesmo nome da classe. - Existem, atualmente, muitos compiladores para o Java (inclusive o Visual J++). - O compilador padrão JDK, fornecido pela Sun, é gratuito. Compilando e Executando

11 Compilando em Java - Utilizando o JDK fornecido pela Sun: c:\>javac MyClass.java - O compilador vai gerar um arquivo interpretável chamado MyClass.class. - Para interpretar o arquivo deve-se executar o seguinte comando: c:\>java MyClass - Todos os. class necessários devem ser fornecidos. Compilando e Executando

12 O Compilador Java - Os compiladores em Java são muito mais rígidos que os compiladores em C++. - Esta característica do compilador facilita portar o código entre as linguagens. - O compilador JDK é case sensitive para interpretar mas não para compilar. - O JDK é um compilador de console, portanto tem algumas limitações. Compilando e Executando

13 Diferenças entre Java e C++ - O Java não define as funções de pré-processador #. - As diretivas de #if e #ifdef são menos necessárias em Java. Em geral, servem para marcar código em linguagem específica. Compilando e Executando A diretiva #

14 Diferenças entre Java e C++ - Como ficam os #includes ? - Os compiladores do Java e C++ trabalham de maneira muito diferente nesta questão. - Organizar as classes Java em packages, para tornar o projeto mais organizado. - Importar os packages necessários para cada uma de suas classes. Compilando e Executando

15 Diferenças entre Java e C++ - O import do Java é absolutamente diferente do #include do C++. - O compilador do C++ somente abrirá os arquivos especificados por completo no include. - O compilador Java abrirá o arquivo que for necessário, bastando indicar onde procurar. - O import é apenas uma questão de conveniência. Pode- se evitar por completo o import (o include não). Compilando e Executando

16 As maiores diferenças - Neste ponto estão as grandes diferenças: JAVA NÃO TEM PONTEIROS. JAVA NÃO POSSUI DESTRUTORES. - Comentar as principais diferenças e abordar com maior profundidade as frases acima. ED e GM

17 Tipos Inexistente - O Java não define o tipo enumerado - Solução: declarar variáveis public static final byte (solução não segura). - Pois, infelizmente, o Java não define o const. - Declarar classes do tipo enumerado. - Única maneira de conseguir dados seguros: declará-los em classes constantes. ED e GM

18 Ponteiros - Os dados em Java se comportam mais como ponteiros que como valores. - Um outro ponto de vista: tudo no Java é ponteiro. - O argumentação para afirmação anterior é consistente. ED e GM Ponteiros

19 Destrutores - Os dados em Java não precisam ser destruídos. NÃO É NECESSÁRIO se preocupar com vazamentos de memória. - Sistema garbage-collection implementado evita que o programador tenha que desalocar seus dados. - Fazendo uma variável igual a null o programador pode forçar o dado a ser recolhido antes do fim do escopo. ED e GM

20 Definições: Modificadores - Como no C++ os dados e métodos podem ser declarados como public, protected e private. - O processo de dynamic cast permanece inalterado. - O modificador static permanece inalterado. - Criando classes estáticas: variáveis e funções pertencem a classe e não a uma instância desta. Objetos e Classes

21 Definições: Modificadores - O Java não define o modificador friend. Java has no friends. - Uma solução para o problema, sem ter de declarar os dados como públicos, é fazer os dados e métodos package private. Objetos e Classes Classe friend.

22 Definições: Herança - Polimorfismo: os conceitos de orientação a objetos mais fortes no Java. - Diferença quando um método é chamado no C++ e no Java. - Conceito de late binding: late binding - o compilador não gera o código a ser executado por um método em tempo de compilação. Objetos e Classes

23 Definições: Herança - Não é necessário declarar um método em Java como virtual. Este é seu comportamento padrão. - Pode-se prevenir a herança declarando métodos e classes como final. - Classes finais não podem gerar herdeiras. - Métodos finais não podem ser sobrecarregados pela herança. Objetos e Classes

24 Definições: Múltipla Herança - O Java não permite a múltipla herança. - Em Java uma classe pode ter uma única classe mãe. - Esta exclusão foi proposital pois a múltipla herança torna os compiladores muito complexos (C++) ou ineficientes (Eiffel). - Para contornar o problema da herança múltipla foram criadas as interfaces. Class X extends Y implements Z Objetos e Classes

25 Facilidades do Java - Supõe-se ser o Java a melhor ferramenta para conectar computadores a Internet. - Um programador C\C++ ficará surpreso ao descobrir quão fácil é implementar códigos em Java. - Java permite a criação de Applets - Applets são programas escritos em Java e executados em uma página da Web via um navegador como o Netscape. Applets: o Java e a Internet.

26 Applets: Funcionamento - Existem três formas de visualizar o funcionamento de um applet: - usando o AppletViewer da Sun; - carregando uma página local no navegador; - dando uma URL para o navegador carregar o arquivo. Applets: o Java e a Internet. Applets

27 Native Methods e Multithread - É possível importar um método escrito em C para um código em Java. - É possível que um código em C chame um método em Java. - O Java tem implementação fácil de multithreads Ferramentas Úteis Multithread.

28 Rose - A interface para design no Rose para Java é muito parecida com a do C++. - A geração de código é mais simples tanto nas opções de o que gerar quanto na questão das áreas de preserve. - Criar uma variável de projeto para não ter problemas com componentes. Dicas para Design no Rose

29 Descrição do Programa - O programa resolve os problemas de viga, barra e eixos da Resistência dos Materiais. - Tem como ferramenta matemática as funções singularidade. - As funções de singularidade são capazes de representar esforços. Uma vez construída a equação de carregamento apropriada, basta integrá-la. - A versão sem interface visual recebe um arquivo texto com os dados do problema e devolve um arquivo html de solução. Projeto BIA

30 Classes e Funcionamento - O programa está estruturado em 8 pacotes e 28 classes (sem as classes de interface visual). Projeto BIA Problem Equations Material CrossSectionBoundaryCond Maths Loads Auxiliar

31 O Java Hoje - O Java, como outras linguagens de programação, tem pontos positivos e negativos em sua aplicação. - Sua principal aplicação ainda está na Internet. - Há muita especulação sobre o Java. O que se pode afirmar é que até mesmo o C++ não tem uma aplicação universal. - Microsoft's next IE browser, quite likely to continue to dominate the browser universe, will supposedly not even have Java included at all. Tendências

32 Referências Core Java - second edition Gary Cornell & Cay Horstmann Sun Microsystems Java CookBook Porting C++ to Java Taligent White Papers - Rational Rose 98i - Using Java Manual Aprenda em 24 horas C++ Editora Campus Jesse Liberty Referências

33 Compilar em C++ O processo de compilação do C++ primeiramente executa o pré-processador O pré-processador procura pelo seu chamado # O pré-processador cria um arquivo temporário que será compilado. São criados os.obj que são linkados em um único programa. Voltar

34 Classe Friend Uma maneira de conseguir sustentar o encapsulamento dos dados e fornecer acesso a dados e métodos privados. Classes declaradas como friend tem acesso a dados e métodos privados de suas amigas. Lembrando que a relação de amizade não se herda, não se compartilha e não é mútua. Voltar

35 Multithreads Multitasking O computador emula processamento simultâneo de tarefas. Thread traz o conceito de Multitasking no nível de um programa. Voltar Os programas são capazes de emular a execução de mais de uma tarefa ao mesmo tempo.

36 Ponteiros C++Java Foo* x = new Foo(3); Foo y(4); Foo z; Foo* a = x; Foo* c = 0; Foo* d = null; Foo b = y; x->doSomething(); y.doSomething(); if (x == a); if (y == b); if (&y == &b) Foo x = new Foo(3); Foo y = new Foo(4); Foo z = new Foo(); Foo a = x; Foo c = null; Foo d = null; Foo b = y.clone(); x.doSomething(); y.doSomething(); if (x == a); if (y.equals(b)); if (y == b) Voltar

37 read local file write local file get file information delete file run another program read the user.name property connect to network port on server connect to network port on other host load Java library call exit create a pop-up window Applets Voltar no yes no yes no yes no yes no W URLLOCAVJA


Carregar ppt "Analisando o Java: principais conceitos, apresentados em um enfoque comparativo com o C++. Eng. Luciano Santos Driemeier COMET DPM/FEM UNICAMP."

Apresentações semelhantes


Anúncios Google