Linguagem de Programação I Orientação a Objetos em Java
Roteiro Introdução Classes e Objetos Declaração de Classes e Instanciação de um Objeto de uma Classe Declarando métodos com parâmetros Atributos, métodos get e set Tipos primitivos e tipo referência Inicializando objetos com construtores 2
Introdução Programação Orientada a Objetos Tudo é visto como objeto Na programação imperativa: Estrutura de dados + funções = programa Em POO: Estrutura de dados + funções = objeto objeto + objeto +... + objeto = programa 3
Objetos O que são objetos em linguagens OO? 4
Objetos O que são objetos em linguagens OO? Objetos representam entidades do mundo real: satélite, empregado, número, conta bancária, etc. Objetos podem ser simples ou complexos 5
Objetos O que são objetos em linguagens OO? Objetos são compostos de atributos dados que definem o estado do objeto métodos procedimentos que alteram o estado do objeto Exemplo de objeto: carro 6
Objeto carro Para construir o objeto carro, teremos de abstrair seus atributos e funções: um carro pode ter os seguintes recursos ou atributos: cor, velocidade, combustível, tamanho, modelo um carro pode: andar, parar, virar à esquerda, virar à direita 7
POO em Java Como descrever os objetos no mundo computacional? Temos de mapear os objetos reais em objetos computacionais e escrever programas que dão vida a estes objetos em um sistema computacional. 8
POO em Java Objetos (computacionais) são caracterizados por atributos e métodos: atributos são as propriedades de um objeto. métodos são as ações que um objeto pode realizar a execução de um método muda os valores dos atributos do objeto responsável pela execução neste caso dizemos que o objeto mudou de estado Objetos são modelados através de classes 9
Classes Como podemos definir as Classes? 10
Classes Classes são agrupamentos de objetos (computacionais) que têm propriedades em comum e podem realizar as mesmas ações. este agrupamento e classificação deve refletir o agrupamento natural dos objetos reais. classes introduzem a noção de tipos em linguagens orientadas a objetos: Organiza informações; 11
Classes em Java Java oferece recursos linguísticos para especificar (descrever) classes: class Nome_da_Classe { atributos métodos o corpo de uma classe é delimitado pelos símbolos { e, e corresponde à descrição dos atributos e métodos da classe 12
Classes em Java class Carro{ String cor, modelo; double velocidade = 0.0; String placa; void acelerar(double fator){ velocidade = velocidade * fator; void parar(){ acelerar(0.0); atributos métodos 13
Classes em Java class Pessoa { private String Nome, Sobrenome; private int AnoNasc; private boolean solteiro = true; int seculo_de_nascimento( ) { return... (AnoNasc / 100) + 1...; int idade(int ano_corrente) { return... ano_corrente - AnoNasc...;... 14
Declarando métodos com parâmetros TipoDeRetorno nomedometodo (Parâmetros) { Corpo 15
Atributos, métodos get e set private String nome; void setnome(sring n) { nome = n; String getnome() { return nome; 16
Tipos primitivos e tipo referência Tipos primitivos boolean byte char short int long float double 17
Tipos primitivos e tipo referência Tipo não primitivo ou tipo referência As classes que especificam os tipos dos objetos 18
Inicializando objetos com construtores Cliente(){ nome = ""; endereco = ""; rg = -1; Cliente(String n, String e, int r){ nome = n; endereco = e; rg = r; 19
Exercício Criar um classe empregado com os atributos nome, endereço, cpf e salário. Esta classe deve conter um método para visualizar os dados do empregado. Os dados devem ser acessados e modificados com métodos get e set. Exemplo do get e set para nome: void setnome(sring n) { nome = n; String getnome() { return nome; 20
Exercício Crie uma classe chamada Empregado com capacidade de gerar objetos contendo informações sobre nome (tipo String), endereço (tipo String) e o salário mensal (double) de um empregado. Sua classe deve conter um construtor para inicializar todas as informações do empregado. Forneça métodos set e get para cada atributo. Se o salário mensal não for positivo então grave o valor 0,0. Escreva uma aplicação de teste chamada de EmpregadoTeste avaliando as capacidades da classe Empregado. Crie dois objetos empregado e mostre o salário anual de cada um deles. Depois, dê um aumento de 10% no salário e mostre novamente o salário anual de cada um. 21
Construtor Empregado(Sring n, Sting e, double s) { nome = n; endereco = e; salario = s; 22