CLASSES E OBJETOSUma classe e um tipo definido pelo usuario que contem o molde, a especificacao para os objetos, algo mais ou menos como o tipo inteiro contem o molde para as variaveis declaradas como inteiros. A classe envolve, associa, funcoes e dados, controlando o acesso a estes, defini-la implica em especificar os seus atributos (dados) e seus metodos (funcoes).Um programa que utiliza uma interface controladora de um motor eletrico provavelmente definiria a classe motor. Os atributos desta classe seriam: temperatura, velocidade, tensao aplicada. Estes provavelmente seriam representados na classe por tipos como int ou float. Os metodos desta classe seriam funcoes para alterar a velocidade, ler a temperatura, etc.Um programa editor de textos definiria a classe paragrafo que teria como um de seus atributos uma String ou um vetor de Strings, e como metodos, funcoes que operam sobre estas strings. Quando um novo paragrafo e digitado no texto, o editor cria a partir da classe Paragrafo um objeto contendo as informacoes particulares do novo texto. Isto se chama instanciacao ou criacao do objeto. ESPECIFICANDO UMA CLASSESuponha um programa que controla um motor eletrico atraves de uma saida serial. A velocidade do motor e proporcional a tensao aplicada e esta proporcional aos bits que vao para saida serial e passam por um conversor digital analogico.Vamos abstrair todos estes detalhes por enquanto e modelar somente a interface do motor como uma classe, a pergunta e que metodos e que atributos deve ter nossa classe, que argumentos e valores de retorno devem ter os metodos?Representacao da velocidade: A velocidade do motor sera representada por um atributo inteiro (int). Usaremos a faixa de bits que precisarmos, caso o valor de bits necessario nao possa ser fornecido pelo tipo , usaremos entao o tipo long, isto depende do conversor digital analogico utilizado.Representacao da saida serial:O motor precisa conhecer a sua saida serial, a sua ligacao com o motor do mundo real. Suponha uma representacao em hexadecimal do atributo endereco de porta serial, um possivel nome para o atributo: enderecomotor. Nao se preocupe em saber como usar a representacao hexadecimal.Alteracao do valor da velocidade:Internamente o usuario da classe motor pode desejar alterar a velocidade, cria-se entao o metodo: public void altera_velocidade(int novav);. O codigo anterior corresponde ao cabecalho do metodo ele e definido junto com a classe motor, associado a ela. O valor de retorno da funcao que implementa o metodo e void, poderia ser criado um valor de retorno (boolean) que indicasse se o valor de velocidade era permitido e foi alterado ou nao era permitido e portanto nao foi alterado. O ato de invocar um metodo tambem e chamado de passar uma mensagem para o objeto que esta executando este metodo.Nao faz sentido usar, chamar, este metodo separado de uma variavel do tipo motor, mas entao porque na lista de argumentos da funcao nao se encontra um motor? Este pensamento reflete a maneira de associar dados e codigo (funcoes) das linguagens procedurais. Em linguagens orientadas a objetos o codigo e os dados sao ligados de forma diferente, a propria declaracao de um tipo definido pelo