A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Introdução à Programação.

Apresentações semelhantes


Apresentação em tema: "Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Introdução à Programação."— Transcrição da apresentação:

1 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Introdução à Programação OO Usando Java Profa. Isabel Harb Manssour (Material adaptado das aulas dos Profs.: Luciana Nedel e Júlio Machado) zRevisão de Conceitos zConvenção de Nomes zTipos de Dados e Operadores zClasses e Objetos zSobrecarga de Métodos zExercícios

2 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Revisão de Conceitos zAbstração yCapturar as informações essenciais das entidades/objetos zProjeto de um sistema OO yIdentificar as abstrações/entidades yIdentificar os serviços de cada uma yIdentificar os relacionamentos entre essas entidades zEncapsulamento yEsconder como as coisas funcionam ( data hiding ) por trás de uma interface externa

3 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Revisão de Conceitos zExemplos de abstração yCaneta yCarro yFuncionário yAluno

4 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Revisão de Conceitos zClasse yModelo que descreve uma abstração e a partir do qual podemos criar objetos de um dado tipo yUma classe é um tipo definido pelo usuário yAssocia dados e operações x Atributos (ou variáveis): elementos que diferenciam objetos de uma mesma classe x Métodos (ou funções): operações realizáveis sobre a classe (operam sobre os atributos)

5 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Revisão de Conceitos zConstrutor yÉ executado automaticamente cada vez que um novo objeto é criado (método de inicialização) yO nome do método construtor é o mesmo da classe yO método construtor não possui tipo de retorno

6 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Revisão de Conceitos zObjeto = instância de uma classe yDepois de criado, conterá todas as variáveis incluídas na definição da sua classe yOs atributos (ou variáveis) determinam o estado de um objeto yOs métodos (ou funções) determinam o comportamento de um objeto yResumindo: um objeto consiste em um conjunto de estruturas de dados e de rotinas que agem sobre essas estruturas

7 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Revisão de Conceitos zMensagem: yRequisição para um objeto executar uma de suas operações (chamada a um método) yTrocas de informações entre objetos zExemplo yClasse Ponto getX getY deslocaXY imprimeXY Interface x=2 y=4 getX getY deslocaXY imprimeXY x=2 y=4

8 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Revisão de Conceitos zExemplo yClasse TestaPonto e classe Ponto getX getY desloca(x,y) imprime(x,y) Ponto(x,y) Cria ponto (2,4) Desloca ponto: 1,1 Imprime o ponto

9 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Revisão de Conceitos Ponto Double x Double y Ponto(double x1, double y1) double getX() double getY() void desloca(double x1, double y1) void imprime() Propriedades Interface OBJETOSOBJETOS P Ponto(double x1, double y1) double getX() double getY() void desloca(double x1, double y1) void imprime() P Ponto(double x1, double y1) double getX() double getY() void desloca(double x1, double y1) void imprime()

10 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Convenção de Nomes zClasses: xSubstantivos que começam com uma letra maiúscula xExemplo: Pessoa, Lampada zArquivos xMesmo nome da classe com extensão.java xExemplo: Pessoa.java, Lampada.java zMétodos xVerbos que começam com uma letra minúscula xExemplo: getNome(), setNome(), ligaLampada()

11 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Convenção de Nomes zAtributos xSubstantivos que começam com uma letra minúscula xExemplo: nome, ligada zVariáveis locais e parâmetros Pequenas e escritas em letras minúsculas xExemplo:i, j, k,n zConstantes xLetras maiúsculas separadas por _ xMAX_SALARIO, MIN_VALOR, DEFAULT_COLOR

12 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Tipos de Dados e Operadores zTipos de dados primitivos yinteiros: byte (8), short (16), int (32), long (64) x1, yreais: float (32), double (64) x3.0F, 4.02E23, 3.0 ycaractere: char (16) xa, \n ybooleano: boolean (8) xtrue, false

13 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Tipos de Dados e Operadores zVariáveis x int valor1, valor2=123; x double taxa, percentual; zConstantes x final double PI = ; zOperadores xaritméticos: +, -, *, /, % (resto da divisão) xrelacionais: >, >=, <, <= xigualdade: ==, != xlógicos: &&, & (and), ||, | (or), ^ (xor), ! (not) xatribuição: =, +=, -=, *=, /=, %= xincremento, decremento: ++, --

14 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Tipos de Dados e Operadores zString yÉ uma classe e não tipo primitivo y String nome = "Maria"; yConcatenação: + x String nomeCompleto = nome + " " + "Pereira"; yJava converte outros tipos para strings x int idade = 25; x String nomeIdade = nome + " " + idade;

15 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Classes e Objetos zDefinições de classes incluem (geralmente): ypalavra-chave class ymodificador de acesso (garante encapsulamento) yatributos de instância yatributos de classe ymétodos de instância ymétodos de classe yconstrutores

16 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Classes e Objetos zModificadores de acesso yPermitem definir o encapsulamento de atributos e métodos yTrês modificadores principais: x private : visível apenas na classe atual x public : visível para qualquer classe externa x protected : em breve...

17 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Classes e Objetos zRecomendações yA menos que hajam razões fortes, xOs atributos de uma classe devem ser definidos como private (encapsulamento) xOs métodos que são chamados de fora da classe devem ser public (interface de acesso) yMétodos que devem ser usados somente dentro da própria classe, devem ser especificados como private

18 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Classes e Objetos zExemplo: classe Professor yAtributos estão encapsulados!!! yApenas os métodos da própria classe professor podem acessar os atributos class Professor { private String nome; private int matricula; private int cargaHoraria;... } // fim da classe

19 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Classes e Objetos... public String getNome(){ return(nome); } public int getMatricula(){ return(matricula); } public int getChsemanal(){ return(cargaHoraria); } public float getChmensal(){ return(cargaHoraria * (float)4.5); } } // fim da classe

20 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Classes e Objetos zInstanciação yUm objeto depois de criado, conterá todos os atributos e métodos descritos em sua classe. yPara informar os valores dos atributos quando o objeto é instanciado, se utiliza um método especial: construtor... Professor(String n,int mat,int chor){ nome = n; matricula = mat; cargaHoraria = chor; }... } // fim da classe

21 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Classes e Objetos Para instanciar (ou criar) um novo objeto em Java se utiliza o operador new yExemplo: Professor prof1; prof1 = new Professor("Maria",234,8); prof1 NULL prof1 nome: Maria matricula: 234 cargaHoraria: 8 Professor(String,int,int) String getNome( ) int getMatricula( ) int getChsemanal( ) int getChmensal( )

22 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Classes e Objetos Para matar novo objeto em Java se utiliza null yExemplo: Professor prof1; prof1 = new Professor("Maria",234,8);... Prof1 = null; // garbage collection prof1 NULL prof1 nome: Maria matricula: 234 cargaHoraria: 8 Professor(String,int,int) String getNome( ) int getMatricula( ) int getChsemanal( ) int getChmensal( ) prof1 NULL

23 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Classes e Objetos zQuando o operador new é usado é alocada memória zQuando um objeto não é mais necessário, devolve- se o(s) recurso(s) para o sistema zJava realiza a coleta de lixo automática da memória zQuando um objeto não é mais utilizado, ele é marcado para coleta de lixo

24 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Classes e Objetos zAtributos y Atributos de instância : xCada objeto da classe possui uma cópia de cada atributo de instância y Atributos de classe (static): xA classe possui apenas uma cópia do atributo, compartilhando-o entre todos os objetos

25 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Classes e Objetos zExemplo: public class Esfera { // atributos da classe static double PI = 3.14; // atributos de instância double x, y, z; double raio; } bolinha x, y, z = (0, 0, 0) raio = 10 bolão x, y, z = (0, 5, -10) raio = 50

26 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Classes e Objetos zMétodos definidos em uma classe permitem a manipulação dos atributos da classe em questão zMétodos yMétodos de instância yMétodos de classe (static) xPodem ser executados mesmo que nenhum objeto tenha sido instanciado xExemplo: main()

27 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Classes e Objetos class Esfera { static final double PI = 3.14; // atributos de instância double x, y, z; double raio; // método de instância public double volume ( ) { return 4.0/3.0*PI*raio*raio*raio; } // método de classe public static double getPI ( ) { return PI; } Indica uma constante

28 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Classes e Objetos zExecução de um programa em Java yUm programa é composto de várias classes e objetos yPara indicar por onde o programa começa a executar existe um método especial que o interpretador assume como o início do programa: main x public static void main (String args[ ])

29 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Sobrecarga de Métodos zJava permite a definição de diversos métodos de uma mesma classe, com o mesmo nome, contanto que o conjunto de parâmetros seja diferente zAssim, por exemplo, é possível ter múltiplos construtores

30 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Sobrecarga de Métodos zExemplo: classe Esfera class Esfera { … // construtores da classe public Esfera (double oraio, double a, double b, double c) { raio = oraio; x = a; y = b; z = c; } public Esfera () { // Cria uma esfera unitária raio = 1.0; x = 0.0; y = 0.0; z = 0.0; } … Esfera bola = new Esfera(); Esfera bolinha = new Esfera(10.0, 2.0, 2.0, 2.0); …

31 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Exercícios 1) É possível adicionar o construtor abaixo à classe Esfera? Esfera (double diametro, double a, double b, double c) { raio = diametro/2.0; x = a; y = b; z = c; }

32 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Exercícios 2) Considerando a classe Ponto exemplificada anteriormente, defina uma classe Reta (Reta.java) com as seguintes características: yArmazene um segmento de reta 2D (definido por 2 objetos da classe Ponto ); yPermita a criação de um objeto Reta a partir de dois pontos; yPermita a criação de um objeto Reta a partir de dois pares de coordenadas double; yCalcule o comprimento do segmento de reta;

33 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Exercícios 3) Defina a classe TestaGeom para testar as classes Ponto e Reta implementadas nos exercícios anteriores. Esta classe deve: yinstanciar 2 objetos Ponto yinstanciar um objeto Reta yvisualizar no monitor a posição dos pontos criados e o comprimento da reta

34 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Exercícios 4) Escreva uma classe Contador, que apresente métodos para informar o valor inicial, incrementar, decrementar e exibir o valor atual na tela. Exemplifique a utilização desta classe criando uma nova classe que crie dois ou mais contadores e use os métodos definidos. yPor exemplo, crie 3 contadores e chame alguns métodos para incrementar/decrementar o contador. No final, exiba o valor de cada contador.

35 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Respostas dos exercícios 1) Não!!! Pois os construtores possuem os mesmos parâmetros!!

36 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Respostas dos exercícios 2) class Reta { Ponto p1; // Inicio da reta Ponto p2; // Fim da reta // Cria um segmento de reta a partir de dois pontos Reta (Ponto p1, Ponto p2) { this.p1 = p1; this.p2 = p2; } Observe o uso do this

37 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Respostas dos exercícios // Cria um segmento de reta a partir de dois pares de // coordenadas Reta (double x1, double y1, double x2, double y2) { p1 = new Ponto(x1, y1); p2 = new Ponto(x2, y2); } // Calcula o comprimento do segmento de reta double comprimento ( ) { double x = p1.getX()-p2.getX(); double y = p1.getY()-p2.getY(); return Math.sqrt(x*x+y*y); } ATENÇÃO Observe a diferença entre os dois construtores. No primeiro, são utilizados objetos Ponto já existentes enquanto que no segundo dois objetos Ponto novos são criados para definir um objeto Reta.

38 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Respostas dos exercícios 3) class TestaGeom { public static void main (String[] args) { Ponto ini = new Ponto(0.0, 1.0); Ponto fim = new Ponto(5.0, 6.0); Reta linha1 = new Reta(ini, fim); Reta linha2 = new Reta(0.0, 3.0, 3.0, 0.0); ini.mostra(); fim.mostra(); System.out.println("Comprimento da linha1 = " + linha1.comprimento()); }

39 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Respostas dos exercícios public class Contador { private int cont; public Contador() { cont = 0; } public Contador(int c) { cont = c; } public void incrementa( ) { cont++; } public void incrementa(int x) { cont += x; } public void decrementa( ) { cont--; } public int get( ) { return cont; } public void exibe( ) { System.out.println("Contador = " + cont ); } 4)

40 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Respostas dos exercícios 4) public class TestaContador { public static void main(String[] args) { Contador c1, c2, c3; c1 = new Contador(); c2 = new Contador(4); c3 = new Contador(10); c1.incrementa(); c2.decrementa(); c3.incrementa(); c3.incrementa(4); System.out.println("Valores dos contadores c1, c2 e c3:"); c1.exibe(); c2.exibe(); c3.exibe(); }


Carregar ppt "Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Introdução à Programação."

Apresentações semelhantes


Anúncios Google