Informática - Curso Java - A Linguagem de Programação Java - Orientação e Objetos
Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes...
-
Upload
manuella-lima-weber -
Category
Documents
-
view
235 -
download
2
Transcript of Disciplina: Estrutura de dados em Java Programação Orientada a Objetos Linguagem Java Componentes...
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 !
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
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)
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.
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)
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
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()
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.
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.
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.
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.
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.
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
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
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.
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.
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
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
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.
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.
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
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.
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.
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
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
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
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;;
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”
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.
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;
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.
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);
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
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");}
}
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.
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
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.
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
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.
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
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.
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.
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.
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
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.
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;);
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);
Herança em JavaDocumento
autordataDeChegada
imprimir()editar()
Carta Telegrama
transporte
anexar()
horaregistrar()pagar()
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.
Exemplo de herançaExemplo de herançaContaBancária
ContaCorrente
ContaDePoupança
AplDeCurto Prazo
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; }};
Exemplo de herança
class ContaDePoupanca extends ContaBancaria {
private double indice;
public double calcula(); public double retira(); };
Exemplo de herança
class ContaCorrente extends ContaBancaria {
private double limite;
private double taxa; public double descontaCheque(double valor); };
Exemplo de herança
class AplCurtoPrazo extends ContaDePoupanca {
private double fundoDisponivel;
public double retornaFundoDisponivel(){ return fundoDisponivel; } };
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()
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.
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.
Herança de comportamento
gato
baleiahumano
mamifero
Mamifero
Humano Baleia Gato
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;
}
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);
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); }}
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); } }
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");} }
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");}}
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"); }
}
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.)