Java Control Statements, Methods and Classes
Java Control Statements, Methods and Classes
Else
java Conditions and If Statements
You already know that Java supports the usual logical conditions from
mathematics:
You can use these conditions to perform different actions for different decisions.
The if Statement
Use the if statement to specify a block of Java code to be executed if a
condition is true.
Syntax
if (condition) {
// block of code to be executed if the condition is true
}
Note that if is in lowercase letters. Uppercase letters (If or IF) will generate an error.
In the example below, we test two values to find out if 20 is greater than 18. If
the condition is true, print some text:
Example
Example
int x = 20;
int y = 18;
if (x > y) {
System.out.println("x is greater than y");
}
Example explained
Syntax
if (condition) {
// block of code to be executed if the condition is true
} else {
// block of code to be executed if the condition is false
}
Example
Example explained
In the example above, time (20) is greater than 18, so the condition is false.
Because of this, we move on to the else condition and print to the screen
"Good evening". If the time was less than 18, the program would print "Good
day".
The else if Statement
Use the else if statement to specify a new condition if the first condition is
false.
Syntax
if (condition1) {
// block of code to be executed if condition1 is true
} else if (condition2) {
// block of code to be executed if the condition1 is false and
condition2 is true
} else {
// block of code to be executed if the condition1 is false and
condition2 is false
}
Example
Example explained
In the example above, time (22) is greater than 10, so the first condition is
false. The next condition, in the else if statement, is also false, so we
move on to the else condition since condition1 and condition2 is both false -
and print to the screen "Good evening".
However, if the time was 14, our program would print "Good day."
Java Switch
Java Switch Statements
Instead of writing many if..else statements, you can use the switch
statement.
Syntax
switch(expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
The example below uses the weekday number to calculate the weekday name:
Example
int day = 4;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
}
// Outputs "Thursday" (day 4)
This will stop the execution of more code and case testing inside the block.
When a match is found, and the job is done, it's time for a break. There is no
need for more testing.
A break can save a lot of execution time because it "ignores" the execution of all the
rest of the code in the switch block.
The default Keyword
The default keyword specifies some code to run if there is no case match:
Example
int day = 4;
switch (day) {
case 6:
System.out.println("Today is Saturday");
break;
case 7:
System.out.println("Today is Sunday");
break;
default:
System.out.println("Looking forward to the Weekend");
}
// Outputs "Looking forward to the Weekend"
Note that if the default statement is used as the last statement in a switch block, it
does not need a break.
Loops
Loops can execute a block of code as long as a specified condition is reached.
Loops are handy because they save time, reduce errors, and they make code
more readable.
Java While Loop
The while loop loops through a block of code as long as a specified condition is
true:
Syntax
while (condition) {
// code block to be executed
}
In the example below, the code in the loop will run, over and over again, as
long as a variable (i) is less than 5:
Example
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
Note: Do not forget to increase the variable used in the condition, otherwise the loop
will never end!
do {
// code block to be executed
}
while (condition);
The example below uses a do/while loop. The loop will always be executed at
least once, even if the condition is false, because the code block is executed
before the condition is tested:
Example
int i = 0;
do {
System.out.println(i);
i++;
}
while (i < 5);
Do not forget to increase the variable used in the condition, otherwise the loop will
never end!
Syntax
for (statement 1; statement 2; statement 3) {
// code block to be executed
Statement 1 is executed (one time) before the execution of the code block.
Statement 3 is executed (every time) after the code block has been executed.
Example
Example explained
Statement 2 defines the condition for the loop to run (i must be less than 5). If
the condition is true, the loop will start over again, if it is false, the loop will
end.
Statement 3 increases a value (i++) each time the code block in the loop has
been executed.
Another Example
This example will only print even values between 0 and 10:
Example
for (int i = 0; i <= 10; i = i + 2) {
System.out.println(i);
Nested Loops
It is also possible to place a loop inside another loop. This is called a nested
loop.
The "inner loop" will be executed one time for each iteration of the "outer loop":
Example
// Outer loop
for (int i = 1; i <= 2; i++) {
System.out.println("Outer: " + i); // Executes 2 times
// Inner loop
for (int j = 1; j <= 3; j++) {
System.out.println(" Inner: " + j); // Executes 6 times (2 * 3)
}
}
For-Each Loop
There is also a "for-each" loop, which is used exclusively to loop through
elements in an array:
Syntax
The following example outputs all elements in the cars array, using a "for-each"
loop:
Example
Note: Don't worry if you don't understand the example above. You will learn more about
Arrays in the Java Arrays chapter.
Java Break
You have already seen the break statement used in an earlier chapter of this
tutorial. It was used to "jump out" of a switch statement.
Example
Java Continue
The continue statement breaks one iteration (in the loop), if a specified
condition occurs, and continues with the next iteration in the loop.
Example
Java Arrays
Arrays are used to store multiple values in a single variable, instead of declaring
separate variables for each value.
String[] cars;
We have now declared a variable that holds an array of strings. To insert values
to it, you can place the values in a comma-separated list, inside curly braces:
Example
Note: Array indexes start with 0: [0] is the first element. [1] is the second element, etc.
Example
cars[0] = "Opel";
Example
Array Length
To find out how many elements an array has, use the length property:
Example
Example
Multidimensional Arrays
A multidimensional array is an array of arrays.
Multidimensional arrays are useful when you want to store data as a tabular
form, like a table with rows and columns.
To create a two-dimensional array, add each array within its own set of curly
braces:
Example
Access Elements
To access the elements of the myNumbers array, specify two indexes: one for
the array, and one for the element inside that array. This example accesses the
third element (2) in the second array (1) of myNumbers:
Example
System.out.println(myNumbers[1][2]); // Outputs 7
Remember that: Array indexes start with 0: [0] is the first element. [1] is the second
element, etc.
Example
Example
}
}
}
}
Java Methods
A method is a block of code which only runs when it is called.
Methods are used to perform certain actions, and they are also known as
functions.
Why use methods? To reuse code: define the code once, and use it many
times.
Create a Method
A method must be declared within a class. It is defined with the name of the
method, followed by parentheses (). Java provides some pre-defined methods,
such as System.out.println(), but you can also create your own methods to
perform certain actions:
Example
Example Explained
● myMethod() is the name of the method
● static means that the method belongs to the Main class and not an
object of the Main class. You will learn more about objects and how to
access methods through objects later in this tutorial.
● void means that this method does not have a return value. You will learn
more about return values later in this chapter
Call a Method
To call a method in Java, write the method's name followed by two parentheses
() and a semicolon;
In the following example, myMethod() is used to print a text (the action), when
it is called:
Example
Example
In the next chapter, Method Parameters, you will learn how to pass data (parameters)
into a method.
Parameters are specified after the method name, inside the parentheses. You
can add as many parameters as you want, just separate them with a comma.
The following example has a method that takes a String called fname as
parameter. When the method is called, we pass along a first name, which is
used inside the method to print the full name:
Example
When a parameter is passed to the method, it is called an argument. So, from the
example above: fname is a parameter, while Liam, Jenny and Anja are arguments.
Multiple Parameters
You can have as many parameters as you like:
Example
// Liam is 5
// Jenny is 8
// Anja is 31
Note that when you are working with multiple parameters, the method call must have
the same number of arguments as there are parameters, and the arguments must be
passed in the same order.
Return Values
The void keyword, used in the examples above, indicates that the method
should not return a value. If you want the method to return a value, you can
use a primitive data type (such as int, char, etc.) instead of void, and use the
return keyword inside the method:
Example
Example
You can also store the result in a variable (recommended, as it is easier to read
and maintain):
Example
Example
Method Overloading
With method overloading, multiple methods can have the same name with
different parameters:
Example
int myMethod(int x)
float myMethod(float x)
Consider the following example, which has two methods that add numbers of
different type:
Example
static int plusMethodInt(int x, int y) {
return x + y;
}
Instead of defining two methods that should do the same thing, it is better to
overload one.
In the example below, we overload the plusMethod method to work for both
int and double:
Example
}
Note: Multiple methods can have the same name as long as the number and/or type of
parameters are different.
Java Scope
Java Scope
In Java, variables are only accessible inside the region they are created. This is
called scope.
Method Scope
Variables declared directly inside a method are available anywhere in the
method following the line of code in which they were declared:
Example
int x = 100;
Block Scope
A block of code refers to all of the code between curly braces {}.
Variables declared inside blocks of code are only accessible by the code between
the curly braces, which follows the line in which the variable was declared:
Example
{ // This is a block
int x = 100;
A block of code may exist on its own or it can belong to an if, while or for statement.
In the case of for statements, variables declared in the statement itself are also
available inside the block's scope.
java Recursion
Java Recursion
Recursion is the technique of making a function call itself. This technique
provides a way to break complicated problems down into simple problems which
are easier to solve.
Recursion may be a bit difficult to understand. The best way to figure out how it
works is to experiment with it.
Recursion Example
Adding two numbers together is easy to do, but adding a range of numbers is
more complicated. In the following example, recursion is used to add a range of
numbers together by breaking it down into the simple task of adding two
numbers:
Example
Example Explained
When the sum() function is called, it adds parameter k to the sum of all
numbers smaller than k and returns the result. When k becomes 0, the function
just returns 0. When running, the program follows these steps:
10 + sum(9)
10 + ( 9 + sum(8) )
10 + ( 9 + ( 8 + sum(7) ) )
...
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + sum(0)
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0
Since the function does not call itself when k is 0, the program stops there and
returns the result.
Java Classes
Java OOP
Tip: The "Don't Repeat Yourself" (DRY) principle is about reducing the repetition
of code. You should extract out the codes that are common for the application,
and place them at a single place and reuse them instead of repeating it.
Java - What are Classes and Objects?
Classes and objects are the two main aspects of object-oriented
programming.Look at the following illustration to see the difference between
class and objects:
Another example
When the individual objects are created, they inherit all the variables and
methods from the class.
Java Classes and Objects
Java Classes/Objects
Java is an object-oriented programming language.
Everything in Java is associated with classes and objects, along with its
attributes and methods. For example: in real life, a car is an object. The car has
attributes, such as weight and color, and methods, such as drive and brake.
Create a Class
To create a class, use the keyword class:
Main.java
int x = 5;
Remember from the Java Syntax chapter that a class should always start with an
uppercase first letter, and that the name of the java file should match the class name.
Create an Object
In Java, an object is created from a class. We have already created the class
named Main, so now we can use this to create objects.
To create an object of Main, specify the class name, followed by the object
name, and use the keyword new:
Example
int x = 5;
System.out.println(myObj.x);
Multiple Objects
You can create multiple objects of one class:
Example
int x = 5;
System.out.println(myObj1.x);
System.out.println(myObj2.x);
Remember that the name of the java file should match the class name. In this
example, we have created two files in the same directory/folder:
● Main.java
● Second.java
Main.java
int x = 5;
}
Second.java
class Second {
System.out.println(myObj.x);
5
Java Class Attributes
Example
int x = 5;
int y = 3;
Accessing Attributes
You can access attributes by creating an object of the class, and by using the
dot syntax (.):
The following example will create an object of the Main class, with the name
myObj. We use the x attribute on the object to print its value:
Example
int x = 5;
System.out.println(myObj.x);
Modify Attributes
You can also modify attribute values:
Example
int x;
public static void main(String[] args) {
myObj.x = 40;
System.out.println(myObj.x);
Example
int x = 10;
System.out.println(myObj.x);
If you don't want the ability to override existing values, declare the attribute as
final:
Example
System.out.println(myObj.x);
The final keyword is useful when you want a variable to always store the same value,
like PI (3.14159...).
The final keyword is called a "modifier". You will learn more about these in the Java
Modifiers Chapter.
Multiple Objects
If you create multiple objects of one class, you can change the attribute values
in one object, without affecting the attribute values in the other:
Example
Change the value of x to 25 in myObj2, and leave x in myObj1 unchanged:
int x = 5;
myObj2.x = 25;
System.out.println(myObj1.x); // Outputs 5
System.out.println(myObj2.x); // Outputs 25
Multiple Attributes
You can specify as many attributes as you want:
Example
Example
System.out.println("Hello World!");
}
myMethod() prints a text (the action), when it is called. To call a method, write
the method's name followed by two parentheses () and a semicolon;
Example
System.out.println("Hello World!");
myMethod();
In the example above, we created a static method, which means that it can
be accessed without creating an object of the class, unlike public, which can
only be accessed by objects:
Example
An example to demonstrate the differences between static and public methods:
// Static method
// Public method
// Main method
}
Note: You will learn more about these keywords (called modifiers) in the Java Modifiers
chapter.
Example
Create a Car object named myCar. Call the fullThrottle() and speed() methods
on the myCar object, and run the program:
}
// Inside main, call the methods on the myCar object
Example explained
1) We created a custom Main class with the class keyword.
3) The fullThrottle() method and the speed() method will print out some
text, when they are called.
5) In order to use the Main class and its methods, we need to create an object
of the Main Class.
6) Then, go to the main() method, which you know by now is a built-in Java
method that runs your program (any code inside main is executed).
7) By using the new keyword we created an object with the name myCar.
Remember that..
The dot (.) is used to access the object's attributes and methods.
To call a method in Java, write the method name followed by a set of parentheses (),
followed by a semicolon (;).
Remember that the name of the java file should match the class name. In this
example, we have created two files in the same directory:
● Main.java
● Second.java
Main.java
Second.java
class Second {
Java Constructors
A constructor in Java is a special method that is used to initialize objects. The
constructor is called when an object of a class is created. It can be used to set
initial values for object attributes:
Note that the constructor name must match the class name, and it cannot have
a return type (like void).
Also note that the constructor is called when the object is created.
All classes have constructors by default: if you do not create a class constructor
yourself, Java creates one for you. However, then you are not able to set initial
values for object attributes.