Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes...

66
Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando Hage Professor: Armando Hage Hello Hello World ! World !

Transcript of Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes...

Page 1: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Disciplina: Estrutura de dados em Java

Programação Orientada a Objetos Linguagem JavaComponentes da linguagem Java Resolução de Problemas

Professor: Armando HageProfessor: Armando Hage

Hello World !Hello World !

Page 2: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

HistóricoLinguagens de Programação

•Simula67:linguagem projetada para simulação

•Família de linguagens Smalltalk. Smaltalk 72-80

•Maior divulgação a partir de 1986 com a 1º WorkShop em Programação Orientada a Objetos

•C++

•Java

Page 3: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Motivos que influenciaramMotivos que influenciaram Avanços na tecnologia de arquitetura de Avanços na tecnologia de arquitetura de

computadores, suportando sofisticados computadores, suportando sofisticados ambientes de programação e interfaces homem-ambientes de programação e interfaces homem-máquina.máquina.

Avanços na área de linguagem de programação Avanços na área de linguagem de programação como modularização, ocultamento de como modularização, ocultamento de informação.informação.

Crise do software- Termo utilizado para Crise do software- Termo utilizado para descrever problemas associados ao modo como descrever problemas associados ao modo como o software é desenvolvido, como é a manutenção o software é desenvolvido, como é a manutenção em como acompanhar a demanda por mais em como acompanhar a demanda por mais software(Pressman 1995)software(Pressman 1995)

Page 4: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Vantagens da tecnologia de Vantagens da tecnologia de ObjetosObjetos

Facilita a reutilização de código.Facilita a reutilização de código.

Os modelos refletem o mundo real de Os modelos refletem o mundo real de maneira mais aproximada.maneira mais aproximada.

Pequenas mudanças não implicam em Pequenas mudanças não implicam em grande alterações no sistema.grande alterações no sistema.

Page 5: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Conceitos de POOConceitos de POO ModelosModelos – São representações simplificadas de objetos do – São representações simplificadas de objetos do

mundo real. mundo real. Dados – Como o mesmo é uma simplificação do mundo Dados – Como o mesmo é uma simplificação do mundo

real, os dados contidos no modelo são somente os real, os dados contidos no modelo são somente os relevantes à abstração do mundo real.relevantes à abstração do mundo real.

Operações – Um modelo contém operações e Operações – Um modelo contém operações e procedimentos associados a ele.procedimentos associados a ele.

AbstraçãoAbstração- Uma abstração descreve as características - Uma abstração descreve as características essenciais de uma entidade que a distingüe de todos os outros essenciais de uma entidade que a distingüe de todos os outros tipos de entidades.tipos de entidades.

Pessoa como empregado de Empresa Pessoa como empregado de Empresa Dados (nome, cargo, salário e Dados (nome, cargo, salário e

horasExtrasTrabalhadas)horasExtrasTrabalhadas) Operações(calcularSalário,aumentaSalário)Operações(calcularSalário,aumentaSalário)

Pessoa como paciente de uma clínica médicaPessoa como paciente de uma clínica médicaDados(nome,sexo,altura,peso, histórico) Dados(nome,sexo,altura,peso, histórico) Operações (AdicionaInformaçãoaoHistórico)Operações (AdicionaInformaçãoaoHistórico)

Page 6: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

O modelo de Objetos Objetos, Métodos e VariáveisObjetos, Métodos e Variáveis AgregaçãoAgregação MétodosMétodos Classes e InstânciasClasses e Instâncias EncapsulamentoEncapsulamento HerançaHerança

Page 7: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Conceitos de POOConceitos de POO POO – É um paradigma para o POO – É um paradigma para o

desenvolvimento de software que baseiam-se desenvolvimento de software que baseiam-se na utilização de componentes na utilização de componentes individuais(objetos)que colaboram para individuais(objetos)que colaboram para construir sistemas mais complexos.construir sistemas mais complexos.

Exemplo de um modelo utilizando (UML).Exemplo de um modelo utilizando (UML).

Lampadaestado

acende()apaga()mostra_estado()

Page 8: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Conceitos de POOConceitos de POO/* Modelo Lâmpada /* Modelo Lâmpada

representa uma representa uma lâmpafa em uso */lâmpafa em uso */

Inicio do ModeloInicio do Modelodados estado;dados estado;operação acende()operação acende()inicioinicioestado=acesoestado=acesoFimFimoperação apaga()operação apaga()inicioinicio estado=apagadoestado=apagadofimfim

ContCont.operação mostra_estado()operação mostra_estado()inicioinicio se(estado==aceso)se(estado==aceso) imprime(“A lâmpada está imprime(“A lâmpada está acesa”)acesa”)senãosenão imprime(“A lâmpada está imprime(“A lâmpada está apagada”)apagada”)fimfimfim.fim.

Page 9: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Objetos,métodos e variáveis ClassesClasses – São estruturas das linguagens de

programação OO que contem, para determinado modelo, os dados que devem ser representados e as operações que devem ser efetuadas com estes dados. A classe envolve, associa, funções e dados, controlando o acesso a estes.Defini-lá implica em especificar os seus atributos (dados) e seus métodos (funções). Ex:Interface controladora de um motor elétrico.

Classe:motormotorAtributos: temperaturatemperatura, velocidadevelocidade, tensão tensão

aplicadaaplicada.

Page 10: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Objetos,métodos e variáveis

VariáveisVariáveis-São os dados dos objetos.AtributosAtributos – Dados contidos em uma classe, cada qual tendo um tipo.MétodosMétodos- Operações realizadas.

Lampadaestado

acende()apaga()mostra_estado()

Objeto ou instânciaObjeto ou instância – Representa uma materialização da classe.É um pacote de software contendo dados e procedimentos(código)relacionado. A parte superior do diagrama representa o nome da classe, e a inferior,sua interface.Possui estado,identidade única e comportamento.

Page 11: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Objetos,métodos e variáveis Agregação(ou composição)- É a idéia de que o o

estado de um objeto é formado por outros objetos. A relação de agregração é chamada de “tem um”, como em “um carro tem um motor”.

Métodos – As operações contidas em uma classe, são chamadas métodos de uma classe.

Argumentos – métodos podem opcionalmente receber argumentos.

Retorno de valores – métodos podem retornar valores ou instancias de classes.

Page 12: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

EncapsulamentoEncapsulamento Os dados privados, por sua vez, só podem ser acessados através do código presente nos métodos do objeto. Por isso, costuma-se dizer que os dados são encapsulados.

Capacidade de um objeto possui uma parte privada,acessível somente através dos métodos definidos na sua classe.

Benefícios:O código do cliente pode usar apenas a interface para a operaçãoA implementação do objeto pode mudar,para corrigir erros,aumentar a performance, sem que seja necessário modificar o código do clienteManutenção mais fácil e menos custosa.

Page 13: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

HerançaHerança É o mecanismo que

permite a uma classe herdar todo o comportamento e os atributos de outra classe, adquirindo imediatamente toda a funcionalidade de uma classe existente.

Uma classe que herda de outra classe é chamada de subclassesubclasse e a classe que fornece a herança é chamada de superclassesuperclasse.

ClasseA

ClasseB

ClasseC

ClasseD

ClasseE

Page 14: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Comparações entre linguagens imperativas e OO

Paradigma ProceduralParadigma Procedural Tipos de dados Variável Função/Procedimento Chamada de função

Paradigma ObjetosParadigma Objetos Classes Objeto / Instância Operação / Método Envio de Mensagem

Page 15: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

A linguagem Java HistóricoHistórico

1991:Projeto Green: Base para dispositivos eletrônicos inteligentes.

Principais CaracterísticasPrincipais Características Simples – desenvolvimento de software pequeno que

possa executar de forma independente em máquina pequena.

Parecida com C e C++, embora a filosofia seja diferente. Características herdadas de muitas outras

linguagens de programação :Smalltalk, Eifell, Modula-3. Coleta de lixo automática. Poucas palavras de reserva.

Page 16: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Características Orientada a ObjetosOrientada a Objetos – Com exceção de seus tipos primitivos,

tudo é orientado a objetos. Independente de PlataformaIndependente de Plataforma –Os programas Java são

compilados para uma forma intermediária de código chamada bytecode. A máquina virtual Java(JVM-Java Virtual Machine) é um interpretador de bytecodes.

Sem ponteirosSem ponteiros – Java não usa ponteiros,isto é, não permite a manipulação direta de de endereços de memória nem exige que os objetos criados sejam destruídos.

PerformancePerformance – Java é compacta, independente de plataforma e serve para a utilização em redes.

SeguraSegura – Considerando aplicações que podem rodar na internet, possui mecanismo de segurança que podem evitar qualquer operação de sistema na máquina alvo,reduzindo os problemas de segurança.

MultithreadingMultithreading – Pode executar e sincronizar várias rotinas concorrentes.

Page 17: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Java é independente de Arquitetura

CódigoCódigoFonteFonte

Compilador(Intel)Compilador(Intel)

Compilador(Power PC)Compilador(Power PC)

Compilador(SPARC)Compilador(SPARC)

CódigoCódigoBinárioBinário(Intel)(Intel)

CódigoCódigoBinárioBinário

(PowerPC)(PowerPC)

CódigoCódigoBinárioBinário

(SPARC)(SPARC)

Desenvolvimento Desenvolvimento TradicionalTradicional

Page 18: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Java é independente de Arquitetura

CódigoCódigoFonteFonte

Compilador(Intel)Compilador(Intel)

Compilador(Power PC)Compilador(Power PC)

Compilador(SPARC)Compilador(SPARC)

CódigoCódigoBinárioBinário(Intel)(Intel)

CódigoCódigoBinárioBinário

(PowerPC)(PowerPC)

CódigoCódigoBinárioBinário

(SPARC)(SPARC)

Desenvolvimento Desenvolvimento em Javaem Java

J V MJ V M

Page 19: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Funcionamento

O processo para traduzir e executar programas Java combina o uso do O processo para traduzir e executar programas Java combina o uso do compiladorcompilador e do e do interpretadorinterpretador..

O Compilador Java converte o código fonte (JAVA) em “JAVA O Compilador Java converte o código fonte (JAVA) em “JAVA BYTECODE”, que é uma representação do programa em linguagem de BYTECODE”, que é uma representação do programa em linguagem de baixo nível, similar ao código em linguagem de máquina.baixo nível, similar ao código em linguagem de máquina.

Page 20: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Funcionamento““Escreva uma vez, execute em qualquer lugar”.Escreva uma vez, execute em qualquer lugar”.

Obs: JAVA é uma arquitetura neutra, o “BYTECODE JAVA” não Obs: JAVA é uma arquitetura neutra, o “BYTECODE JAVA” não é associado a uma plataforma de Hardware particular, ele pode é associado a uma plataforma de Hardware particular, ele pode ser executado em qualquer máquina com um interpretador Java.ser executado em qualquer máquina com um interpretador Java.

Page 21: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Programas Java Aplicativos

Programas Convencionais Execução e feita diretamente através do

interpretador Não possui restrição de segurança

Applets Programas sem autonomia Embutidos em páginas HTML Sua execução é feita por browsers Possui restrição de segurança

Page 22: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Java e a InternetJava pode ser acesso via WEB como Applets ou Java pode ser acesso via WEB como Applets ou páginas em Java Server Paga (JSP) .páginas em Java Server Paga (JSP) .

Applets - Usuários fazem download de bytecodes java pela Internet e executam-os em suas próprias máquinas. Para usar uma Applet é necessário um navegador Web com capacidade Java, o qual irá interpretar os bytecodes.

Páginas JSPPáginas JSP – Usuários acessam páginas que podem gerar processos , como consultas em banco de dados, no servidor WEB.

Page 23: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Plataforma Java Java Virtual Machine (Java VM).

É a base para a plataforma Java disponível sobre várias plataformas de hardware.

Java Application Programming Interface (Java API). A API Java é agrupada em bibliotecas de classes e

interfaces, essas bibliotecas são conhecidas como pacotes.

Page 24: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Variáveis,operadores e estruturas de controle

Tipos PrimitivosTipos Primitivos Inteiros –

byte(-128 a +128), short(-32768 a +32768), int(-2147483648 a +2147483648), long(-9223372036854775808 a +9223372036854775808)

Flutuante – float,double Caractere – char,String

Caracteres especiais \”=aspas \’=apóstrofo \\=backslash \b=backspace \t=tabulação \r=retorno de carro \n=nova linha

• Lógico – true, falseLógico – true, false

Page 25: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Operadores

Maior ou igualMaior ou igual>=>=

MaiorMaior>>Menor ou igual aMenor ou igual a<=<=Menor queMenor que<<Não igual aNão igual a!=!=Igual aIgual a====

SignificadoSignificadoOperadorOperador

AdiçãoAdiçãoSubtraçãoSubtraçãoConcatenação de Concatenação de stringsstrings

++--++

MultiplicaçãoMultiplicaçãoDivisãoDivisãoRestoResto

**//

%%

Mais unárioMais unárioMenos unárioMenos unário

++--

OperaçãoOperaçãoOperadorOperador

Page 26: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Operadoresincrementação / incrementação / decrementação:decrementação:

Decrementa var em 1,avalia o Decrementa var em 1,avalia o valor de var depois de valor de var depois de decrementardecrementar

--var--var----

Decrementa var em 1,avalia o Decrementa var em 1,avalia o valor de var antes de decrementarvalor de var antes de decrementar

var--var------

Incrementa var em 1,avalia o valor Incrementa var em 1,avalia o valor de var depois de incrementarde var depois de incrementar

++var++var++++

Incrementa var em 1, avalia o Incrementa var em 1, avalia o valor de var antes de incrementarvalor de var antes de incrementar

var++var++++++DescriçãoDescriçãoUsoUsoOperadorOperador

Page 27: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

VariávelVariável A sintaxe geral para declaração de variáveis é:A sintaxe geral para declaração de variáveis é:

tipo_de_dadotipo_de_dado nome_da_variávelnome_da_variável;; A atribuição é realizada da seguinte forma:A atribuição é realizada da seguinte forma:

nome_da_variávelnome_da_variável = = expressãoexpressão;;

Ex: Ex: StringString nomenome;; StringString nomenome=“=“Aplicação TesteAplicação Teste”;”; longlong ii;; intint xx,,yy,,zz;;

Page 28: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

StringsStrings As stringsstrings são seqüências de caracteres, como “ola”. A

linguagem Java não tem um tipo string nativo. Cada string entres aspas é uma instancia da classe String.

String e=“ “; uma string vazia String saudacoes=“Ola”;

ConcatenaçãoConcatenação String ola=“Olá”; String mundo=“Mundo !!!”; String mensagem=expletivo+PG13;

– “OláMundo !!!” SubstringsSubstrings

String saudacao=“Bem-vindo”; String s = saudacao.substring(0,3); s=“Bem”

Page 29: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

A Classe StringA Classe String A classe StringString em Java contém 50 métodos. A seguir

apresenta-se alguns métodos interessantes. java.lang.Stringjava.lang.String

• boolean equals(String outra)– Retorna true se a string for igual a outra.

• boolean equalsIgnoreCase(String outra)– Retorna true se a string for igual a outra,

não diferenciando maiúscula de minúscula.

• String substring(int indiceInicio, indicefim)– Retorna uma nova string em todos os

caracteres a partir de indiceInicio até o final da string ou até indiceFim.

Page 30: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Conversão de TipoConversão de Tipo Em Java esta conversão só pode ser explicita, ou seja, ela tem de ser informada através de código, para isso, colocamos o tipo (entre parênteses) para o qual queremos converter na frente da estrutura a ser convertida. A sintaxe para este código pode ser a seguinte: (tipo) Estrutura

Ex:double x = 5.56; int y; y = (int)x;

Page 31: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Conversão de TipoConversão de Tipo Métodos de conversão da Classe BooleanMétodos de conversão da Classe Boolean

booleanValue( ), retorna o conteúdo de um objeto Boolean para uma variável ou método, ou evento ou objeto, etc., como um valor do tipo básico boolean.Exemplo: Boolean objetoB = new Boolean(“true” ); boolean B = objetoB.booleanValue( );

valueOf(String s) – O método valueOf converte um objeto s do tipo String para um objeto do tipo Boolean. Exemplo: Boolean objetoC; String objetoS = “true”; Boolean objetoB = Boolean.valueOf(objetoS); objetoC = Boolean.valueOf(objetoS);// O método valueOf será sempre chamado pela classe Boolean.

Page 32: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Conversão de TipoConversão de TipoClasse integer

intValue() – Converte o valor do objeto Integer em um tipo básico int. Exemplo: Integer objI = new Integer(14);

int varI = objI.intValue( );toHexString(int i) – Converte o numero inteiro (1254) em hexadecimal (4e6) e depois

transforma em um objeto String com a representtação (4e6).Exemplo: String varTexto = Integer.toHexString(1254);

toOctalString(int i) – Converte o numero inteiro i em um objeto String que representa o numero inteiro i em base 8(Octadecimal).

Exemplo: String varTexto = Integer.toOctalString(1254);toBinaryString(int i) – Converte o numero inteiro i em um objeto String que representa

o numero inteiro i em base 2(Binaria).Exemplo:String varText = Integer.toBinaryString(1254);

parseInt(String s) – Converte um objeto String s para um número inteiro de base 10.Exemplo: int varint = Integer.parseInt(“76”);parseInt(String s, int radix) – Converte um objeto String s que tem a base especificada

por radix (Decimal = 10, Hexadecimal = 16, Octal = 8, Binária = 2) para um inteiro de base 10.

Exemplo: int varInt = Integer.parseInt("10101011",2);

Page 33: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Instalando o Software Development KitAtualmente, o SDK 1.3 ou 1.4 está disponível para as seguintes

plataformas:Windows 32, Solaris e Linux

Podem ser obtidas em http://www.javasoft.com

Configuração mínima:Processador Pentium de 166 MHZ, 32 MB de memória e 65 MB de espaço em disco.

Procedimentos para instalação

• Instalar os arquivos em um subdiretório específico(padrão jdk1.3).Para facilitar seu trabalho pode-se nomear o diretório com java2java2 durante a instalação.

• Em ambiente Windows acrescentar no AUTOEXEC.BAT:• SET JAVA_HOME=C:\java2• SET JDK_HOME=%JAVA_HOME%• PATH=%PATH%;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin• SET CLASSPATH=.; %JAVA_HOME%\lib;%JAVA_HOME% \jre\lib

Page 34: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Estrutura Básica/*Teste de arquivo em Java*/import java.io.*;

public class teste{public static void main(String args[ ]){

System.out.println("Olá Java !");System.out.println("Teste concluído com êxito");}

}

Page 35: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Estrutura Básica public – É um especificador de acesso que indica que

qualquer classe pode ver o método main. static – Indica que o método deve ser compartilhado

por todos os objetos criados que são criados a partir desta classe.

void – Função não retorna nenhum valor (String args[ ]) – Argumento de main é um vetor de

strings que é formado quando são passados ou não argumentos através da invocação do nome do programa na linha de comando do SO.

System.out.println – Chama o método println para o atributo out da classe ou objeto System. O método println é parte da API de JAVA que é um conjunto de classes padrões que podem ser usadas em qualquer programa Java.

Page 36: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Palavras reservadas

abstract doabstract do implements private throw booleanimplements private throw boolean

doubledouble import protected import protected throws breaakthrows breaak else else

Instanceof public transientInstanceof public transient bytebyte extends intextends int

returnreturn true case false true case false interface short interface short

try catch final longtry catch final long staticstatic voidvoid

char finallychar finally native native supersuper volatile classvolatile class

floatfloat newnew switch switch whilewhile continue forcontinue for

nullnull synchronizedsynchronized default if package default if package thisthis

Page 37: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Estrutura Básica ComentáriosComentários- Os comentários podem ocupar uma

ou mais linhas. Podem ser: //// - Indicam que o comentário dura até o final daquela

linha). /*/* (início) e */ */ (fim) - O comentário dura até os caracteres

*/ serem encontrados. /**/** (incio) e */ */(fim)- Commetário para documentação.

O nome do arquivo para um programa java deve ser o mesmo ao da classe que contém o método mainmain, com a extensão .java.java. No exemplo anterior seria teste.java.

Page 38: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

CompilaçãoCompilaçãoQualquer editor pode ser utilizado para a Qualquer editor pode ser utilizado para a compilação.compilação.

CompilaçãoCompilação: javac nome_da_classe.javaEx: javac teste.java

ExecuçãoExecução : java nome_da_classeEx: java teste.java

Podem ser usandos argumentos em linha de comando. System.out.println("Teste Podem ser usandos argumentos em linha de comando. System.out.println("Teste concluido com exito" + args[0]);concluido com exito" + args[0]);

java teste Armandojava teste Armando

Ola Java !Ola Java !

Saída: Teste concluído com êxito ArmandoSaída: Teste concluído com êxito Armando

Page 39: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

O Ambiente Javajavac :Compila programas fonte e gera arquivos de classe no formato bytecode.java : Interpreta aplicações escritas em Java.jdb :Faz depuração da execução de aplicações e applets Java.javap : Desassemblador de bytecodes.javadoc : Gerador de documentação HTML a partir de programas fonte Java.appletviewer : Carregador de applets sem usar web browsers.

Page 40: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

API Java

As classes da As classes da API JAVA são API JAVA são agrupadas em agrupadas em pacotes, pacotes, sendo todos sendo todos eles eles agrupados em agrupados em um pacote um pacote simples simples denominado denominado java.java.

Define os tipos primitivos é automaticamente importado em todos os programas Java.

java.lang

Cálculos com alta precisão (max, min, seno, tangente..)

java.math

Serviços de internetjava.netInteração com banco de dados (SQL).

java.sql

Utilidade geral (várias estruturas de dados e serviços).

java.util

Serviços de entrada e saídajava.io

Possibilita o uso de gráficos em um programa Java s e para criar Interface gráfica para usuários (GUI).

java.awt

Contém as classes que suportam o desenvolvimento de Applets

java.applet

Page 41: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Módulos/Pacotes Um conjunto de classes relacionadas podem ser

agrupadas em módulos, chamados de pacotes. Módulos definem restrições de acesso de seu

conteúdo para clientes fora do módulo. Tudo que pode ser acessado publicamente está

declarado na sua interface pública. O conceito de módulo é muito útil para o

ocultamento de detalhes de implementação.

Page 42: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Módulos/Pacotes Módulos implementam o conceito de tipos

abstratos de dados. Eles consistem em duas partes: uma parte

de especificação (definição do módulo) e outra de implementação (corpo do módulo)

Em Java, módulos podem ser definidos usando-se a palavra reservada packagepackage.

Page 43: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Objetos em Java O operador newnew é usado em Java para se criar

objetos. Ex.:Date d1 = new Date();

Lampada l2 = new Lamapada(); Pode-se solicitar serviços(enviar mensagens ou

acessar os dados) de um objeto antes que ele seja instanciado com new

Você pode criar tantos objetos quanto necessário ao seu programa.

Page 44: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Objetos em Javaimport java.util.Date;

public class objdata{

public static void main(String args[]){

Date dt = new Date();

System.out.println("Hoje e " + dt.toString());

System.out.println("O ano e " + dt.getYear());

System.out.println("O mês e " + dt.getMonth());

System.out.println("O dia e " + dt.getDate());

System.out.println("\n Mudança de dia ");

dt = new Date(1997,11,25);

System.out.println("Hoje e " + dt.toString());

System.out.println("O ano e " + dt.getYear());

System.out.println("O mês e " + dt.getMonth());

System.out.println("O dia e " + dt.getDate());

}

}

Obs:toString – método que retorna a informaçãoObs:toString – método que retorna a informação Sem o Sem o newnew no inicio o programa não compilaria no inicio o programa não compilaria dt é uma instância de Datedt é uma instância de Date

Page 45: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Classe em Java É uma descrição de um grupo de objetos com

propriedades similares(atributos),comportamento comum(operações),relacionamentos com outros objetos e semânticas idênticas.

Todo objeto é instância de uma classe Ex.: int a;

Pessoa p; Objeto- Entidade concreta que executa um

papel no sistema Classe- Captura a estrutura e comportamento

comum a todos objetos que estão realcionados. Objetos podem ser agrupados em classes.

Page 46: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Métodos em Java Utiliza-se a palavra-chave publicpublic que permite

que qualquer parte do programa acesse este método.

A implementação interna pode ser alterada sem alterar qualquer código além das operações da classe. Ex.: public int getSaldo()(return saldo);

public int getCPF()(return cpf);public String getTitular()(return titular);public void setSaldo(int s)(saldo=s;);Public void setTitular(String n)(titular=n;);

Page 47: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Métodos em Java Chamando métodosChamando métodos

Notação:nomedoobjeto.nomedometodo(argumentos);

Chamadas aninhadasEx.:myObject.getClasse().getName(); myObject.var.methodTwo(arq1,arq2); System.out.println(arq1);

Page 48: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Herança em JavaDocumento

autordataDeChegada

imprimir()editar()

Carta Telegrama

transporte

anexar()

horaregistrar()pagar()

Page 49: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Herança em Java Classe Derivada ou Subclasse ou Classe Filha:

é uma classe que herda parte dos seus atributos e métodos de outra classe.

Classe Base ou Superclasse ou Classe Pai: é uma classe a partir da qual classes novas podem ser derivadas.

Classes Ancestrais são aquelas das quais uma superclasse herda.

Classes Descendentes são aquelas que herdam de uma subclasse.

Page 50: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Exemplo de herançaExemplo de herançaContaBancária

ContaCorrente

ContaDePoupança

AplDeCurto Prazo

Page 51: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Exemplo de herançaclass ContaBancaria { private double saldo; // saldo corrente

public ContaBancaria (double sal){ saldo = sal; }

public void deposita(double valor){ saldo += valor; }

public double retornaSaldo() { return saldo; }};

Page 52: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Exemplo de herança

class ContaDePoupanca extends ContaBancaria {

private double indice;

public double calcula(); public double retira(); };

Page 53: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Exemplo de herança

class ContaCorrente extends ContaBancaria {

private double limite;

private double taxa; public double descontaCheque(double valor); };

Page 54: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Exemplo de herança

class AplCurtoPrazo extends ContaDePoupanca {

private double fundoDisponivel;

public double retornaFundoDisponivel(){ return fundoDisponivel; } };

Page 55: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Herança de implementação

Lista

Pilha

objetoLista

objetoPilha

Classes Objetos Mensagens

AdicionaInicio()

RemoveInicio()

AdicionaFim()

RemoveFim()

AdicionaInicio()

RemoveInicio()

AdicionaFim()

RemoveFim()

Empilha()

Desempilha()

AdicionaInicio()RemoveInicio()AdicionaFim()RemoveFim()

Empilha()

Desempilha()

usaAdicionaFim()

usaRemoveFim()

Page 56: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Herança de comportamento

O mecanismo de herança é empregado para construção de hierarquias de tipos.

Uma hierarquia de tipos é composta de subtipos e supertipos.

Definição de Subtipo: Um tipo S é um subtipo de T se e somente se

S proporciona pelo menos o comportamento de T.

Um objeto do tipo T pode ser substituído por um objeto do tipo S.

Page 57: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Herança de comportamento

Em Ada, uma variável do tipo SMALLINT herda todas as propriedades do tipo INTEGER.

A noção de tipo/subtipo assemelha-se à noção de conjunto/subconjunto.

Todos os objetos Baleia é um subconjunto dos objetos Mamífero.

Page 58: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Herança de comportamento

gato

baleiahumano

mamifero

Mamifero

Humano Baleia Gato

Page 59: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Controle de fluxoIf, elseIf, else  

if (expressão) { Declarações ou blocos }else{ Declarações ou blocos } switchswitch  

switch (expressão)// Esta expressão deve ser int ou char{ case cond01:declarações; break; case cond02:declarações;break;case cond03:declarações;break;

}

Page 60: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Controle de fluxoforfor (expr_inicial; condição_boolean; incremento)

{ Declarações ou blocos;}

 whilewhile(condição_boolean)

{ Declarações ou blocos;}

dodo{ Declarações ou blocos;}

whilewhile(condição_boolean);

Page 61: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Lendo Entradas-Strings /* @author:Armando Hage @version:1.0Exemplo de um programa em java que lê uma variável via console */import java.io.*;public class lenome{

public static void main(String args[ ])throws IOException{

//Variável de entrada de DadosBufferedReader entra=new BufferedReader (new InputStreamReader(System.in)); String nome="Seu nome ficará aqui"; System.out.print("Digite seu nome:"); nome=entra.readLine();//Leitura da String System.out.println("Ola "+nome); }}

Page 62: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Lendo Entradas-Valores Numéricosimport java.io.*;public class somavalores{ public static void main(String args[ ])throws IOException{//Variável de entrada de DadosBufferedReader entra=new BufferedReader(new InputStreamReader(System.in));double a,b,c;System.out.print("Entre com primeiro valor:");a=Double.parseDouble(entra.readLine());System.out.print("Entre com segundo valor:");b=Double.parseDouble(entra.readLine());System.out.print("Entre com terceiro valor:");c=Double.parseDouble(entra.readLine());double soma=a+b+c;System.out.println("Soma=" + soma); } }

Page 63: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Exemplos/* SOMA DOS NUMEROS DE 1 ate 10UTILIZANDO O COMANDO WHILE*/public class soma100 { public static void main(String args[ ]) { int i=0; while(i<=100){ System.out.println(i); i++; } System.out.println("Fim do programa");} }

Page 64: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Exemplos/* SOMA DOS NUMEROS DE 1 ate 10UTILIZANDO O COMANDO FOR*/public class soma100for { public static void main(String args[ ]) { int i=0; for(i=0; i<=100; i++){System.out.println(i);i++;} System.out.println("Fim do programa");}}

Page 65: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Exemplosimport java.io.*;

public class areatriangula{

public static void main(String args[ ])throws IOException{

//Variável de entrada de Dados

BufferedReader entra=new BufferedReader(new InputStreamReader(System.in));

float base,altura,area;

System.out.print("Digite a base:");

base=Float.parseFloat(entra.readLine());

System.out.print("Digite a altura:");

altura=Float.parseFloat(entra.readLine());

area = (base * altura) / 2;

System.out.println("area = " + area + "\n"); }

}

Page 66: Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes da linguagem Java Resolução de Problemas Professor: Armando.

Exercício• Desenvolva uma classe que leia um nome a idade o

sexo do usuário e mostre em uma única frase.

• Faça uma classe que leia a temperatura em ºF e mostre em ºC (Obs.: C= 5*( (F-32)/9 )

• Usando switchswitch faça uma classe que a partir de um valor numérico digitado mostre qual o mês correspondente.

• Gerar 100 números aleatórios e calcular sua média(Obs.: int num = (int)(Math.random()*10);

• Faça um programa que calcule o delta e as raízes de uma equação do 2º grau.

Bibliografia: Programando em Java(Oliva,Alexandre.) Dominando Java(Naughton,Patrick.)