Java Basico

September 11, 2018 | Author: Rildo F Santos | Category: Java (Programming Language), C (Programming Language), C++, Compiler, Data Type
Share Embed Donate


Short Description

Tutorial sobre a Linguagem de Programação Java, a versão deste tutorial é 1.4, contudo este tutorial continua válido par...

Description

Linguagem de Programação JAVA JB100 Java Básico

Autor: Rildo F Santos ([email protected])

Revisão 3.0 27/01/09 Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

Linguagem de Programação JAVA JB100 Java Básico Estrutura do Curso

Introdução

Apresenta arquitetura da linguagem Java

Fundamentos da linguagem

Apresenta comandos e funcionalidades básicas

Programação Orientada a Objetos

Principais aspectos da programação orientada a objetos

Características Apresentar características avançada da Avançadas Linguagem (Threads, networking e etc) Introdução a UML Utilitários

Apresentar uma visa geral da UML e seus os principais componentes Demonstrar os principais utilitários da linguagem Java (Jar, JadaDoc e etc)

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

2

Linguagem de Programação JAVA JB100 Java Básico Conteúdo Introdução breve apresentação gerando aplicações Instalação do JDK O primeiro programa Fundamentos da linguagem Java Estrutura da linguagem Palavras Reservadas Tipos de Dados Inicialização de variáveis Operadores A classe String A classe StringBuffer Casting Fluxo de Controle Arrays Passagem de Parâmetros A classe Math Empacotamento de Classes Conversão de Tipos A referência this Coleções Pacotes

Características Avançadas Instanceof Exception Formatando Números e Datas Constantes Threads Serialization TCP/IP Introdução a UML Utilitários JavaDoc Jar JDB Javap Apêndice Convenção de Código no Java Unicode Notação UML

Programação Orientada a Objetos Classes Objetos Métodos Construtores Atributos e variáveis Exemplo de classe Exercício Abstração de Dados Relacionamento Herança Herança Múltipla Comparação: Classes vs Interfaces A referência Super Associação Navegação Rolename Agregação Composição Multiplicidade Constraint Encapsulamento Polimorfismo Acessibilidade

Nota Versão do JSDK 1.3 Este material foi preparado para trabalhar com a versão JSDK 1.3 (veja: http://java.sun.com/j2se/1.3/index.jsp), entretanto todos os exemplos funcionam perfeitamente na versão 6 (versão atual)

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

3

Linguagem de Programação JAVA JB100 Java Básico Objetivo Você está preparado ? Para aprendermos uma nova linguagem de programação é necessário ter alguns conhecimentos como: - Lógica de Programação; - Conhecer um Sistema Operacional, por exemplo, Windows, Unix, Linux ou MacOS; - Saber editar e compilar programas e; Conhecer uma outra Linguagem de Programação é importante, porém não imprescindível.

Objetivo deste curso:

Apresentar as características básicas da linguagem Java, assim como, sua estrutura, funcionalidades, métodos, classes, APIs (Application Program Interface) e recursos avançados.

Expectativas após o Curso: Ao final deste curso você deverá estar apto a: • Utilizar a linguagem Java para criar aplicações simples; • Descrever e usar as características de linguagem orientada a objetos com Java, tais como: Herança, Abstração de Dados, Encapsulamento e Polimorfismo; • Conhecer o tratamento de exceções; • Descrever e usar “sockets” para fazer acesso a servidores e clientes; • Conhecer UML básica;

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

4

Linguagem de Programação JAVA JB100 Java Básico

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

5

Linguagem de Programação JAVA JB100 Java Básico Introdução a linguagem Java Uma breve apresentação... Surgimento: Java é uma linguagem de programação criada em 1995 por James Gosling e sua equipe. A linguagem é de propriedade da Sun Microsystem. Logo Java ganhou popularidade, um bom exemplo disto são os “Applets”, aqueles pequenos aplicativos que executam nos navegadores, que durante muito tempo foi o foco da linguagem Java. Com o passar do tempo, o número de desenvolvedores aumentou e a linguagem amadureceu sendo hoje considerada o principal ambiente de desenvolvimento, tanto para Internet quanto para ambiente cliente/servidor tradicional. Algumas das características da linguagem Java: • Orientação a objetos • Portabilidade (isto que dizer que o mesmo programa criado no Windows2000, pode ser executado em Linux, por exemplo, ou qualquer outro Sistema Operacional, sem a necessidade de fazer ajustes). Entretanto, a linguagem Java vai além da computadores, sendo executada em diversos dispositivos como telefone celulares, televisores, cartões inteligentes e etc. O Java é reconhecido como a principal linguagem no mundo dos Servidores de Aplicações e ambiente sem fio (wireless).

Java

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

6

Linguagem de Programação JAVA JB100 Java Básico Introdução a linguagem Java O que é o Java? Java é: Uma linguagem de programação; Um ambiente de desenvolvimento; Um ambiente de aplicação; Java é o resultado de uma busca por uma plataforma de programação que pudesse fornecer segurança, portabilidade (independência de sistema operacional) e escalabilidade. Os primeiros objetivos alcançados com o desenvolvimento desta nova linguagem foram: •Orientação a objetos: A linguagem é orientada a objetos a partir de sua arquitetura, permitindo herança, polimorfismo, encapsulamento, abstração de dados, persistência de objetos e reúso de código.;  Independência de plataforma (Portabilidade): Possibilidade do mesmo código fonte ser executado em diversos sistemas operacionais, tais como Solaris, AIX, Linux, MacOS, Win32, PalmOS, OS/390 e etc);  Dinamismo: A natureza dinâmica do Java, sendo uma extensão natural de seu projeto orientado a objetos, permite a extensibilidade durante a execução.  Alto desempenho: Suporte a vários recursos, como multithreading, compilação em Jus-in-time, atomicidade do código e suporte a protocolos de rede (TCP/IP)  Facilidade de manutenção de programas. A linguagem não tem:  Ponteiros do sistema operacional;  Defines;  Sobrecarga de operadores;  Herança múltipla de classes e  Função e/ou procedure. Principias características:  Cargabe Collection (gerenciamento dinâmico da memória);  Java Virtual Machine (JVM);  Código seguro. Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

7

Linguagem de Programação JAVA JB100 Java Básico Introdução a linguagem Java Diferenças entre o Java e o C++ Java é sintática e morfologicamente muito parecido com a linguagem C++, entretanto, existem diferenças: Inexistência de aritméticas de ponteiros (ponteiros são apenas referências); Arrays são objetos; Strings são objetos; Gerenciamento automático de alocação e deslocação de memória (Garbage Collection); Não há sobrecarga de operadores; Não há métodos com lista de argumentos de tamanho variável; Não existem diretivas de pré-compilação (#define, #ifde); Não existem Templates; Não existe Herança Múltiplas com classes, apenas com interfaces; Não existem funções, mas apenas métodos de classes; Necessita de ambiente de execução (runtime), ou seja, a JVM (Java Virtual Machine). Veja abaixo um exemplo de um simples programa escrito em Java e em C++. Java

public class Hello { public static void main (String arg []) { System.out.println("Hello” + “\n”); } }

C++

#include int main () { cout Casting //Correção o casting explicito int ic = ia + (int) lb; System.out.println(ic);

Casting explícito: (byte) (a + b)

} }

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

37

Linguagem de Programação JAVA JB100 Java Básico Fundamentos da Linguagem Java Fluxo de Controle Java como qualquer outra linguagem de programação, suporta instruções e laços para definir o fluxo de controle. Primeiro vamos discutir as instruções condicionais e depois as instruções de laço. Antes, porém, vamos entender a necessidade dos blocos. Um bloco é o conjunto de instruções delimitadas por chaves “{... }”. Exemplo:

{ int i = 10; System.out.println(“Hello”); i++

bloco

} Os blocos povoam métodos, instruções condicionais, laços e etc, ou seja, podemos encontrá-los sempre dentro de um programa Java.

Construções condicionais:

if () ... else ... switch () { case : ... break; case : ... default: ... } () ? :

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

38

Linguagem de Programação JAVA JB100 Java Básico Fundamentos da Linguagem Java Fluxo de Controle A instrução if Sintaxes: if (expressão boolean) instrução Exemplo: if (x>y) System.out.println(x); if (expressão boolean) { //Bloco de instruções } Exemplo: if (x>y) { System.out.println(x); y++; } if (expressão boolean) { //Bloco de instruções } else { //Bloco de instruções } Exemplo: if (x>y) { System.out.println(x); y++; } else { System.out.println(y); x++; }

Mais de uma instrução é usado a estrutura de bloco

if (expressão boolean) { //Bloco de instruções } else if (expressão boolean) { //Bloco de instruções } else if (expressão boolean) { //Bloco de instruções } else if (expressão boolean) { //Bloco de instruções } else { //Bloco de instruções }

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

39

Linguagem de Programação JAVA JB100 Java Básico Fundamentos da Linguagem Java Fluxo de Controle A instrução if Sintaxes: (continuação) Exemplo: if (x>y) { System.out.println(x); y++; } else if (x 0

if (saldo > 0) { status = “Positivo”; } else { status = “Negativo”; }

status = Positivo

não status = Negativo

OU if (saldo > 0) status = “Positivo”; else Código status = “Negativo”;

Lógica

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

40

Linguagem de Programação JAVA JB100 Java Básico Fundamentos da Linguagem Java Fluxo de Controle A instrução if Neste exemplo apresentaremos a instrução if com múltiplas opções. Veja a lógica e também a implementação da do código:

saldo médio > 5000

sim

Limite cheque =1000

não saldo médio > 3000 and 2000 and 1000 and 5000) { limitecheque = 1000; } else if (saldomedio > 3000 && saldomedio 2000 && saldomedio 1000 && saldomedio 0

status = Positivo

não status = Negativo

{ ... Status = (saldo > 0)? ”Positivo”:“Negativo”; ... }

Código

Lógica

Lembre-se que podemos aninhar operadores e condições, pois, todos suportam a recursividade.

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

46

Linguagem de Programação JAVA JB100 Java Básico Fundamentos da Linguagem Java Fluxo de Controle Laços O que são laços? Laços são repetições de uma ou mais instruções até que uma condição seja satisfeita. A linguagem Java tem dois tipos de laços: os finitos e os infinitos. Para os laços finitos a execução está atrelada a satisfação de uma condição, por exemplo:

não a = 10

a++

sim

Se o valor da variável a não for igual 10. então incrementar um na variável senão imprimir a variável valor

Imprimir a

Isto quer dizer que a instrução de incremento vai repetir dez vezes. Já os infinitos estes executarão sempre, independente de condição.

true

a++

Em Java, temos três instruções que suportam laços ou “loops”. São elas: while, do-while e for. Laços: while () ... do ... while (); for (...; ; ...) ...

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

47

Linguagem de Programação JAVA JB100 Java Básico Fundamentos da Linguagem Java Fluxo de Controle A instrução while. Ela executa uma instrução ou bloco de instruções, enquanto uma determinada condição não for satisfeita. Ela faz a validação antes de executar as instruções.

Sintaxe: while (expressao boolean) instrução java

Este código será executado 10 vezes, ou seja até a condição ser satisfeita

Sintaxe: while (expressao boolean) { //Bloco }

A instrução while

Exemplo: public class whileExemplo2 { public static void main(String args[]) { int d = 10; while (d >= 0) System.out.println("Contagem Regressiva " + d--); } }

Exemplo: public class whileExemplo { public static void main(String args[]) { int d = 1; while (d 0) { System.out.println("7 x " + d + " = " + 7*d); d++; } ... Exemplo 2: ... while (true) { System.out.println(d++); } ....

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

49

Linguagem de Programação JAVA JB100 Java Básico Fundamentos da Linguagem Java Fluxo de Controle A instrução while. O exemplo abaixo exibe a lógica e a implementação do código de um laço finito usando a instrução while.

não

Valor++

valor < 20 sim

Imprime valor

{ ... while(valor Convertendo Boolean em Integer: i = (b)?1:0;

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

66

Linguagem de Programação JAVA JB100 Java Básico Programação Orientada a Objetos A referência this O Java associa automaticamente a todas as variáveis e métodos referenciados com a palavra reservada this. Por isso, na maioria dos casos torna-se redundante o uso em todas as variáveis da palavra this. Aplicação: Impedir ambigüidade de nome de variáveis. Restrição: Não pode ser aplicada a métodos estáticos, por exemplo, o método main. Exemplo: Existem casos em se faz necessário o uso da palavra this. Por exemplo, podemos necessitar chamar apenas uma parte do método passando uma instância do argumento do objeto. (Chamar um classe de forma localizada); Birthday bDay = new Birthday(this);

public class PessoaJuridica extends Pessoa { public PessoaJuridica() { super("ACME"); } public static void main(String args[]) { PessoaJuridica pf = new PessoaJuridica(); pf.setIdade(10); System.out.println("idade: " + pf.getIdade()); } public String getNome() { return ""; }; public int getIdade() { return idade; } public void setIdade(int idade) { this.idade = idade; } } Na classe PessoaJuridica, o uso da palavra this é para evitar ambigüidade. Note que no método setIdade, o parâmetro chama-se idade e o atributo também tem o mesmo nome, ou seja, o mesmo identificador, neste caso o this separa o atributo do parâmetro. Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

67

Linguagem de Programação JAVA JB100 Java Básico Fundamentos da Linguagem Java Coleções O que são coleções? Coleções (também conhecidas como container) é um simples objeto que pode agrupar múltiplos elementos. Coleções são utilizadas para armazenar, recuperar e manipular dados. Os métodos são responsáveis por realizar as operações. A estrutura das coleções inclui uma variedade de recursos que simplificam o desenvolvimento. Essa é uma implementação da noção de reúso de código. Um exemplo de coleção poderia ser uma lista de nomes e telefones. Hashtable (API: Java.util) A tabela de hash é uma estrutura de dados que permite procurar os itens armazenados em tabela utilizando uma chave associada. O formato padrão de entrada de dados na tabela é chave e valor. Para construir uma tabela de hash em Java, devemos criar um objeto Hashtable, utilizando o construtor Hastable. Para adicionar elementos na tabela usaremos o método put, put(object key, Object value). Este método é da classe Hashtable. Para recuperar o elemento usado como chave, devemos usar o método get, get(object key). Para remover um elemento usamos o método remove. Exemplo:

import java.util.*;

API

public class TestHashTable { public static void main(String Arg[]) { Hashtable table = new Hashtable(); table.put("1", "Joao"); table.put("2", "Jose"); table.put("3", "Maria"); table.put("4", "Marta"); table.put("5", "Pedro"); table.put("6", "Mateus"); String find = (String) table.get("4"); System.out.println(find); } }

Implementação de tabela Hash e uso dos métodos put e get

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

68

Linguagem de Programação JAVA JB100 Java Básico Fundamentos da Linguagem Java Coleções Enumeration (API: Java.util.Enumeration) Retorna uma enumeração de uma coleção (Tabela Hash, por exemplo) especificada. Principais métodos: hasMoreElements e nextElements. Exemplo: API

Tabela Hash e métodos

import java.util.Enumeration.*; import java.util.*; public class EnumerationExemplo { public static void main(String Arg[]) { Hashtable table = new Hashtable(); table.put("1", "Joao"); table.put("2", "Jose"); table.put("3", "Maria"); table.put("4", "Marta"); table.put("5", "Pedro"); table.put("6", "Mateus"); Enumeration e = table.elements(); while(e.hasMoreElements()){ String valor = (String) e.nextElement(); System.out.println(valor); }

Usando a Interface Enumeration, podemos imprimir todos os valores contidos na tabela Hash } }

import java.util.Iterator.*; ... Iterator i = table.values().iterator(); while(i.hasNext()){ String valor = (String)i.next(); System.out.println(valor);

Opcionalmente podemos usar Iterator que tem a funcionalidade parecida com Enumeration

} Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

69

Linguagem de Programação JAVA JB100 Java Básico Fundamentos da Linguagem Java Coleções Vector (API: Java.util)

A classe Vector possibilita a criação de vetor dinâmico para armazenamento de referências de objetos, que pode ser indexado por número inteiro. Métodos principais: addElement(), remove(), size(), element() entre outros

Exemplo: import java.util.*;

API

Declaração do Vector Adiciona valores ao Vector. Note que estes valores são do tipo referência, ou seja, objetos Converte um Vector para um array .

public class TestVector { public static void main(String Arg[]) { Vector v = new Vector(); Integer y; for(int x=0;x ( < lista de argumentos > ) < bloco > < modificador > -> segmento que possui os diferentes tipos de modificações incluíndo public, protected, private e default (neste caso não precisamos declarar o modificador). < tipo de retorno > -> indica o tipo de retorno do método. < nome > -> nome que identifica o método. < lista de argumentos > -> todos os valores que serão passados como argumentos. Exemplos: public void somaDias (int dias) { } private int somaMes(int mês) { } protected String getNome() { } int getAge(double id) { } public class CalculaData { private int day, month, year; public float calcDays(int age ) { return 365.25F * age; } }

método

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

82

Linguagem de Programação JAVA JB100 Java Básico Programação Orientada a Objetos Métodos Método é a implementação de uma operação. As mensagens identificam os métodos a serem executados no objeto receptor. Para chamar um método de um objeto é necessário enviar uma mensagem para ele. Por definição todas as mensagens tem um tipo de retorno, por este motivo em Java, mesmo que método não retorne nenhum valor será necessário usar o tipo de retorno chamado “void” (retorno vazio). public class ContaCorrente { private int conta=0; private double saldo=0;

ContaCorrente conta saldo

public double getSaldo(){ return saldo; }

setDeposito getSaldo setSaque

public void setDeposito(int valordeposito) { return saldo +=valordeposito; }

public void setSaque(double valorsaque) { return saldo -=valorsaque; } }

Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

83

Linguagem de Programação JAVA JB100 Java Básico Programação Orientação a Objetos Orientada a Objetos Construtores O que são construtores? Construtores são um tipo especial de método usado para inicializar uma “instance” da classe. Toda a classe Java deve ter um Construtor. Quando não declaramos o “Construtor default”, é inicializado automaticamente pelo Java. Mas existem casos que se faz necessário a declaração explícita dos construtores. O Construtor não pode ser herdado. Para chamá-lo a partir de uma subclasse usamos a referência super.

Para escrever um construtor, devemos seguir algumas regras: 1ª O nome do construtor precisa ser igual ao nome da classe; 2ª Não deve ter tipo de retorno; 3ª Podemos escrever vários construtores para mesma classe. Veja abaixo o exemplo:

public class Mamifero { private int qdepernas; private int idade;

public Mamifero(int idade) { this.idade = idade; } public Mamifero(int idade, int pernas) { this.idade = idade; this.qdepernas = pernas; }

Construtores Podemos ter mais de um construtor na mesma classe.

//Métodos } Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

84

Linguagem de Programação JAVA JB100 Java Básico Programação Orientada a Objetos Atributos e variáveis Os atributos são pertencentes a classe, eles podem ser do tipo primitivo ou referência (objetos), os seus modificadores podem ser: public, private, protected ou default. O ciclo de vida destes atributos estão vinculados ao ciclo de vida da classe. Variáveis Locais: São definidas dentro dos métodos. Elas têm o ciclo de vida vinculado ao ciclo do método, também são chamadas de variáveis temporárias

public class Disciplina { private int cargaHoraria; private String nome; public Disciplina(String nome, int cargaHoraria){ this.nome = nome; this.cargaHoraria = calcCargaHoraria(cargaHoraria); } public String getNome(){ return nome; } public int getCargaHoraria(){ return cargaHoraria; } public int calcCargaHoraria(int qdeHoras) { int horasPlanejamento = (int) ( qdeHoras * 0.1); return cargaHoraria = horasPlanejamento + qdeHoras; }

Modificador

Atributos

Variáveis temporárias

} Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

85

Linguagem de Programação JAVA JB100 Java Básico Programação Orientada a Objetos Exemplo de Classe

1

Livro Legenda: 1 – Objeto no mundo real 2 – Modelo de implementação da classe Livro 3 – Codificação da classe Livro 3 public class Livro extends Object { public Livro() { } private int isbn; private String titulo; private String autor;

2

public int getISBN(){ return isbn; } public void setISBN(int isbn){ this.isbn=isbn; } public String getTitulo(){ return titulo; } public void setTitulo(String titulo){ this.titulo=titulo; } public String getAutor(){ return autor; } public void setAutor(String autor){ this.autor=autor; } } }

Criar o objeto Livro Rildo F Santos ([email protected]) © Copyright e-tecnologia.com, 2002

Versão: 3.0

86

Linguagem de Programação JAVA JB100 Java Básico Programação Orientada a Objetos Exercício sobre modelo de Classe 1

2

3

(Identifique o objeto no mundo real)

Descreva o conceito:

Faça o desenho da classe:

4

Faça a codificação do modelo de classe:

Nome da Classe public class { public () { } private atributo; private atributo; private atributo;

Atributos 1 Atributos 2 Atributos 3 Métodos 1 Métodos 2 Métodos 3

public
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF