Tracks
/
Java
Java
/
Exercises
/
Cook your lasagna
Cook your lasagna

Cook your lasagna

Learning Exercise

Introduction

Basics

Java is a statically-typed language, which means that the type of a variable is known at compile-time. Assigning a value to a name is referred to as defining a variable. A variable is defined by explicitly specifying its type.

int explicitVar = 10;

Updating a variable's value is done through the = operator. Here, = does not represent mathematical equality. It simply assigns a value to a variable. Once defined, a variable's type can never change.

int count = 1; // Assign initial value
count = 2;     // Update to new value

// Compiler error when assigning a different type
// count = false;

Java is an object-oriented language and requires all functions to be defined in a class. The class keyword is used to define a class.

class Calculator {
    // ...
}

A function within a class is referred to as a method. Each method can have zero or more parameters. All parameters must be explicitly typed, there is no type inference for parameters. Similarly, the return type must also be made explicit. Values are returned from methods using the return keyword. To allow a method to be called by other classes, the public access modifier must be added.

class Calculator {
    public int add(int x, int y) {
        return x + y;
    }
}

Invoking/calling a method is done by specifying its class and method name and passing arguments for each of the method's parameters.

int sum = new Calculator().add(1, 2);  // here the  "add" method has been called to perform the task of addition

Scope in Java is defined between the { and } characters.

Java supports two types of comments. Single line comments are preceded by // and multiline comments are inserted between /* and */.

Instructions

In this exercise you're going to write some code to help you cook a brilliant lasagna from your favorite cooking book.

You have four tasks, all related to the time spent cooking the lasagna.

1. Define the expected oven time in minutes

Define the expectedMinutesInOven() method that does not take any parameters and returns how many minutes the lasagna should be in the oven. According to the cooking book, the expected oven time in minutes is 40:

Lasagna lasagna = new Lasagna();
lasagna.expectedMinutesInOven();
// => 40

2. Calculate the remaining oven time in minutes

Define the remainingMinutesInOven() method that takes the actual minutes the lasagna has been in the oven as a parameter and returns how many minutes the lasagna still has to remain in the oven, based on the expected oven time in minutes from the previous task.

Lasagna lasagna = new Lasagna();
lasagna.remainingMinutesInOven(30);
// => 10

3. Calculate the preparation time in minutes

Define the preparationTimeInMinutes() method that takes the number of layers you added to the lasagna as a parameter and returns how many minutes you spent preparing the lasagna, assuming each layer takes you 2 minutes to prepare.

Lasagna lasagna = new Lasagna();
lasagna.preparationTimeInMinutes(2);
// => 4

4. Calculate the total working time in minutes

Define the totalTimeInMinutes() method that takes two parameters: the first parameter is the number of layers you added to the lasagna, and the second parameter is the number of minutes the lasagna has been in the oven. The function should return how many minutes in total you've worked on cooking the lasagna, which is the sum of the preparation time in minutes, and the time in minutes the lasagna has spent in the oven at the moment.

Lasagna lasagna = new Lasagna();
lasagna.totalTimeInMinutes(3, 20);
// => 26
Edit via GitHub The link opens in a new window or tab
Java Exercism

Ready to start Cook your lasagna?

Sign up to Exercism to learn and master Java with 25 concepts, 146 exercises, and real human mentoring, all for free.