aulas de programação oo

54
Programação OO Utilizando Professor: Laurentino Augusto Dantas E-mail: [email protected]

Upload: graciolina-rosa

Post on 18-Nov-2015

9 views

Category:

Documents


1 download

DESCRIPTION

iniciação a programação

TRANSCRIPT

  • Programao OOUtilizandoProfessor: Laurentino Augusto Dantas E-mail: [email protected]

    Programao Orientada a ObjetosProf: Augusto Dantas

    Bibliografia BsicaDEITEL, H. M.; DEITEL, P. J. Java como Programar 3a edio. Porto Alegre : Bookman, 2001.FURGERI, Sergio. Java 2: ensino didtico: desenvolvendo e implementando aplicaes. So Paulo: rica, 2002.

    Programao Orientada a ObjetosProf: Augusto Dantas

    AvaliaesProvas (Peso 6.0)Trabalhos (Peso 4.0)

    Programao Orientada a ObjetosProf: Augusto Dantas

    ObjetivosApresentar a teoria envolvida no paradigma da Orientao a Objetos.Expor conceitos, metodologias e ferramentas indispensveis ao sucesso de um projeto orientado a objetos.Apresentar como essas tcnicas e conceitos so implementados na linguagem Java.

    Programao Orientada a ObjetosProf: Augusto Dantas

    ContedoHistrico e cenrio atual da POO;Programao estruturada e POO; Paradigma de programao orientada a objetos; Classes, Objetos; Polimorfismo; Sobrecarga de Mtodos; Herana; Encapsulamento; Interface grfica; Persisitncia de dados;Linguagem Java

    Programao Orientada a ObjetosProf: Augusto Dantas

    Criar os seguintes ProgramasCriar um Programa que leia 3 nmeros e informe o maior.Criar um programa que leia uma seqncia de 100 nmeros e informe o maior, o menor e a mdia dos nmeros lidos.Criar um programa que leia 100 nmeros, e imprima todos os nmeros lidos que so maiores que a mdia dos nmeros lidos.

    Programao Orientada a ObjetosProf: Augusto Dantas

    Sun MicrosystemsLinguagem Orientada a ObjetosCompilada e Interpretada

    Introduo

    Iniciando em JAVA

    Programao Orientada a ObjetosProf: Augusto Dantas

    CaractersticasLinguagem JAVA

    Simples e familiarOrientada a ObjetosCompilada e InterpretadaPronta para RedesDinmicoMulti threadIndependente de PlataformaColetor de Lixo Garbage ColectorSegura

    Programao Orientada a ObjetosProf: Augusto Dantas

    IntroduoLinguagem JAVAApplets x Aplicativos

    Aplicativos: Necessitam Interpretador na mquinaApplets: Interpretador est no BrowserJDK (Kit de desenvolvimento Java)

    Compilador, Interpretador e utilitriosjavac.java (Compilao)java (Execuo)appletviewer .htmljar (Compactador)javadoc (Gerao de documentao)

    Programao Orientada a ObjetosProf: Augusto Dantas

    Esquema de Utilizao do JDK - AplicativosCdigo fonte JavaTeste.java

    Compilador javac Teste.javaBytecodesTeste.class

    Interpretador java TesteLinguagem JAVA

    Programao Orientada a ObjetosProf: Augusto Dantas

    Linguagem JAVA

    Compilador javac AppletTeste.java

    Browser com Interpretador embutidoAppletTeste.html Cdigo binrioAppletTeste.classCdigo fonte JavaAppletTeste.javaCriao da pgina HTML para o AppletAppletTeste.htmlEsquema de Utilizao do JDK - Applets

    Programao Orientada a ObjetosProf: Augusto Dantas

    Linguagem JAVADesenvolvimento de aplicaes sempre feito atravs de classes.

    class NomedaClasse{// Atributos// Mtodospublic static void main( String args[] ){//corpo principal do programa}}Estrutura das Aplicaes Java

    Programao Orientada a ObjetosProf: Augusto Dantas

    Linguagem JAVAclass helloWorld { public static void main(String args[]) { System.out.println(" Hello World"); }}

    Exemplo helloWorld.javaElementos da Aplicao

    Primeira Aplicao

    Programao Orientada a ObjetosProf: Augusto Dantas

    Linguagem JAVASeparados por espao em brancoVetor de strings do mtodo main.Acesso feito indicando-se a posio no array,

    import java.lang.*;class App1{public static void main( String argv[] ){System.out.println(argv[0] + " " + argv[1] + " " + argv[2] );System.out.println( "Tamanho do terceiro parametro: " + argv[2].length() + " Nmero de parametros: " + argv.length);}}Passagem de Parmetros da Linha de Comando

    Programao Orientada a ObjetosProf: Augusto Dantas

    AtividadeLer o captulo 1 do Livro do Furgeri e fazer os exerccios.Ler o Captulo 1 do Deitel e Fazer os exerccios.Equipe de no mximo 4 pessoas.

    Programao Orientada a ObjetosProf: Augusto Dantas

    O que Orientao a Objetos?

    Tcnica de modelagem de software que procura construir sistemas complexos a partir de componentes.Khoshafian, S. e Abnous, R.Objetos so coisas que podem ser manipuladas.Martin, R.C.

    Programao Orientada a ObjetosProf: Augusto Dantas

    O Modelo de ObjetosAbstrao

    Encapsulamento

    Modularidade

    Hierarquia

    Programao Orientada a ObjetosProf: Augusto Dantas

    Abstrao

    Eliminao do irrelevante e amplificao do essencial

    Programao Orientada a ObjetosProf: Augusto Dantas

    Abstrao

    A abstrao denota as caractersticas essenciais de um objeto que o distingue de outros objetos e oferece uma fronteira conceitual claramente definida, sempre a partir da viso do observadorUma abstrao deve ser entendida e analisada independentemente do mecanismo que a implementa

    Programao Orientada a ObjetosProf: Augusto Dantas

    Encapsulamento

    Nenhuma parte de um sistema complexo deve depender de detalhes internos de qualquer outra parte

    Programao Orientada a ObjetosProf: Augusto Dantas

    Encapsulamento o processo de compartimentalizao dos elementos de uma abstraoEncapsulamento serve para separar a interface contratual de uma abstrao de sua implementao

    Programao Orientada a ObjetosProf: Augusto Dantas

    Modularidade

    Propriedade de um sistema estar decomposto em partes coesas e fracamente acopladas

    Programao Orientada a ObjetosProf: Augusto Dantas

    Modularidade

    A atividade de particionar um programa em componentes individuais pode reduzir sua complexidadeMdulos so dependentes uns dos outros, o que leva a uma relao de acoplamento

    Programao Orientada a ObjetosProf: Augusto Dantas

    ratos debrinquedomotores abase de molapartesdiversastomos

    HierarquiaClassificao e ordenao de abstraes

    Programao Orientada a ObjetosProf: Augusto Dantas

    Hierarquia

    Promove a classificao e organizao das abstraesFormas de organizao:

    Herana (simples ou mltipla)Agregao

    Programao Orientada a ObjetosProf: Augusto Dantas

    Como atingir Orientao a Objetos?Cumprindo os princpios fundamentais do modelo de objetos:

    AbstraoEncapsulamentoModularidadeHierarquia

    Programao Orientada a ObjetosProf: Augusto Dantas

    Relacionamentos entre Classes

    AgregaoHeranaAssociaoUsoInstanciao

    Programao Orientada a ObjetosProf: Augusto Dantas

    Agregao/decomposio

    Sob certo sentido, um objeto pode ser visto como um agregado de outros objetos (suas partes).

    Programao Orientada a ObjetosProf: Augusto Dantas

    Especializao/Generalizao (Herana)dependendo do contexto (domnio de aplicao) em que se est imerso, um mesma classe pode ser especializada de diferentes formas

    Programao Orientada a ObjetosProf: Augusto Dantas

    Classes X ObjetosClasses : agrupam os objetos com base em algum conjunto de propriedades comum a todos estes objetosObjeto: contm atributos e comportamentos que o caracterizam para o domnio de um problemaAtributos: descrevem as caractersticas ou propriedades dos objetosMtodos: manipulao dos atributos ocorre atravs dos procedimentos

    Programao Orientada a ObjetosProf: Augusto Dantas

    Conceito de Objeto

    raaidadeLATIRDEITARmtodospropriedadesABAIXAR

    Programao Orientada a ObjetosProf: Augusto Dantas

    Classe: PESSOAAtributos :cor_de_olho, cor_de_cabelo, idadeMtodos : faz_aniversario, muda_cor_de_cabelo.Instanciando esta classe PESSOA, obtemos o objeto:

    maria = new PESSOA ( );joao = new PESSOA ( );ExemploOrientao a Objetos

    Programao Orientada a ObjetosProf: Augusto Dantas

    Cada objeto tem suas caractersticas: maria.cor_de_olho = castanho;maria.cor_de_cabelo = castanho;maria.idade = 24;joao possui outros valores para seus atributos.

    joao.cor_de_olho = castanho claro;joao.cor_de_cabelo = preto;joao.idade = 26;ExemploOrientao a Objetos

    Programao Orientada a ObjetosProf: Augusto Dantas

    Mtodos so utilizados para alterar os valores dos atributos:

    maria.faz_aniversario ( );O mtodo faz_aniversario implementa uma rotina onde ir somar mais um no atributo idade de maria:

    faz_aniversario( ) {maria.idade = maria.idade+1;}MtodosOrientao a Objetos

    Programao Orientada a ObjetosProf: Augusto Dantas

    AtividadePesquisar sobre Orientao a Objetos:

    Histrico;Caractersticas;Comparativo entre programao estruturada e OO.Equipe de no mximo 4 pessoas.

    Programao Orientada a ObjetosProf: Augusto Dantas

    Comentrios

    // textoTodos os caracteres de // para o final da linha so ignorados./* texto */Todos os caracteres de /* para */ so ignorados./** texto * @ consulte java.appplet.Applet*/Identificadores

    Devem comear com uma letra, sublinhado (_) ou sinal de sifro ($).Java sensvel a maisculas e minsculas.Programando em Java

    Programao Orientada a ObjetosProf: Augusto Dantas

    Inteiros

    Inteiros podem ser expressados no formato: decimal (base 10), hexadecimal (base 16), ou octal (base8).2, 2L07770xDeadBeef

    Ponto Flutuante

    Representam valores decimais com um componente fracionrio. Podem ser expressos na notao padro ou cientfica.3.14153.1E12.1e122E12

    2.0d or 2.0Ddouble2.0f or 2.0F or 2.0floatBooleanos

    So expressados por true e false, sendo que estes no podem ser convertidos em nenhuma representao numrica.

    Tipos de Dados

    Programao Orientada a ObjetosProf: Augusto Dantas

    Caracteres

    Os caracteres em Java so ndices do conjunto de caracteres Unicode que so valores de 16 bits que podem ser convertidos em inteiros e manipulados com operadores inteiros. Um caracter inteiro representado dentro de um par de apstrofos ( ). Para os caracteres que no podem ser inseridos diretamente a tabela abaixo mostra algumas seqncias de escape de caracteres.\dddCaracter octal (ddd)\uxxxxCaracter UNICODE hexadecimal (xxxx)\Apstrofo\Aspas\ \Barra Invertida\rRetorno de carro\nNova linha (linefeed)\fForm feed\tTab\bBackspace

    Tipos de Dados

    Programao Orientada a ObjetosProf: Augusto Dantas

    Tipos de DadoTipos SimplesLarguraFaixabyte8-128 a 127short16-32768 a 32767int32-2.147.483.648 a 2.147.483.647long64-9.223.372.036.854.775.808...9.223.372.036.854.775.807float323,4e - 308..1,7e + 308double641,7e - 038..3,4e + 038char160 a 65536booleantrue ou false

    Programao Orientada a ObjetosProf: Augusto Dantas

    Converso de Tiposfloat y = (float)x; // int x = 10;double y = (double)x; // int x = 10;int y= (int)x; // float x = 10.5;float y = Float.parseFloat(x); // String x = 10;double y = Double.parseDouble(x) // String x = 10int y = Integer.parseInt(x); // String x = 10;byte b[] = x.getBytes(); // String x = java;String y = String.valueOf(x) // int x = 100;String y = new String(x) // byte x[];

    Programao Orientada a ObjetosProf: Augusto Dantas

    OperadoresOperadores AritmticosOperadorAo+Adio-Subtrao e menos unrio*Multiplicao/Diviso%Mdulo (resto da diviso)++Incremento+=Atribuio Aditiva-=Atribuio Subtrativa*=Atribuio de Multiplicao/=Atribuio de Diviso%=Atribuio deMdulo(resto de diviso)--DecrementoOperadores RelacionaisOperadorAo==Igual a!=Diferente>Maior do que=Maior ou igual a >Deslocamento direita (shift right)>>>Com zeros>=Atribuio de deslocamento direita>>>=Atribuio de deslocamento direita com preenchimento 0); } } Repetio (for)

    Comando compacto de repetio. Forma geral:

    for (inicializao; encerramento; iterao ) corpo;

    class for{ public static void main(String args[ ]) { for (int i = 1; i