Visual Basic e Java. À primeira vista o Java é completamente diferente do Visual Basic. Realmente as duas linguagens pertencem a mundos distintos.



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

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

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

Noções sobre Objetos e Classes

JSP - ORIENTADO A OBJETOS

Módulo 06 Desenho de Classes

2 Orientação a objetos na prática

Orientação a Objetos

OPERADORES E ESTRUTURAS DE CONTROLE

Lição 9 Trabalhando com bibliotecas de classes

Sintaxe Básica de Java Parte 1

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

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

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

Componentes da linguagem C++

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

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

Introdução à Programação

Técnicas de Programação II

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

2 echo "PHP e outros.";

Programação Básica em Arduino Aula 2

Implementando uma Classe e Criando Objetos a partir dela

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Introdução à Linguagem

Algoritmos em Javascript

Universidade Federal de Uberlândia

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

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

Introdução a Java. Hélder Nunes

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

3 Classes e instanciação de objectos (em Java)

Curso Java Starter. 1

INTRODUÇÃO OBJECT PASCAL/DELPHI

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

9 Comandos condicionais

INF 1005 Programação I

4 Criação de macros e introdução à linguagem VBA

A Linguagem Java. Alberto Costa Neto DComp - UFS

Arquitetura de Computadores. Tipos de Instruções

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Algoritmos e Programação

Capítulo 2: Introdução à Linguagem C

APOSTILA PHP PARTE 1

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

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

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

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

JAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

AULA Uma linguagem de programação orientada a objetos

Programação por Objectos. Java

Linguagem de Programação III

Conceitos de Linguagens de Programação

Roteiro 1: Dados, variáveis, operadores e precedência

Conversão de Tipos e Arrays

Polimorfismo. Prof. Leonardo Barreto Campos 1

Estrutura de Dados Básica

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

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Algoritmos e Programação Estruturada

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

DEFINIÇÃO DE MÉTODOS

Prof. Esp. Adriano Carvalho

UFG - Instituto de Informática

Laboratório de Programação I

Computação II Orientação a Objetos

ESTRUTURA CONDICIONAL

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Desenvolvimento OO com Java Orientação a objetos básica

CURSO DE PROGRAMAÇÃO EM JAVA

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

Sistemas de numeração

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Capítulo 2. Fundamentos de Java

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

Entradas Digitais. PdP. Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Programação WEB I Estruturas de controle e repetição

NetBeans. Conhecendo um pouco da IDE

e à Linguagem de Programação Python

Java. Marcio de Carvalho Victorino

Organização de programas em Java. Vanessa Braganholo

2.3. PHP Tipos de dados e operadores

CONVENÇÃO DE CÓDIGO JAVA

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE.

Introdução à linguagem

Utilizem a classe Aula.java da aula passada:

Resumo da Matéria de Linguagem de Programação. Linguagem C

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

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Expressões Lógicas Comandos de Seleção

2. Representação Numérica

Transcrição:

Visual Basic e Java À primeira vista o Java é completamente diferente do Visual Basic. Realmente as duas linguagens pertencem a mundos distintos. No entanto, elas compartilham uma série de funcionalidades. Vejamos as diferenças e similaridades entre elas.

Orientado ou Baseado em Objetos O Java é orientado a objetos. O VB é baseado em objetos. As linguagens procedurais foram evoluindo para as linguagem orientadas a objetos. No meio do caminho ficaram as linguagens baseadas em objetos, como é o caso do VB. Claro que o VB.Net já é orientado a objetos, mas não é dele que estamos falando aqui.

Orientado ou Baseado em Objetos As linguagens orientadas a objetos permitem que o programador crie objetos de programação que podem ser reutilizados. No Java é possível fazer isso através da criação de classes, que serão instanciadas como objetos. Cada classe possui atributos e métodos. Algumas pessoas preferem chamar os atributos de substantivos e os métodos de verbos. Vejamos a estrutura de uma classe feita em Java: class Carro { int qtdeportas; int qtdeassentos; boolean som; int ano; String modelo; } void acelerar(); void parar();

Orientado ou Baseado em Objetos No caso do VB, o programador pode criar objetos que misturam atributos e funções. Por exemplo, ao criar um formulário com um botão e uma caixa de texto no V, já temos um objeto. Este objeto pode ser referenciado por outros objetos e reutilizados em vários aplicativos. Por essa razão o VB é baseado em objetos e não procedural. Para que uma linguagem seja orientada a objetos ela precisa ter as seguintes características primárias: Encapsulamento Herança Polimorfismo

Orientado ou Baseado em Objetos Encapsulamento Toda a informação sobre o objeto e a forma de manipular essa informação estão armazenados dentro da definição do objeto. Os detalhes sobre como o objeto funciona são invisíveis fora dele. Herança Um novo objeto pode ser criado a partir de um objeto já existente e herda as propriedades e métodos. O VB não suporta herança, ou seja, não podemos criar uma nova classe baseada na definição de outra classe. Polimorfismo É o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse

Comentários O VB possui apenas um tipo de comentário. O Java possui três tipos de comentários. Observe: VB: Início Fim Objetivo O VB possui apenas esse comentário de linha. Não possui comentário de bloco. Java: Início /* /** // Fim */ */ Objetivo Comentário de bloco. Igual no C e C++. Comentário de bloco. É usado pelo JavaDoc para gerar documentação de forma automática. Comentário de uma linha só do C e C++.

Abertura e Fechamento de Blocos Isso funciona de forma bem distinta nas duas linguagens. Observe: No VB isso vai depender do tipo de bloco que você está construindo. No Java você inicia e finaliza blocos com as chaves: { }, assim como no C. No Java, se um bloco tem apenas uma linha de comando, não é obrigatório a abertura do mesmo. No VB sempre é necessário fechar o bloco. Exemplos: VB if x = y then begin // do something end if Do While Not.EOF // do something Loop For i = 10 To 19 // do something Next Java if (x == y) { // do something // do something else } if (x == y) { // do something

Declaração de Variáveis Declarar variáveis no Java é completamente diferente da declaração feita no VB. Nas duas linguagens é possível declarar variáveis em qualquer lugar. No VB é necessário informar que uma variável está sendo criada através da palavra-chave dim. O VB permite a criação de variáveis globais, o Java não. Observe a tabela: VB Sub teste() Dim variavel as String variavel = "a" If variavel = "a" Then MsgBox ("testando") End If End Sub Java public void testando() { String teste1 = "", teste2; int numero; numero = 1; double dinheiro; dinheiro = 1.25; float nota; nota = 5.75f; }

Tipos de Dados Java O Java tem 8 tipos primitivos de dados. Observe na tabela abaixo: Tipo Bytes Valor Mínimo Valor Máximo boolean - - true/false byte 1-128 127 short 2-32768 32767 int 4-2147483648 2147483647 long 8-9223372036854775808 9223372036854775808 float 4 ± 3.4 E 38 (6-7 dígitos de exatidão) ± 3.4 E 38 (6-7 dígitos de exatidão) double 8 ± 1.7 E 308 (14-15 dígitos de exatidão) ± 1.7 E 308 (14-15 dígitos de exatidão) char (unicode) 2 '\u0000' '\uffff' Os tipos primitivos recebem um tratamento especial e são mais eficientes que os tipos de referências.

Tipos de Dados - VB Basicamente o VB tem os mesmos tipos primitivos do Java. Possui tipos inteiros, de ponto flutuante e booleano. Observe a tabela abaixo: Tipo Integer Long Single Double Currency String Byte Boolean Date Variant Bytes 2 4 4 8 64 1 1 2 8 2 Equivalente Java short int float double Não existe Parecido com o char. No Java o char usa Unicode enquanto o VB usa ASCII. Não existe boolean Não existe Não existe

Conversão entre Tipos Tanto no VB quanto no Java é possível fazer conversão de variáveis de um tipo para outro. Na tabela abaixo podemos observar algumas conversões permitidas entre os tipos de dados do VB: Tipo Byte Short Integer Long Single Double String Pode ser convertido para Byte, Short, Integer, Long, Single, Double Short, Integer, Long, Single, Double Integer, Long, Single, Double Long, Single, Double Single, Double Double String

Conversão VB Abaixo seguem algumas funções de conversão do VB e o tipo de dado resultante: Função CBool CByte CChar CDate CDbl CInt CLng CShort CSng CStr Tipo de dado resultante Boolean Byte Char Date Double Integer Long Short Single String

Conversão Java O Java possui alguns tipos primitivos e o resto são objetos. Dessa forma, o próprio compilador Java já faz conversões automáticas, quando se deseja converter de tipos menores para tipos maiores, seguindo a regra:

Conversão Java Caso deseje realizar uma conversão de um tipo maior para um menor, o programador deverá fazer isso de forma explícita da seguinte forma: (tipo) dado Exemplo: public class Convertendo { public static void main(string[] args) { int x = (int) 2.5; System.out.println("x="+x); } }

Conversão Java Muito bem. Para continuarmos a aprender sobre casting em Java, primeiro devemos saber o que são classes Wrapper. Cada tipo primitivo possui uma classe associada a ele. Veja a tabela abaixo: Tipo Primitivo Classe Wrapper Subclasse Lógico boolean Boolean Object Caractere char Character Integral byte Byte Number short Short int Integer long Long Ponto Flutuante float Float double Double E qual seria então a vantagem de se utilizar tipos primitivos? A explicação reside no fato de como o Java aloca a memória. Os tipos primitivos ficam num espaço de memória chamado Stack e os objetos ficam em outro espaço chamado Heap. Assim sendo, os tipos primitivos são mais rápidos, eficientes em laços e expressões e permitem operações mais complexas.

Conversão Java Em contrapartida, quais as vantagens de se utilizar as classes wrapper? O fato de realizar operações que são permitidas apenas a objetos, como mudança de bases decimais e trabalhar com conjuntos. Veja os seguintes exemplos de instanciação de variáveis utilizando as classes wrapper: Integer a = new Integer("10"); Integer b = new Integer(10); Float f1 = new Float("14.0f"); Float f2 = new Float(14.0f); Boolean b1 = new Boolean("true"); Boolean b2 = new Boolean(true);

Conversão Java Métodos importantes: valueof(); xxxvalue(); parsexxx(); Para exemplificar o uso de cada um deles vamos fazer alguns exemplos: public static void main(string[] args) { int a = 25; Integer b = 36; int c = 0; Integer d = new Integer(0); String e = "10"; } System.out.println("a="+a); //a=25 System.out.println("b="+b); //b=36 System.out.println("c="+c); //c=0 System.out.println("d="+d); //c=0 //atribuindo b para c (Objeto para Primitivo) //intvalue() retorna um primitivo c = b.intvalue(); System.out.println("c="+c); //c=36 //atribuindo a para d (Primitivo para Objeto) //valueof() retorna um objeto d = Integer.valueOf(a); System.out.println("d="+d);//d=25 //atribuindo de e para a (String para int primitivo) //parseint() retorna um objeto, mas permite escolher a base a = Integer.parseInt(e); System.out.println("a="+a);//a=125 //mesmo método, mas selecionando a base 2 a = Integer.parseInt(e,2); System.out.println("a="+a);//a=2

Conversão Java Agora vem a parte engraçada. Você poderia fazer simplesmente assim: //atribuindo b para c (Objeto para Primitivo) //intvalue() retorna um primitivo c = b; System.out.println("c="+c); //c=36 //atribuindo a para d (Primitivo para Objeto) //valueof() retorna um objeto d = a; System.out.println("d="+d);//d=25 Isso mesmo! Para tipos de dados iguais, a partir da versão 5 do Java, não precisa mais fazer conversão explícita, o próprio compilador se vira pra fazer isso pra você. Isso é conhecido como Autoboxing, ou Encaixotamento. Na verdade o compilador está fazendo todo o boxing e unboxing. E para tipos de dados diferentes? Já vimos como passar um valor String para um int. Como fazer para passar de String para os outros primitivos? Como fazer para converter entre os wrappers? Vejamos:

public static void main(string[] args) { String sd = "111.11"; String sf = "222.22"; String si = "333"; String sb = "true"; Double ds = Double.valueOf(444); int is = 555; Float fs = 666f; } Conversão Java //retorna objeto Double d = Double.valueOf(sd); Float f = Float.valueOf(sf); Integer i = Integer.valueOf(si); Boolean b = Boolean.valueOf(sb); System.out.println("Double d="+d);//double d=111.11 System.out.println("Float f="+f);//float f=222.22 System.out.println("Integer i="+i);//integer i=333 System.out.println("Boolean b="+b);//boolean b=true //retorna primitivo double dd = Double.parseDouble(sd); float ff = Float.parseFloat(sf); int ii = Integer.parseInt(si); boolean bb = Boolean.parseBoolean(sb); System.out.println("double dd="+dd);//double dd=111.11 System.out.println("float ff="+ff);//float ff=222.22 System.out.println("int ii="+ii);//int ii=333 System.out.println("boolean bb="+bb);//boolean bb=true //de outros tipos para String String umdouble = String.valueOf(ds); String umint = String.valueOf(is); String umfloat = fs.tostring(); System.out.println("umDouble="+umDouble);//umDouble=444.0 System.out.println("umint="+umint);//umint=555 System.out.println("umFloat="+umFloat);//umFloat=666.0

Conversão Java Dica: Quando estiver convertendo para String, prefira o método Objeto.toString() ao invés de String.valueOf(). Internamente o método valueof() chama o método tostring();

Operadores D Tipo VB Java Função Atribuição = = Operador de atribuição. Aritmético + + Soma. Também concatena Strings. - - Subtração. * * Multiplicação. / / Divisão. Mod % Resto da divisão. \ / No VB retorna apenas a parte inteira da divisão. No Java, utiliza-se o mesmo sinal de divisão. Unário + + Torna um valor positivo. - - Torna um valor negativo. ++ Incrementa um valor em 1. -- decrementa um valor em 1. Not! Inverte o valor de um booleano. Operador de negatividade.

Operadores D Tipo VB Java Função Relacionais = == Teste de igualdade. <>!= Teste de desigualdade. < < Menor que. > > Maior que. <= <= Menor ou igual a. >= >= Maior ou igual a. Condicionais (booleanos) Not And! && Operador de negação. Condicional E. Or Condicional OU. Xor Condicional OU Exclusivo.?: Operador Ternário. Bitwise Not ~ Inversão dos bits de X << Deslocamento a esquerda dos bits de x, y vezes. >> Deslocamento a direita dos bits de x, y vezes. >>> Preenche zero a esquerda de x, y vezes. And & AND bit a bit entre x e y. Xor ^ XOR bit a bit entre x e y. Or OR bit a bit entre x e y.

Operadores Java O D Java possui alguns operadores exclusivos, conforme podemos observar logo abaixo: Tipo Atribuição Java += - = *= /= %= Função Soma e atribui. Subtrai e atribui. Multiplica e atribui. Divide e atribui. Tira o resto e atribui.

Arrays DA declaração de um array no VB é diferente da declaração feita em Java. No VB utiliza-se parêntesis, enquanto o Java usa colchetes ([ ]). Abaixo vemos duas diferenças entre declarações de arrays em VB e Java: A sintaxe para declarar um array em Java é menos detalhada e não inclui o uso da palavra chave Dim. Todos os arrays em Java começam no elemento zero (observe a imagem), ao contrário do VB onde o intervalo pode ser especificado.

DVejamos alguns exemplos em VB. Arrays - VB Definiremos um array de 7 posições. Os elementos do array serão do tipo inteiro. Dim numbers (1 To 6 ) As Integer Poderíamos ter feito o seguinte: Dim numbers(5) As Integer Ambos tem seis posições. No entanto, no segundo exemplo o primeiro índice começa na posição zero. Podemos criar arrays multidimencionais da seguinte forma: dim DiaHora (1 to 7, 1 to 24) as Single; No array acima temos 168 elementos, que representarão todas as horas de uma semana (24 * 7 = 168).

Arrays - VB DPara preencher os elementos do array anterior (DiaHora), podemos utilizar o seguinte laço (todos os elementos serão preenchidos com o número zero): for i = 1 to 7 for j = 1 to 24 DiaHora[i,j] = 0; next next

Arrays - Java DVamos criar um array de inteiros em Java e inicializar os seus elementos: int[] umarray; //declara o array de inteiros umarray = new int[2]; //aloca a memoria para dois elementos umarray[0] = 100; //inicializa o primeiro elemento umarray[1] = 200; //inicializa o segundo elemento É possível colocar os colchetes após o nome da variável: int umarray[]; No entanto, isso é desencorajado pela convenção, pois os colchetes devem encorajar o tipo de dado do array. É possível criar e já inicializar um array da seguinte forma: int[] umarray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000}; O tamanho do array foi definido pelo número de elementos. No exemplo anterior o tamanho do array é 10.

Arrays - Java DTambém é possível criar arrays multidimencionais no Java. Observamos isso no exemplo abaixo: class MultiDimArrayDemo { public static void main(string[] args) { String[][] names = {{"Mr. ", "Mrs. ", "Ms. "}, {"Smith", "Jones"}}; System.out.println(names[0][0] + names[1][0]); //Mr. Smith System.out.println(names[0][2] + names[1][1]); //Ms. Jones } }

Conclusão DNessa apresentação vimos algumas características do Java do ponto de vista de um desenvolvedor VB. Existem diversas outras que não foram mencionadas. Abordaremos na prática o desenvolvimento de aplicações VB e Java apontando as semelhanças e diferenças entre as duas linguagens e suas IDEs. Essa prática será gravada em vídeo aulas.