[MÚSICA] Esse é o curso de Orientação a Objetos com Java. Meu nome é Eduardo Guerra e hoje vamos falar sobre como criar classes Java. Eu sei que você estava aí assistindo às aulas de classes louco para botar o mão no código, então vamos falar de código hoje. Vamos ver como implementar na prática esses conceitos aí de classes, aprender a criar e instanciar classes, colocar atributo, método, eu sei que você está doido para ver como fazer isso aí Java. Eu vou chamar aqui o meu amigo Duck, certo? Que vai falar para vocês aqui que Java quase tudo é uma classe. Basicamente quase tudo o que você for criar Java é classe e a gente faz isso usando essa diretriz aqui Public e Class e o nome da classe que a gente quer. Bom, como a gente pode ter, por exemplo, sistema que tenha muitas classes e muitas vezes, às vezes, por exemplo, você tem conceitos que às vezes podem ser interpretados de forma diferente, então eu posso ter, por exemplo, sistema, carrinho, uma classe Carrinho, que é o carrinho de compras, mas eu posso ter uma loja que vende carrinhos de brinquedo, e então é importante a gente de uma certa forma ter uma, como se fosse diretório para a gente estar colocando as classes. A gente faz isso através dos packages, os pacotes. Então a gente faz isso colocando logo no começo aqui, essa, dizendo package e o nome do pacote que a gente está colocando. Então no caso aí a gente está colocando a classe Carro no pacote org.veículos. E aí é aquela coisa, de toda a vez que a gente precisar usar uma classe, certo? A gente tem que importar ou a classe ou o pacote que ela está. Então por exemplo, se eu quero usar a classe Math, para poder usar as operações aí matemáticas, eu posso usar aí o Import java lang Math. Então no caso aqui, por exemplo, da minha, da classe que eu dei o exemplo, a classe Carro, eu poderia, se eu quisesse usar essa classe fora dali, eu poderia dar Import org.veículos.* ou org.veículos.carro para importar somente aquela classe. Certo? Bom, a informação que a classe precisa de ter, ela é armazenada ali atributos, então eu faço da seguinte forma: Você que já provavelmente tem experiência alguma outra linguagem, é como se eu estivesse declarando variáveis dentro da minha classe. Então estou dizendo que a classe Carro, ela tem a informação potência e ela tem a informação velocidade. Olhando com mais detalhe aqui para o atributo, todo o atributo ele precisa ter tipo, então no caso aqui ele é inteiro, certo? E ele pode ser do tipo primitivo ou de uma classe. Pegando aqui os outros exemplos, a potência ali é inteiro, a velocidade seria ali do tipo Float.flutuante. E se a gente quiser criar carro? Então para criar carro a gente usa o operador New. Então eu estou criando ali o meu fusca, então eu dou o carro fusca, estou declarando a variável fusca como do tipo carro e estou, o New diz assim, olha estou criando uma nova instância da classe Carro. Para acessar os atributos então desse carro eu posso usar a fusca.potencia para acessar essa variável potência e posso usar por exemplo, eu posso tanto notificar essa variável quanto recuperar ela, então o fusca.potencia, por exemplo, igual a 2, como a gente está vendo no exemplo aqui do lado, certo? Ele está colocando 2 nessa variável potência, aí quando eu faço v=fusca.velocidade, ele está recuperando essa informação. A classe ela também pode ter comportamento e como a gente viu na aula anterior, esse comportamento a gente define a partir de métodos. Então por exemplo, eu tenho aí o meu método acelerar que vai estar somando a potência da velocidade e eu tenho o meu método frear que vai estar diminuindo a velocidade sempre por 2, no caso aí, multiplicando por 0.5. Então vamos ver pouquinho de detalhe sobre os métodos. O método ele tem retorno, no caso aí o Void ele é retorno que na verdade estou dizendo que não retorna nada, o método ele pode ter parâmetros ou não, no caso Acelerar não tem, certo? E normalmente o método numa classe que tem estado, ele vai fazer alguma coisa relação ao estado da classe, ou retornar uma informação ou modificar aquele estado. E para chamar o método é bem parecido aí com atributo, certo? Só que a gente coloca os parêntesis e aí passa os parâmetros se tiver. Se não tiver a gente simplesmente bota parâmetros, então, fusca.acelerar, fusca.frear, seria a forma de estar invocando aqueles métodos, está certo? Então nessa aula aqui, olha quanta coisa aí a gente aprendeu. A gente aprendeu aí Java estar criando classe, declarando atributo, adicionando métodos e como instanciar os objetos, sabendo aí também como usar os atributos e invocar aí os métodos. Então espero que com isso aí a gente tenha dado geral aí na criação de classes Java e agora você já sabe como criar e instanciar classes, colocando atributos e métodos aí na linguagem Java. Muito obrigado por assistir à aula. Até à próxima! [MÚSICA]