POO Classe Carro
POO Classe Carro
No cotidiano vivemos cercados por objetos de diversos tipos e formas. O contato com esses
objetos nos leva a identificar suas características físicas, sua forma, etc. Ao visualizarmos um
objeto qualquer, como um veículo por exemplo podemos reconhecer sua forma, modelo,
cor, ou seja suas características.
Outros veículos possuirão características diferentes, o que nos leva a entender que mesmo
objetos do mesmo tipo possuirão diferentes características. Associado com as características
do objeto existe outro fator: os procedimentos (ações) que podem ser realizados ou
analisados com ele. Usando ainda o exemplo do veículo este pode estar parado ou em
movimento, pode ainda aumentar ou diminuir a velocidade (acelerar ou frear).
Classes de modelagem: são as que darão origem a objetos. Ou, ainda, são as que definem
novos (e personalizados) “tipos de dados”.
Classe Principal: terá, por enquanto, a finalidade de implementar o método main (principal).
Poderia ter qualquer nome, desde que respeitadas as regras de nomenclatura de classes. Será
chamada, então, de “Principal”, como referência ao método main.
Durante a elaboração do projeto, é óbvio que o automóvel ainda não existe. Porém,
quando for fabricado, todas as especificações previamente definidas no desenho terão de
ser seguidas à risca.
Os diferentes modelos desse mesmo veículo terão detalhes diferenciais, como cor da
lataria, tipo das rodas, material do banco, acessórios etc. Nada, entretanto, que altere as
características originais, como um todo.
Esta, por sua vez, gera uma pressão sobre outras engrenagens do motor, impulsionando
as rodas e fazendo o carro se deslocar – processos também especificados no projeto.
Para o motorista, quando o objetivo é velocidade, basta saber que é preciso pisar no
pedal do acelerador e que quanto mais pressão for feita mais rápido andará o veículo.
Resumindo: para uso diário do automóvel (objeto) não é preciso conhecer detalhes de
como o funcionamento dos mecanismos foi definido no projeto (classe). Basta operá-los
(chamar os métodos, obedecendo à sua assinatura). Da mesma forma, o programador
não precisa saber, em detalhes, como a classe System, por exemplo, foi desenvolvida,
mas sim saber como utilizá-la para apresentar uma informação na tela.
Atributos e Métodos
Atributos:
A diferença entre um programa e uma classe é que no programa existe o método main
(public static void main String[ ] args) e as demais classes são as chamadas classes
externas, que servirão como uma espécie de “apoio” para a classe principal.
Até este momento estamos acostumados a trabalhar com uma única classe e criando
vários métodos que comunicam-se entre si.
A partir de agora criaremos diversas classes (arquivos .java) e faremos com que estas
troquem informações entre si. Um único projeto pode conter diversas classes.
Perceba que no projeto de nome Montadora existe uma classe de nome Montadora.java
que pertence ao pacote de nome montadora.
À direita da imagem percebe-se que o conteúdo desta possui o método principal public
static void main (String [ ] args), ou seja, o que o caracteriza como um programa JAVA e
não uma classe externa ou de apoio como visto anteriormente.
Vale ressaltar que, conforme já foi dito, quando o projeto for executado SEMPRE será
lida primeira a classe que contiver o método principal.
Criando uma nova classe
Para criar uma nova classe basta seguir o procedimento mostrado nas figuras abaixo:
Criando uma nova classe
Podemos ainda notar que as duas classes fazem parte do mesmo pacote (montadora).
Criando uma nova classe
Agora que criamos a classe externa carro.java vamos nos basear no diagrama UML
mostrado anteriormente para criarmos os atributos e métodos da classe.
O método cadastrarCarro recebe da classe principal
Estes são os atributos os parâmetros necessários para cadastrar o carro e
da classe, que por os atribui aos parâmetros da classe. Perceba que
convenção são todos do sempre que fizermos referência aos atributos
tipo private. devemos colocar antes a palavra this, que indica que
este atributo faz parte da classe. Ao final é mostrada
uma mensagem de confirmação do cadastro.
O método frear() recebe um valor da classe principal e o faz o inverso do método acelerar()
Instanciação do objeto da classe carro. A partir deste momento, todos os atributos e métodos da
classe carro estão disponíveis para serem utilizados pelo objeto camaro. Note que não precisei
utilizar o import como costumamos fazer para utilizar os métodos da classe Scanner. Isto se
deve ao fato de as classes fazerem parte do mesmo projeto.