[MÚSICA] [MÚSICA] Meu nome é Eduardo Guerra e esse é o curso de Orientação a Objetos com Java. Hoje vamos estar falando para vocês aà sobre os construtores, que é uma coisa extremamente importante quando a gente está falando classes. Hoje a gente vai aprender aà o conceito de construtores e vamos ver como que a gente cria e utiliza isso Java. Na aula passada a gente aprendeu aqui, como que você cria objeto, só que a princÃpio a gente não criou novo construtor, a gente utilizou construtor que a gente chama como default, que a gente não precisa passar parâmetro nenhum para ele. Mas o que é que são esses construtores? Os construtores eles são métodos especiais, certo, que a gente utiliza para criar novos objetos, a gente pode ver o duck aqui, na fabricazinha dele, produzindo ali vários objetos. Uma coisa legal dos construtores é que a partir deles você consegue parametrizar a construção dos objetos, ou seja, você fala assim eu quero criar objeto mas eu quero criar objeto azul, quero criar objeto vermelho, então a partir disso daà eu posso estar passando esse parâmetro na hora de construir o meu objeto e aà aquele objeto ele vai ter determinadas caracterÃsticas que podem diferenciar ele dos outros. Então vamos ver aqui, a gente viu aà nas outras aulas a classe Carro, vamos ver como é que fica aà o construtor da classe Carro. A gente pode ver aqui, por exemplo, a gente colocou aqui Carro, passou como parâmetro a potência e a gente também está utilizando esse construtor para inicializar por exemplo, a variável velocidade 0, sendo que todo o carro sempre vai começar a velocidade 0. Eu vou sair pouco aqui para a gente poder ver melhor né? É melhor olhar o código do que a minha cara. Vamos lá, então a gente pode ver que construtor, ele não precisa ter retorno igual a método normal, certo? Ele sempre vai ter o mesmo nome da classe e eu aproveito aà para mostrar para vocês, pouco da palavra reservada "this" que é utilizado para referenciar os elementos da classe. Podendo ser métodos da classe ou atributos da classe. Então ali note que por exemplo, eu tenho parâmetro que é do tipo inteiro que se chama potência, a minha classe Carro, deixa eu voltar aqui para mostrar para vocês, ela também tem atributo chamado potência e aà para diferenciar o parâmetro que eu estou recebendo do atributo eu estou utilizando "this" para falar eu estou usando o potência que é da classe. Então o "this" eu sempre posso estar utilizando para referenciar esses elementos aà da classe. Hey, hey, muito bom, muito bom! Agora a gente aprendeu aà que a gente pode com os construtores estar passando parâmetros na hora de construir uma classe, então por exemplo, se eu chamar fizer essa construção que está aqui Carro f = new Carro e aà eu passo 10 como parâmetro, a gente pode ver aqui que pelo código que eu tinha mostrado antes, eu vou estar acertando a potencia com o valor 10. Porque é que a gente conseguiu utilizar construtor no exemplo anterior? Porque quando a gente não define nenhum construtor a linguagem Java, na hora que compila o seu código, o compilador Java, ele vai estar colocando construtor vazio e que, vazio, que não faz nada e sem nenhum parâmetro para você. Então foi esse construtor vazio que a gente utilizou no exemplo da outra aula. Então na verdade, não é que a gente criou uma classe sem construtor, é que uma classe que a gente não define explicitamente o construtor, ela sempre vai estar recebendo esse construtor default já pelo próprio compilador. A gente pode ter os construtores na classe mas a gente não é obrigado a ter só. A gente pode ter mais de construtor, se esses construtores tiverem tipos de parâmetros diferentes. Então por exemplo eu posso ter aqui construtor do Carro recebendo inteiro que é a potencia, eu posso ter que recebe uma string que é a marca do Carro ou posso estar recebendo inteiro, uma string, o que eu não posso ter é por exemplo, 2 construtores, que recebe o inteiro, por exemplo, com a velocidade inicial e outro que recebe o inteiro com a potência, isso porque eu sempre preciso ter tipos diferentes quando defino mais de construtor, mas você pode definir mais do que construtor e esses construtores eles podem ter uma lógica diferente de inicialização do objeto que você está criando. Então com isso, a gente conseguiu entender pouco mais como é que funciona esse conceito dos construtores, principalmente vendo como eles funcionam na linguagem Java e como é que eles podem ser utilizados para a partir das classes estar criando os objetos. Muito obrigado. Até à próxima aula! [MÚSICA]