Introdução ao Ambiente Java

Documentos relacionados
Introdução ao paradigma da orientação a objetos

Programação Orientada a Objetos

Programação Orientada a Objetos

1 Introdução e Conceitos básicos

POO29004 Programação Orientada a Objetos

POO29004 Programação Orientada a Objetos

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Conceitos de Programação Orientada a Objetos

Desenvolvimento Web TCC Turma A-1

Conceitos de Programação Orientada a Objetos

Programação Orientada a Objetos

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

POO29004 Programação Orientada a Objetos

A programação orientada a objetos tenta simular estes aspectos, trazendo para o computador a realidade do dia-a-dia.


Linguagem de Programação II Implementação

Programação de Computadores II TCC Turma A-1

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

Princípios de Análise e Projeto Orientados a Objetos com UML

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Desenvolvimento Web. Conteúdo Orientação a Objetos. Prof.: Ilaim Costa Junior. Inspirados nos slides do prof. Leandro A. F.

Orientação a Objetos. Vanessa Braganholo

Programação Orientada a Objetos

Unidade 3: Classes em Java Para Programadores C Classes, Objetos e Tratamento de Erros Prof. Daniel Caetano

Atribuições: Valores, Ponteiros e Referências

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Linguagem de Programação IV Introdução

Linguagem de Programação II Implementação

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

POO Programação Orientada a Objetos

Orientação a Objetos Básica

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

POO UML e Outros Conceitos. Prof. Vicente Paulo de Camargo

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

Linguagem de programação Programação Orientada a objetos

1 Da aula teórica ao Java

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

Daniel Wildt

PROGRAMAÇÃO JAVA. Parte 3

Programação Orientada a Objetos Classes e Objetos. Prof. Vicente Paulo de Camargo

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

AULA 11 PROGRAMAÇÃO ORIENTADA A OBJETOS (INTRODUÇÃO) Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

Introdução a orientação a objetos

Atributos e Métodos Estáticos

Aula 15 Modelagem de Classes de Análise. Análise de Sistemas Prof. Filipe Arantes Fernandes

Orientação a Objetos e Java

Polimorfismo. O que é polimorfismo?

Introdução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Subprogramação. Leonardo Gresta Paulino Murta.

Introdução a Programação Orientada a Objetos

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO

Programação Orientada a Objetos

Encapsulamento. Separa a interface de um objeto dos detalhes de seu funcionamento interno. Caixa preta 2/27

Programação Orientada a Objetos

Unidade 9: Noções de Orientação a Objetos Prof. Daniel Caetano

Conceitos de Programação Orientada a Objetos

Reinaldo Gomes Análise/projeto estruturado

SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO. Luiz Leão

Linguagem de Programação. Diagrama de classes

Subprogramação. Leonardo Gresta Paulino Murta.

Conteúdo desta aula. Importância da AOO Conceito de Abstração Introdução à UML Introdução ao diagrama de classes

Aula 08 Encapsulamento. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Programação Orientada a Objetos em Java

Programação Orientada a Objetos

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

A figura abaixo representa uma classe denominada Carteira. Esta classe é composta dos métodos depositar(valor) e retirar(valor) e do atributo saldo.

ORIENTAÇÃO A OBJETOS Histórico:

Aula II Orientação a Objetos. Pedro Baesse Alves Pereira

Implementando um Projeto. Programação em Java. Do Projeto para Implementação. Classe Pública em Java. Corpo de Classes e Métodos. Convenção de Nomes

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Fundamentos de Programação

Programação Orientada a Objeto

Classes, instâncias e métodos de acesso. prática

Métodos em Java. Prof. Esp. André Aparecido da Silva (Aulas 31 a 33) Disponível em:

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Instituto Federal de Educação, Ciência e Tecnologia do Ceará IFCE Programa Educacional Brasileiro de Desenvolvimento para ios BEPiD PROVA OBJETIVA

Orientação a Objetos e UML

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

Modelo do Mundo Real. Abstração. Interpretação

Programação Orientada a Objetos

Prof. Jesus José de Oliveira Neto

TIMTec. Introdução à programação em linguagem JAVA

Programação Orientada a Objetos

Programação Estruturada

Conceitos Básicos. SCC0504 Programação Orientada a Objetos. Luiz Eduardo Virgilio da Silva ICMC, USP

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Transcrição:

Introdução ao Ambiente Java Programação Orientada a Objetos Prof. Tulio Alberton Ribeiro Instituto Federal de Santa Catarina IFSC campus São José tulio.alberton@ifsc.edu.br 31 de julho de 2014 1 / 36

Desenvolvimento de software Princípio básico O desenvolvimento de todo e qualquer software inicia-se com a abstração do problema. Ou seja, retirar do domínio do problema detalhes relevantes e representá-los na linguagem da solução. 2 / 36

Desenvolvimento de software Princípio básico O desenvolvimento de todo e qualquer software inicia-se com a abstração do problema. Ou seja, retirar do domínio do problema detalhes relevantes e representá-los na linguagem da solução. ˆ A evolução das linguagens de programação influenciaram a forma de como os problemas são atacados ˆ A tecnologia existente em cada época delimitou como os problemas eram atacados e ao longo dos tempos surgiram diversos paradigmas de programação 2 / 36

Desenvolvimento de software Princípio básico O desenvolvimento de todo e qualquer software inicia-se com a abstração do problema. Ou seja, retirar do domínio do problema detalhes relevantes e representá-los na linguagem da solução. ˆ A evolução das linguagens de programação influenciaram a forma de como os problemas são atacados ˆ A tecnologia existente em cada época delimitou como os problemas eram atacados e ao longo dos tempos surgiram diversos paradigmas de programação Paradigma Forma de como atacar um problema. 2 / 36

Paradigmas de programação Programação sequencial ˆ A solução para o problema se dá através da execução sequencial de instruções, uma após a outra ˆ Faz uso de desvios incondicionais (GOTO e JUMP) ˆ Apresenta uma solução rápida para problemas de pequeno porte ˆ Não é ideal para problemas de grande porte ˆ Dificuldade em organizar o código e o uso de desvios incondicionais pode-se tornar um transtorno ˆ Exemplos: Assembly, Basic 3 / 36

Paradigmas de Programação Programação estruturada ˆ Consiste em dividir o problema em partes menores e então apresentar soluções para essas pequenas partes ˆ Dividir para conquistar! ˆ Está fundamentada sobre as estruturas de sequência, decisão e repetição ˆ Desvios condicionais são preferidos a desvios incondicionais ˆ A solução de cada pequena parte do problema é feita em procedimentos (ou funções) e a solução de todo problema consiste na invocação destes procedimentos ˆ Visa a reutilização de código ˆ Exemplos: Pascal, C 4 / 36

Paradigmas de programação Programação orientada a objetos ˆ Surgiu da idéia que todo sistema de software funcionasse como um ser vivo ˆ Cada célula do sistema poderia interagir com outras células, através do envio de mensagens e cada célula consistiria ainda em um sistema autônomo 5 / 36

Paradigmas de programação Programação orientada a objetos ˆ Surgiu da idéia que todo sistema de software funcionasse como um ser vivo ˆ Cada célula do sistema poderia interagir com outras células, através do envio de mensagens e cada célula consistiria ainda em um sistema autônomo Programação Orientada a Objetos Todo o sistema é visualizado como um conjunto de células interconectadas, denominadas objetos. Cada objeto possui uma tarefa específica e através da comunicação entre os objetos é possível realizar uma tarefa computacional completa. 5 / 36

Paradigmas de programação Programação orientada a objetos ˆ Surgiu da idéia que todo sistema de software funcionasse como um ser vivo ˆ Cada célula do sistema poderia interagir com outras células, através do envio de mensagens e cada célula consistiria ainda em um sistema autônomo Programação Orientada a Objetos Todo o sistema é visualizado como um conjunto de células interconectadas, denominadas objetos. Cada objeto possui uma tarefa específica e através da comunicação entre os objetos é possível realizar uma tarefa computacional completa. ˆ Tal paradigma é ideal para o desenvolvimento de software complexos ˆ Extensão do projeto de forma fácil e simplificada ˆ Exemplos: Smalltalk, C++, Java, Python 5 / 36

Paradigmas de programação ˆ Em linguagens como a C, a forma de atacar o problema consiste em mapear a estrutura do problema para a estrutura do computador. Assim, deve-se criar uma associação entre a solução (modelo da máquina) e o modelo do problema ˆ A Orientação a Objetos tenta trazer o espaço da solução para o espaço do problema e assim representar ambos espaços como objetos ˆ A ideia é fazer o funcionamento do programa se parecer com o mundo real ˆ As abstrações correspondem aos objetos do domínio do problema ˆ Facilidades na comunicação entre o desenvolvedor e o usuário final ˆ Os objetos levantados passam a existir em todas as fases do desenvolvimento do software complexo ˆ Fases posteriores de desenvolvimento adicionam novos objetos 6 / 36

Conceitos da Orientação a Objetos A Orientação a Objetos fundamenta-se sobre 5 conceitos: ˆ Objetos ˆ Classes ˆ Mensagens ˆ Herança ˆ Polimorfismo 7 / 36

Objetos Definição Na orientação a objetos, um objeto é um item identificável, individual e com um papel bem definido dentro do domínio do problema ˆ É formado por um estado e um por um comportamento ˆ Em sistemas computacionais, os objetos geralmente são usados para modelar objetos que encontramos no dia-a-dia ˆ Objetos reais: pessoa, cachorro, carro, caneta ˆ Objetos abstratos: funcionário, professor, aluno 8 / 36

Objetos: Definição Um objeto é um item identificável e é composto por estado e por comportamento 9 / 36

Objetos: Definição Um objeto é um item identificável e é composto por estado e por comportamento 9 / 36

Objetos ˆ Estado ˆ O estado de um objeto representa as características deste ˆ Um carro possui como características uma cor, modelo, potência, velocidade atual, marcha atual, etc. ˆ Comportamento ˆ Representa as operações (métodos) que este objeto é capaz de executar ˆ Um carro pode trocar de marcha, acelerar, frear, etc. 10 / 36

Objetos ˆ Estado ˆ O estado de um objeto representa as características deste ˆ Um carro possui como características uma cor, modelo, potência, velocidade atual, marcha atual, etc. ˆ Comportamento ˆ Representa as operações (métodos) que este objeto é capaz de executar ˆ Um carro pode trocar de marcha, acelerar, frear, etc. Regra de ouro da orientação a objetos Identificar os estados e comportamentos de objetos do mundo real é um grande passo para se começar a pensar em termos de programação orientada a objetos 10 / 36

Objetos no domínio do problema Olhe ao redor e escolha dois objetos. Para estes responda: ˆ Quais os possíveis estados que este objeto pode assumir? ˆ Quais os possíveis comportamentos que este objeto pode ter? 11 / 36

Objetos no domínio do problema Olhe ao redor e escolha dois objetos. Para estes responda: ˆ Quais os possíveis estados que este objeto pode assumir? ˆ Quais os possíveis comportamentos que este objeto pode ter? ˆ É possível notar diferentes níveis de complexidade de cada objeto ˆ Por exemplo: lâmpada vs computador ˆ É possível notar que alguns objetos podem conter outros objetos ˆ Um computador possui um disco rígido, este último por sua vez também é um objeto 11 / 36

Objetos em sistemas computacionais Objetos de software são semelhantes aos objetos reais Um objeto armazena seu estado em atributos e seu comportamento se dá através de operações (métodos) 12 / 36

Objetos em sistemas computacionais Objetos de software são semelhantes aos objetos reais Um objeto armazena seu estado em atributos e seu comportamento se dá através de operações (métodos) ˆ Em Java, os métodos de um objeto são invocados para realizar uma determinada computação e potencialmente para modificar os atributos deste objeto 12 / 36

Objetos em sistemas computacionais Objetos de software são semelhantes aos objetos reais Um objeto armazena seu estado em atributos e seu comportamento se dá através de operações (métodos) ˆ Em Java, os métodos de um objeto são invocados para realizar uma determinada computação e potencialmente para modificar os atributos deste objeto programador: Qual a sua velocidade atual? objeto carro: 20 km/hora programador: Diminua a velocidade em 10% objeto carro: Ok 12 / 36

Encapsulamento: um dos princípios da orientação a objeto Definição Processo de esconder todos os detalhes de um objeto que não contribuem para as suas características essenciais. Ex: uma caixa preta ˆ A interação entre objetos se dá através da troca de mensagens ˆ O emissor da mensagem não precisa conhecer como o destinatário processará a mensagem, ao emissor só importa receber a resposta 13 / 36

Encapsulamento: um dos princípios da orientação a objeto Definição Processo de esconder todos os detalhes de um objeto que não contribuem para as suas características essenciais. Ex: uma caixa preta ˆ A interação entre objetos se dá através da troca de mensagens ˆ O emissor da mensagem não precisa conhecer como o destinatário processará a mensagem, ao emissor só importa receber a resposta Exemplo: System.out.println("Olá mundo"); Mensagens são compostas por três partes ˆ Objeto: System.out ˆ Nome do método: println ˆ Parâmetros: Olá mundo 13 / 36

Encapsulamento ˆ O emissor das mensagens precisa saber quais operações o destinatário é capaz de realizar ou quais informações o destinatário pode fornecer ˆ A interface de um objeto corresponde ao que ele conhece e ao que ele sabe fazer, no entanto sem descrever como ele conhece ou faz ˆ Define as mensagens que ele está apto a receber e responder Vantagem do encapsulamento A implementação dentro de uma operação pode ser alterada sem que isso implique na alteração do código do objeto requisitante 14 / 36

Encapsulamento: Exemplo Sistema de freio hidráulico ˆ Freios funcionam através de um sistema de pistões e mangueiras por onde circula o fluído de freio ˆ Ao pisar no pedal de freio, aciona-se o cilindro mestre que irá pressurizar o fluído. ˆ Esse fluído transmite a pressáo exercida no pedal até as rodas, acionando o freio. 16 / 36

Encapsulamento: Exemplo Sistema de freio hidráulico 18 / 36

Encapsulamento: Exemplo Sistema de freio hidráulico 18 / 36

Encapsulamento: Exemplo Sistema de freio hidráulico 18 / 36

Encapsulamento: Exemplo Sistema de freio hidráulico 18 / 36

Encapsulamento: Exemplo Sistema de freio hidráulico Objeto: Fusca ˆ Para diminuir a velocidade do carro basta pressionar o pedal do freio ˆ Fusca possui mecanismo de freio a tambor ˆ Não é necessário entender como o mecanismo de freio funciona, mas ao acionar o freio o Fusca irá diminuir sua velocidade 20 / 36

Encapsulamento: Exemplo Sistema de freio hidráulico Objeto: Fusca ˆ Para diminuir a velocidade do carro basta pressionar o pedal do freio ˆ Fusca possui mecanismo de freio a tambor ˆ Não é necessário entender como o mecanismo de freio funciona, mas ao acionar o freio o Fusca irá diminuir sua velocidade 7 8 System.out.println("Acionando o freio do Fusca"); 9 10 fusca.frear(); 11 12 System.out.println("Acionando o freio da Ferrari"); 13 14 ferrari.frear(); 20 / 36

Classes ˆ Classe é uma planta (projeto) que indica como os objetos deverão ser construídos 21 / 36

Classes ˆ Classe é uma planta (projeto) que indica como os objetos deverão ser construídos ˆ Exemplo: Fusca ˆ Cada carro é construído com base em um mesmo projeto de engenharia e por consequência todos carros possuirão os mesmos componentes 21 / 36

Classes ˆ Classe é uma planta (projeto) que indica como os objetos deverão ser construídos ˆ Exemplo: Fusca ˆ Cada carro é construído com base em um mesmo projeto de engenharia e por consequência todos carros possuirão os mesmos componentes Classe 21 / 36

Classes ˆ Classe é uma planta (projeto) que indica como os objetos deverão ser construídos ˆ Exemplo: Fusca ˆ Cada carro é construído com base em um mesmo projeto de engenharia e por consequência todos carros possuirão os mesmos componentes Classe Objetos 21 / 36

Identifique as classes e os objetos Carro Árvore Pessoa Corsa Gol Araucária Ipê João José 22 / 36

Uma classe em Java 14 public class Carro{ 15 // Atributos 16 private double velocidade; 17 private String marca; 18 private String modelo; 19 // Métodos 20 public void acelerar(double intensidade){ 21... 22 } 23 public void frear(double intensidade){ 24... 25 } 26 public String obtermarca(){ 27 return marca; 28 } 29 public void imprimirvelocidade(){ 30 System.out.println("Velocidade: " + velocidade); 31 } 32 } 23 / 36

Exemplo de classe com declaração não ideal de atributos. 32 public class CarroNaoIdeal{ 33 // Atributos 34 public float velocidade; 35 36 // Métodos 37 public void definirvelocidade(float v){ 38 velocidade = v; 39 } 40 public void acelerar(float v){ 41 // O carro só pode atingir 200km/h 42 if ((velocidade + v) <= 200){ 43 velocidade += v; 44 }else{ 45 velocidade = 200; 46 } 47 } 48 } 24 / 36

Como acessar os métodos da classe Carro? 48 public static void main(string args[]){ 49 CarroNaoIdeal fusca = new CarroNaoIdeal(); 50 51 // alterando a velocidade atraves dos metodos do objeto 52 fusca.definirvelocidade(150);// velocidade = 150 53 fusca.acelerar(400); // velocidade = 200 54 55 // alterando diretamente o valor do atributo 56 fusca.velocidade = 400; 57 } 25 / 36

Exemplo de classe com declaração ideal. 57 public class CarroIdeal{ 58 // Atributos 59 private float velocidade; 60 61 // Métodos 62 public void definirvelocidade(float v){ 63 velocidade = v; 64 } 65 public void acelerar(float v){ 66 // O carro só pode atingir 200km/h 67 if ((velocidade + v) <= 200){ 68 velocidade += v; 69 }else{ 70 velocidade = 200; 71 } 72 } 73 } 26 / 36

Como acessar os métodos da classe Carro... 73 public static void main(string args[]){ 74 CarroIdeal fusca = new CarroIdeal(); 75 76 // Alterando a velocidade através dos métodos do objeto 77 fusca.definirvelocidade(150);// velocidade = 150 78 fusca.acelerar(400); // velocidade = 200 79 80 // alterando diretamente o valor do atributo 81 fusca.velocidade = 400; // ERRO! n~ao irá compilar 82 } ˆ Existe um problema nesse código, qual é? 27 / 36

Representação gráfica em UML da classe Carro 28 / 36

Representação gráfica em UML da classe Carro Linguagem de Modelagem Unificada UML Uma linguagem padrão para a modelagem de sistemas, amplamente utilizada tanto pela indústria do software quanto por instituições acadêmicas. 28 / 36

Abstração ˆ Trata-se do processo mental que nós seres humanos nos atemos aos aspectos mais relevantes de alguma coisa, ao mesmo tempo que ignoramos os aspectos menos importantes ˆ Isso nos permite gerenciar a complexidade de um objeto, ao mesmo tempo que concentramos nossa atenção nas características essenciais do mesmo ˆ Note que abstração é dependente do contexto sobre o qual este algo é analisado ˆ O que é importante em um contexto pode não ser importante em outro 29 / 36

Abstração 30 / 36

Primeiro exercício: Um contador 31 / 36

Primeiro exercício: Um contador ˆ A classe Contador possui um único atributo ˆ valoratual ˆ Quais métodos a classe Contador pode prover? ˆ Atribuir um valor ao contador 31 / 36

Primeiro exercício: Um contador ˆ A classe Contador possui um único atributo ˆ valoratual ˆ Quais métodos a classe Contador pode prover? ˆ Atribuir um valor ao contador ˆ Incrementar o contador 31 / 36

Primeiro exercício: Um contador ˆ A classe Contador possui um único atributo ˆ valoratual ˆ Quais métodos a classe Contador pode prover? ˆ Atribuir um valor ao contador ˆ Incrementar o contador ˆ Obter o atual valor do contador 31 / 36

Representação gráfica em UML da classe Contador 32 / 36

Segundo exercício: Uma bicicleta 33 / 36

Segundo exercício: Uma bicicleta ˆ A classe Bicicleta possui muitos atributos: ˆ 1 - Pense em um contexto e colete informaç~oes sobre quais atributos uma bicicleta pode ter. ˆ 2 - Desenhe uma classe em UML para representar este objeto, de acordo com as informações que levantou no item anterior ˆ 3 - Implemente em Java a classe para bicicleta e um aplicativo Java (classe Java com método main). Crie um objeto da classe Bicicleta e invoque alguns de seus métodos. 33 / 36

Como fazer? Exemplo para Classe Bicicleta 82 public class Bicicleta{ 83 // Atributos 84 private double velocidade; 85 private String cor; 86 private int marchaatual; 87 // Métodos 88 public void freardianteiro(double intensidade){ 89 velocidade -= intensidade; } 90 public void definirvelocidade(double v){ 91 velocidade = v; } 92 public void acelerar(double v){ 93 velocidade += v; } 94 public String obtercor(){ 95 return cor; } 96 public void trocarmarchaparaleve(int v){ 97 marchaatual -= v; } 98 public void mostrarvelocidade(){ 99 System.out.println("Velocidade: " + velocidade); } 100 } 34 / 36

Como fazer? Exemplo de como instanciar e utilizar os métodos 100 package bicicleta; 101 public class BicicletaInstanciacao{ 102 public static void main(string args[]){ 103 Bicicleta mb = new Bicicleta(); 104 // Alterando a velocidade através dos metodos do objeto 105 mb.definirvelocidade(15);// velocidade = 15 106 System.out.println( "Def. vel: " + mb.qualvelocidade()); 107 108 mb.acelerar(1.1);// velocidade = 16.1 109 System.out.println( "Acelerei: " + mb.qualvelocidade()); 110 111 mb.acelerar(3); // velocidade = 19.1 112 System.out.println("Acelerei: " + mb.qualvelocidade()); 113 114 // alterando diretamente o valor do atributo 115 mb.velocidade = 20; // problemas, porque? 116 } 117 } 35 / 36

Leitura recomendada Caelum Ensino e Soluções em Java Apostila Caelum FJ-11 Java e Orientação a Objetos http://www.sj.ifsc.edu.br/~mello/livros/java ˆ Capítulos 4 e 5 36 / 36