Uma boa prática na hora de criar os construtores de uma classe, é reaproveitar os setters dos atributos para manter a validação.
Imagine que temos a classe Carro, com seus respectivos setters:
Perceba que temos uma validação no método setAno(int ano), que impede que o usuário defina um ano menor que 0 (negativo) e maior que 2025.
Agora vamos criar o construtor para a classe:
Criando o construtor desse jeito, podemos instanciar a classe passando os seguintes parâmetros:
Perceba que podemos passar o valor negativo como parâmetro do construtor, e isso é válido, já que o construtor não possui validação, apenas o setter do ano setAno(int ano).
Parra corrigir isso, é só chamarmos os setters no construtor, para manter a validação:
Java is a 100% POO language, so to starts a Java software, our main function need to be a class method.
The filename need to be the same of the class that was declared in this file.
So the basic structure of Java file is:
Where Program is the class name of this file and main the method name, i.e., the main function that will be executed.
public means that our main() method can be used by all files that imports Program
static means that our main() method can be called without instantiate the class Program
void means that our main() method doesn't return anything
args is the argument that our main() method receives. In this case, an array of String objects. This is the way that Java receives the arguments passed by the command line.
System.out.println() is the way that Java print something in the console.
System is a class that Java provides to us native methods to interact with the system
out is a static object of System class that represents the output stream
println() is a method of out object that prints a string and a new line (Alternative: print(), that prints only the string without a new line)
And, the filename need to be Program.java because our class is named Program.