210 likes | 289 Views
PROGRAMAÇÃO I. Classes Objetos Atributos Construtores Métodos. ESTADO E COMPORTAMENTO. OBJETOS DO MUNDO REAL. Quantos objetos?. Quais classes?. Quantas classes?. Carro. 2. 1. 3. Pessoa. Estado (dados de cada objeto):. 6. - nome - peso - altura - endereço
E N D
PROGRAMAÇÃO I • Classes • Objetos • Atributos • Construtores • Métodos
ESTADO E COMPORTAMENTO OBJETOS DO MUNDO REAL Quantos objetos? Quais classes? Quantas classes? Carro 2 1 3 Pessoa Estado (dados de cada objeto): 6 - nome - peso - altura - endereço - renda mensal + muda endereço + altera renda mensal + faz exame médico - marca - ligado ou desligado - volume atual - estação sintonizada + liga + desliga + aumenta volume + seleciona estação 5 - placa - consumo médio - nível atual do tanque 4 Comportamentos: Rádio + anda + abastece + verifica nível do tanque 8 7 9 Unisinos – Prog I 2
Em Java O estado dos objetos é representado pelos seus atributos O comportamento dos objetos é descrito pelos seus métodos
O que são atributos? São as propriedades dos objetos de uma determinada classe. todos os objetos da classe Carro têm os mesmosatributos, com valores diferentes Exemplo: Consumo médio Nível do tanque 15 Consumo médio nível do tanque 45 Consumo médio Nível do tanque 18 40 Consumo médio Nível do tanque 55 12 45
O que é um método? É um serviço oferecido pelos objetos de uma determinada classe. selecionar uma estação Exemplo:
O que é um construtor? É um serviço especial oferecido pela classe para configurar (inicializar com valores) os atributos dos objetos quando estes são instanciados. Instanciar um objeto da classe Carro Exemplo: Clique aqui 15 Consumo médio Nível do tanque 40
Objetos de software No paradigma orientado a objetos, tudo são objetos • O aluno José Silva é um objeto • A aluna Maria Rodrigues é outro objeto • A data de nascimento (24/05/1986) é um objeto • A conta bancaria de número 1457-3 é um objeto • Objetos que compartilham certas características formam uma • classe • Cada objeto é dito uma instânciada sua classe
Representação na linguagem UML(Unified Modeling Language) Diagrama de Classe Responsabilidades de uma classe: Pessoa - nome :String - idade :int +Pessoa (n:String,i: int ) +fazAniversario ( ) +exibeDados ( ) Atributos, campos ou variáveis de instância Conhecimento Construtor e Métodos Comportamento é uma instância de é uma instância de Diagramas de objetos Pessoa nome Maria Reis idade Pessoa nome José Silva idade 25 19
Representação na linguagem UML Classe Responsabilidades de uma classe: Funcionario -nome -salario -numeroDeDependentes +mudaSalario +exibeDados +aumentaSalario +insereDependente Atributos, campos ou variáveis de instância Conhecimento Atributos e métodos são membros de uma classe Métodos ou funções Comportamento Dois objetos da classe Funcionario: Funcionario nome José Silva salario 2500.00 numeroDe 2 Dependentes Funcionario nome Anna Leme salario 3235.50 numeroDe 0 Dependentes Unisinos - Prof. Aníbal
Exercício 1.1. Usando a representação UML acima, modele a classe ContaBancaria definindo alguns membros (atributos e métodos) e alguns exemplos de instâncias. Pense num banco que possui diversas contas. Cada objeto conta deve ter um número e um saldo (valor em dinheiro que ela tem no momento). As operações que uma conta pode sofrer são retirada, depósito e consulta ao saldo. Classe Ex. de instâncias ContaBancaria numero 123 saldo 500.00 ContaBancaria -numero -saldo +deposita +retira +consultaSaldo ContaBancaria numero 065 saldo 1250.35 Unisinos - ProgI 10
Exercício 1.2. Repita o exercício anterior para modelar uma classe que simula (de forma bem simplificada) objetos do tipo Carro. Cada objeto carro tem um certo consumo médio de combustível (medido em km/litro), uma certa quantidade de combustível no tanque e, para identificá-lo, uma placa. O carro gasta combustível quando anda uma certa distância. Eventualmente, ele abastece para aumentar o nível do tanque e deve ter uma forma de verificar este nível. Classe Ex. de instâncias Carro -placa -consumoMedio -nivelDoTanque +anda +abastece +verificaNivel Carro placa ABC1111 consumoMedio 15.5 nivelDoTanque 47 Carro placa IJU8122 consumoMedio 15.5 nivelDoTanque 35 Unisinos - ProgI 11
Sintaxe: visibilidade class nome da classe { atributos construtor(es) métodos } Classes em Java Exemplo: public class Pessoa{ // atributos private String nome; private int idade; // aqui colocaremos o(s) construtor(es) // aqui colocaremos os métodos }
Identificadores • Servem para dar nomes a classes, atributos, métodos etc. • Um identificador é composto por qualquer quantidade de letras, dígitos e os sinais _ e $ • O primeiro caractére deve ser letra ou _ ou $ • Não pode haver brancos entre os caracteres • Maiúsculas são diferenciadas de minúsculas Exemplos: cor calculaImpostoDeRenda _nomeAluno $nota_1 1Autor nome Do Cliente coordenada-X Estes são inválidos! Por quê? Palavras-chave ou reservadas Termos da linguagem Java: class, private, int, double e outras Unisinos - ProgI 13
Comentários São textos explicativos que não afetam o processamento da classe. Três tipos: /** texto do comentário */ /* texto do comentário */ // texto do comentário Visibilidade dos membros de uma classe • Classes não vivem em isolamento • - Grau de privacidade das classes e de seus membros é dado pelos • modificadores de controle de acesso: • public– indica que o membro é acessível de qualquer outra classe • private– membro só é reconhecido pela própria classe • Importante • Todo membro de uma classe • é sempre acessível dentro da própria classe • Atributos devem ser sempre PRIVADOS Unisinos - ProgI 14
Exercício 1.3. Escreva a classe ContaBancaria em Java, dando tipos aos atributos e comentários para indicar o que cada método faz. public class ContaBancaria{ private int numero; private double saldo; /** Realiza um depósito na conta */ /** Faz um saque da conta */ /** Exibe na tela o valor atual do saldo*/ } Exercício 1.4. Repita o exercício anterior para a classe Carro. public class Carro{ private double consumoMedio; private int nivelDoTanque; /** Ao se deslocar, o carro consome combustível*/ /** Adiciona combustível no tanque*/ /** Exibe quant. atual de combustível no tanque*/ } Unisinos - ProgI 15
Algumas observações importantes • A classe é um modelo para criar objetos daquele tipo • Cada objeto terá valores individuais para cada atributo (campo) definidos • pela classe. • Atributos poderão ter seus valores alterados ao longo do tempo • Atributos, também são chamados de variáveis de instância • O conjunto de valores dos atributos de um objeto descrevem o • estado atual daquele objeto. Circulo raio 3.5 5.0 Unisinos - ProgI 16
Exercício 1.5. Dê exemplos de valores válidos para cada atributo que você declarou nas classes ContaBancaria e Carro. Exercício 1.6. Identifique cada termo da lista seguinte dizendo se é nome de classe, de atributo, de método ou se é um valor de atributo (neste último, informar o tipo): “quadrado” data Data numeroDeLados movePolígono 3 “hexágono” 4.56 exibe medidaDoLado Unisinos - ProgI 17
Criando objetos (instanciação) Criando obj A criação de um novo objeto em Java é feita em três etapas: 1ª. – declarar uma variável cujo tipo é a classe da qual o objeto será uma instância 2ª. – criar uma nova instância para o objeto, usando o operador new, que aloca espaço de memória para os atributos do novo objeto 3ª. – atribuir o endereço do objeto à variável objeto Ex: Funcionario f1; //Etapa 1 f1 =newFuncionario(); // Etapas 2 e 3 Na memória: f1 null Funcionario nome null salario 0.0 numeroDe Dependentes 0 Variável objeto ou referência Atributos ou variáveis de instância Unisinos - ProgI
Declara uma variável cujo tipo é a classe do objeto sendo instanciado Criando objetos (instanciação): operador new Atribui o endereço do objeto para a variável Aloca espaço de memória para o novo objeto e chama o construtor para configurar os valores dos atributos. Clique para ver o primeiro passo Clique para ver o terceiro passo Clique para ver o segundo passo Pessoa p1 =new Pessoa(“Maria”, 24); na Memória na Memória na Memória Pessoa nome Maria idade p1 // Variável objeto ou referência 24
Chamada (invocação) de método Após criado o novo objeto (referenciado por p1) podemos aplicar métodos da classe Pessoa a essa pessoa: Memória p1 chama o método que mostra na tela os valoresdos atributos do objeto referenciado por p1 Pessoa nome Maria idade Tela Maria 24 24 p1.exibeDados ( );
Exercício 1.7. Declare mais duas variáveis objeto para armazenar instâncias da classe Funcionario. Funcionario f3, f4; Exercício 1.8. Agora, complete a instanciação dos dois objetos declarados no exercício anterior. f3 =newFuncionario(); f4 =newFuncionario(); Exercício 1.9. Escreva as instruções para instanciar alguns objetos das classes ContaBancaria e Carro. ContaBancaria c1 = newContaBancaria(); ContaBancaria c2 = newContaBancaria(); Carro car1, car2; car1 = newCarro(); car2 = newCarro(); Unisinos - Prof. Aníbal