O Java é uma linguagem de tipos estáticos, o que significa que o tipo de uma variável é conhecido em tempo de compilação. Atribuir um valor a um nome chama-se definir uma variável. Uma variável define-se especificando explicitamente o seu tipo.
int explicitVar = 10;
A atualização do valor de uma variável faz-se com o operador =.
Aqui, o = não representa igualdade matemática.
Limita-se a atribuir um valor a uma variável.
Uma vez definida, o tipo de uma variável nunca pode mudar.
int count = 1; // Assign initial value
count = 2; // Update to new value
// Compiler error when assigning a different type
// count = false;
O Java é uma linguagem orientada a objetos e exige que todas as funções sejam definidas numa classe.
A palavra-chave class serve para definir uma classe.
class Calculator {
// ...
}
Uma função dentro de uma classe chama-se método.
Cada método pode ter zero ou mais parâmetros.
Todos os parâmetros têm de ter um tipo explícito; não há inferência de tipos para parâmetros.
Do mesmo modo, o tipo do valor devolvido também tem de ser explícito.
Os valores são devolvidos pelos métodos através da palavra-chave return.
Para permitir que um método seja chamado por outras classes, é preciso acrescentar o modificador de acesso public.
class Calculator {
public int add(int x, int y) {
return x + y;
}
}
Invocar/chamar um método faz-se indicando o nome da classe e do método e passando argumentos para cada um dos parâmetros do método.
int sum = new Calculator().add(1, 2); // here the "add" method has been called to perform the task of addition
Em Java, o âmbito define-se entre os caracteres { e }.
O Java suporta dois tipos de comentários.
Os comentários de uma linha são precedidos de // e os comentários de várias linhas são inseridos entre /* e */.
Neste exercício vais escrever código para te ajudar a cozinhar uma lasanha fantástica a partir do teu livro de receitas preferido.
Tens quatro tarefas, todas relacionadas com o tempo gasto a cozinhar a lasanha.
Define o método expectedMinutesInOven() que não recebe parâmetros e devolve quantos minutos a lasanha deve estar no forno. De acordo com o livro de receitas, o tempo esperado no forno em minutos é 40:
Lasagna lasagna = new Lasagna();
lasagna.expectedMinutesInOven();
// => 40
Define o método remainingMinutesInOven() que recebe como parâmetro os minutos reais que a lasanha já esteve no forno e devolve quantos minutos a lasanha ainda tem de permanecer no forno, com base no tempo esperado no forno em minutos da tarefa anterior.
Lasagna lasagna = new Lasagna();
lasagna.remainingMinutesInOven(30);
// => 10
Define o método preparationTimeInMinutes() que recebe como parâmetro o número de camadas que adicionaste à lasanha e devolve quantos minutos passaste a preparar a lasanha, assumindo que cada camada demora 2 minutos a preparar.
Lasagna lasagna = new Lasagna();
lasagna.preparationTimeInMinutes(2);
// => 4
Define o método totalTimeInMinutes() que recebe dois parâmetros: o primeiro parâmetro é o número de camadas que adicionaste à lasanha e o segundo parâmetro é o número de minutos que a lasanha já esteve no forno. A função deve devolver quantos minutos, no total, trabalhaste a cozinhar a lasanha, ou seja, a soma do tempo de preparação em minutos com o tempo em minutos que a lasanha passou no forno até ao momento.
Lasagna lasagna = new Lasagna();
lasagna.totalTimeInMinutes(3, 20);
// => 26
Inscreve-te no Exercism para aprenderes e dominares Java com 26 conceitos158 exercícios, e mentoria humana real, tudo grátis.