e Objetos em Java Algoritmos e Programação I Aula 9 Profa. Márcia Cristina Moraes mmoraes@inf.pucrs.br Profa. Sílvia M. W. Moraes silvia@inf.pucrs.br Prof. Marcelo H. Yamaguti yamaguti@inf.pucrs.br Prof. Marco A. S. Mangan mangan@inf.pucrs.br Revisão : encapsulam dados (atributos) e operações sobre os dados (métodos) Objetos: instâncias de classes, têm estado (definido pelos atributos) e comportamento (definido pelos métodos) Todo programa Java consiste em pelo menos uma definição de classe (classes definidas pelo programador) Palavra chave class introduz uma definição de classe e é imediatamente seguida pelo nome da classe. public class ContaCorrente{ //definição dos atributos e métodos Convenção: nome de classe iniciam com letra maiúscula e tem uma letra maiúscula para cada palavra no nome da classe. Por exemplo: ExemploDeNomeDeClasse Nome da classe é chamado identificador. Identificador é uma série de caracteres que consistem em letras, dígitos, sublinhados (_) e sinais de cifrão ($), que não iniciem por dígito e não contenham espaço em branco. Java faz diferenciação entre maiúsculas e minúsculas. Definições de classes incluem (geralmente): modificador de acesso palavra-chave class nome da classe atributos de instância métodos de instância Modificadores de Acesso Determinam a visibilidade dos atributos e dos métodos. Permitem definir o encapsulamento de atributos e métodos. Três modificadores principais: private: podem ser acessados somente por métodos da mesma classe public: podem ser acessado de qualquer classe
Modificadores de Acesso Recomendação private para atributos public para métodos public class Conta { private int numero; //atributos private float saldo; public int consultanumero(){ //métodos return numero; public float consultasaldo() { return saldo; public void depositar(float valor){ saldo = saldo + valor; Definem serviços que podem ser solicitados a uma instância (objeto) Definição do método incluem: modificador de acesso; tipo do dado retornado após a execução do método; nome do método; o nome e tipos de parâmetros; código delimitado por chaves ({ ). Convenção: nome de métodos iniciam com letra minúscula e tem uma letra maiúscula para cada palavra no nome da classe. Por exemplo: verificasaldo Convenção: método get e método set get Retornam o valor dos campos (ou atributos) de um objeto, uma vez que não é possível acessá-los diretamente. set Permitem alterar o valor de um campo (ou atributo) cada vez que são chamados. Estes métodos são chamados por alguns autores de mutantes (mutator methods). Exemplo: Professor Fazer um sistema para guardar e consultar informações sobre a carga horária de professores. Assuma que um professor possui como atributos básicos nome, matrícula e carga horária.
Classe Professor public class Professor{ private String nome; private int matricula; private int cargahoraria;... Atributos estão encapsulados!!! Apenas métodos da própria classe Professor podem acessar os atributos. Classe Professor com get e set public class Professor{ private String nome; private int matricula; private int cargahoraria; public void setnome(string n) { nome = n; public String getnome() { return nome; public void setmatricula(int m) { matricula = m; public int getmatricula() { return matricula; public void setcargahoraria(int c) { cargahoraria = c; public int getcargahoraria() { return cargahoraria; UML UML (Unified Modeling Language) Linguagem para especificação, visualização e construção de sistemas que é padrão para modelagem orientada a objetos. Modo para descrever os vários aspectos de modelagem UML: diagramas. Diagrama Apresentação gráfica de uma coleção de elementos de modelo. Caso de uso, Classe, Interação, Estado, Implementação Notação UML Classe: retângulo dividido em três partes primeira parte: nome da classe segunda parte: atributos terceira parte: métodos Atributos e métodos private: - public: + Professor private String nome private int matricula private int cargahoraria public void setnome (String n) public String getnome () public void setmatricula (int m) public int getmatricula() public void setcargahoraria (int c) public int getcargahoraria() Notação UML Como Executar um Programa Java Professor - nome: String - matricula: int - cargahoraria: int + setnome (n: String) + getnome ( ): String + setmatricula (m: int) + getmatricula( ): int + setcargahoraria (c: int) + getcargahoraria( ): int Um programa é composto de várias classes e objetos. Como indicar por onde o programa começa? Em Java temos um método especial que o interpretador assume como o início do programa: main. public static void main (String args[ ])
Exemplo: Instancia Professor public class CriaInstaciaProfessor{ public static void main(string args[]){ Professor p1; Professor p2; p1 = new Professor(); p1.setnome( Maria ); p1.setmatricula(1234); p1.setcargahoraria(16); p2 = new Professor(); p1.setnome( Joao ); p1.setmatricula(5678); p1.setcargahoraria(10); 1) Escreva um método para a classe Professor que imprima todos os dados de um determinado professor. 2) Escreva uma classe Relogio com hora, minuto e segundo, que apresente métodos para informar a hora inicial, incrementar n segundos, decrementar n segundos e exibir a hora atual na tela. 3) Exemplifique a utilização desta classe criando uma aplicação que crie vários relógios e use os métodos definidos. Por exemplo, crie 3 relógios e chame alguns métodos para incrementar/decrementar n segundos do relógio. No final, exiba a hora atual de cada relógio. 4) Escreva uma classe para representar os dados de um funcionário celetista para o cálculo de seu salário líquido. O salário líquido é calculado a partir de seu salário base acrescido de R$ 20,00 por cada hora-extra realizada no mês. 5) Defina uma classe Ponto com as seguintes características: - armazene um ponto 2D (formato double); - permita especificar os valores das coordenadas x e y; - permita deslocar o ponto dx unidades para a direita e dy unidades para cima; - retorne o valor das coordenadas; - imprima na tela a posição do ponto P 6) Defina a classe CriarInstanciasPonto para testar a classe implementada no exercício 5. A classe deve: - instanciar dois objetos Ponto p1 e p2; - especificar os valores das coordenadas dos pontos; - deslocar o ponto p1 duas unidades para cima e quatro unidades para direita; - visualizar a posição dos pontos criados.
Bibliografia Deitel, H. M. E Deitel, P. J. Java: Como Programar. Bookman, Quarta Edição. 2002. Machado, Julio. Laboratório de Programação B. Notas de aula. http://www.inf.pucrs.br/~juliopm. 2003. Barnes, D. J.; Kölling, M. Objects First with Java: A Practical Introducing using BlueJ. 2003.