1 / 28

Orientação a Objetos e Java

Orientação a Objetos e Java. Antonio Mendes da Silva Filho. Objetos, classes, métodos e atributos. Programação Orientada a Objetos. Foco nos dados (objetos) do sistema, não nas funções Estruturação do programa é baseada nos dados, não nas funções As funções mudam mais do que os dados.

hester
Download Presentation

Orientação a Objetos e Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Orientação a Objetos e Java Antonio Mendes da Silva Filho

  2. Objetos, classes, métodos e atributos

  3. Programação Orientada a Objetos • Foco nos dados (objetos) do sistema, não nas funções • Estruturação do programa é baseada nos dados, não nas funções • As funções mudam mais do que os dados

  4. creditar Creditar Saldo Número 875,32 21.342-7 debitar Objeto Conta Bancária

  5. Creditar creditar Saldo Número 895,32 21.342-7 debitar Estados do Objeto Conta creditar(20) Creditar creditar Saldo Número 875,32 21.342-7 debitar

  6. Objetos • Objetos comportamento + características métodos + atributos estado encapsulado

  7. Classes • Classes agrupamento de objetos do mesmo tipo Animais Jacaré Mamíferos Invertebrados Cachorro Macaco Gafanhoto

  8. Definindo Classes em Java public class NomeDaClasse { CorpoDaClasse } • O corpo de uma classe pode conter • atributos • métodos • construtores (inicializadores) • outras classes...

  9. Estrutura mínima de um programa em Java public class <nome> { public static void main (String[] args) { <declarações> <comandos> } } • Onde, main: método por onde se inicia a execução • public: parâmetro de acesso • static: indica que main se aplica à classe • void: indica que main não retorna um valor

  10. Exemplo public class LeImprime { /** Lê e imprime um string */ public static void main(String[] args) { String nome; nome = Util.readStr(); System.out.println(nome); } }

  11. Definindo Atributos em Java public class Livro { private int anoDePublicacao; private int numeroDePaginas; private String titulo; ... } • cada atributo tem um tipo específico que caracteriza as propriedades dos objetos da classe • int e String denotam os tipos cujos elementos são inteiros e strings

  12. Primitivos char int boolean double ... Referência classes (String, Object, Livro, Conta, etc.) interfaces arrays Tipos em Java Os elementos de um tipo primitivo são valores, enquanto os elementos de um tipo referência são (referências para) objetos!

  13. Strings (String) • Não é um tipo primitivo e sim uma classe • Literais: “” “a” “POLI \n UPE \n” • Operadores: + (concatenação) ex.: “maio ” + “ de ” + 99= “maio de 99” • Note a conversão de inteiro para string • Há uma conversão implícita para todos os tipos primitivos

  14. Mais operadores sobre strings • Comparação (igualdade) de dois strings a e b String a ... String b ... a.equals(b) ou b.equals(a) • Tamanho de um string a a.length()

  15. Information Hiding public class Livro { private int anoDePublicacao; ... } A palavra reservada private indica que os atributos só podem ser acessados (isto é, lidos ou modificados) pelas operações da classe correspondente

  16. Information Hiding e Java • Java não obriga o uso de private, mas vários autores consideram isto uma pré-condição para programação orientada a objetos • O bug do ano 2000 e private... • Grande impacto em extensibilidade • Usem private!

  17. Definindo Atributos em Java • vários atributos de um mesmo tipo podem ser declarados conjuntamente • podemos especificar que um atributo deve ser inicializado com um valor específico public class Pessoa { private int anoDeNascimento; private String nome, sobrenome; private boolean casado = false; ... }

  18. Definindo Métodos em Java public class Conta { private String numero; private double saldo; public void creditar(double valor) { saldo = saldo + valor; } ... } Um método é uma operação que realiza ações e modifica os valores dos atributos do objeto responsável pela sua execução

  19. Definindo Métodos em Java parâmetros do método public class Conta { ... public void debitar(double valor) { saldo = saldo - valor; } } corpo do método tipo de retorno Por quê o método debitar não tem como Parâmetro o número da conta?

  20. Definindo Métodos em Java • O tipo do valor a ser retornado pelo método • Nome do método • Lista, possivelmente vazia, indicando o tipo e o nome dos argumentos a serem recebidos pelo método Usa-se void para indicar que o método não retorna nenhum valor, apenas altera os valores dos atributos de um objeto

  21. Definindo Métodos em Java public class Conta { private String numero; private double saldo; public String getNumero() { return numero; } public double getSaldo() { return saldo; } ... } Os métodos que retornam valores como resultado usam o comando return

  22. O Corpo do Método • Comandos que determinam as ações do método • Estes comandos podem • realizar simples atualizações dos atributos de um objeto • retornar valores • executar ações mais complexas como se comunicar com outros objetos

  23. Comunicação entre objetos • Os objetos se comunicam para realizar tarefas • A comunicação é feita através da troca de mensagens ou chamada de métodos • Cada mensagem é uma requisição para que um objeto execute uma operação específica conta.creditar(45.30) variável contendo referência para objeto nome do método a ser executado

  24. Imprimindo na tela concatenação de String e conversão de tipos public class Conta { private String numero; private double saldo; public void imprimirSaldo() { System.out.println("Conta: " + numero + " Saldo: R$" + saldo); } ... } A tela do computador é representada em Java por um objeto especial, armazenado na variável System.out

  25. Imprimindo na tela O código de impressão na tela faz parte da GUI do sistema e não deve ser misturado ao código inerente ao negócio, como acontece no exemplo anterior

  26. Exemplo – Programa de adição import javax.swing.JOptionPane; // import class JOptionPane public class Addition { public static void main( String args[] ) { String firstNumber, // first string entered by user secondNumber; // second string entered by user int number1, // first number to add number2, // second number to add sum; // sum of number1 and number2 // read in first number from user as a string firstNumber = JOptionPane.showInputDialog( "Enter first integer" ); // J2SE has JOptionPane class that allows you to display a dialog box containing information // JOptionPane is defined in the package called javax.swing. A package is referred to as a // Java class library or Java API. secondNumber = // read in second number from user as a string JOptionPane.showInputDialog( "Enter second integer" ); number1 = Integer.parseInt( firstNumber ); // convert numbers from type String to type int number2 = Integer.parseInt( secondNumber ); sum = number1 + number2; // add the numbers // display the results JOptionPane.showMessageDialog( null, "The sum is " + sum, "Results", JOptionPane.PLAIN_MESSAGE ); // 4th argument displays a message with no icon System.exit( 0 ); // terminate the program } }

  27. Exercício • Utilizando apenas os conceitos ilustrados até aqui, escreva um código em Java, definindo uma classe chamada Media a fim de que o programa leia 10 (dez) valores (correspondente a notas de estudantes) do tipo inteiro e calcule a média das notas e depois mostre na tela o valor da média obtida. • Dica: Observe o programa exemplo anterior que permite fazer a adição de números.

  28. Sugestões de leitura • K. Arnold and J. Gosling, The Java Programming Language, Addison-Wesley, 1996. • H. M. Deitel and P. J. Deitel, Java – How to Program, Prentice Hall, 3rd Edition, 1999. • http://java.sun.com

More Related