KEMBAR78
05. Java Loops Methods and Classes | PPTX
Loops, Methods, Classes
Using Loops, Defining and Using
Methods, Using API Classes,
Exceptions, Defining Classes
Svetlin Nakov
Technical Trainer
www.nakov.com
Software University
http://softuni.bg
2
1. Loops
 while, do-while, for, for-each
2. Methods
 Defining Methods
 Invoking Methods
3. Using the Java API Classes
4. Exception Handling Basics
5. Defining Simple Classes
Table of Contents
3
 The "Java Basics" course is NOT for absolute beginners
 Take the "C# Basics" course at SoftUni first:
https://softuni.bg/courses/csharp-basics
 The course is for beginners, but with previous coding skills
 Requirements
 Coding skills – entry level
 Computer English – entry level
 Logical thinking
Warning: Not for Absolute Beginners
Loops
Loop: Definition
 A loop is a control statement that repeats the execution of a
block of statements
 May execute a code block fixed number of times
 May execute a code block while given condition holds
 May execute a code block for each member of a collection
 Loops that never end are called an infinite loops
while (condition) {
statements;
}
5
While Loop
 The simplest and most frequently used loop
 The repeat condition
 Returns a boolean result of true or false
 Also called loop condition
while (condition) {
statements;
}
6
While Loop – Example: Numbers 0…9
int counter = 0;
while (counter < 10) {
System.out.printf("Number : %dn", counter);
counter++;
}
7
Using the break Operator
 The break operator exits the inner-most loop
public static void main(String[] args) {
int n = new Scanner(System.in).nextInt();
// Calculate n! = 1 * 2 * ... * n
int result = 1;
while (true) {
if (n == 1)
break;
result *= n;
n--;
}
System.out.println("n! = " + result);
}
8
Do-While Loop
 Another classical loop structure is:
 The block of statements is repeated
 While the boolean loop condition holds
 The loop is executed at least once
do {
statements;
}
while (condition);
9
Product of Numbers [N..M] – Example
 Calculating the product of all numbers in the interval [n..m]:
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int m = input.nextInt();
int number = n;
BigInteger product = BigInteger.ONE;
do {
BigInteger numberBig = new BigInteger("" + number);
product = product.multiply(numberBig);
number++;;
}
while (number <= m);
System.out.printf("product[%d..%d] = %dn", n, m, product);
10
 The classical for-loop syntax is:
 Consists of
 Initialization statement
 Boolean test expression
 Update statement
 Loop body block
For Loops
for (initialization; test; update) {
statements;
}
11
 A simple for-loop to print the numbers 0…9:
For Loop – Examples
for (int number = 0; number < 10; number++) {
System.out.print(number + " ");
}
 A simple for-loop to calculate n!:
long factorial = 1;
for (int i = 1; i <= n; i++) {
factorial *= i;
}
12
 continue bypasses the iteration of the inner-most loop
 Example: sum all odd numbers in [1…n], not divisors of 7:
Using the continue Operator
int n = 100;
int sum = 0;
for (int i = 1; i <= n; i += 2) {
if (i % 7 == 0) {
continue;
}
sum += i;
}
System.out.println("sum = " + sum);
13
 The typical for-each loop syntax is:
 Iterates over all the elements of a collection
 The element is the loop variable that takes sequentially all
collection values
 The collection can be list, array or other group of elements of
the same type
For-Each Loop
for (Type element : collection) {
statements;
}
14
 Example of for-each loop:
 The loop iterates over the array of day names
 The variable day takes all its values
 Applicable for all collection: arrays, lists, strings, etc.
For-Each Loop – Example
String[] days = { "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday", "Sunday" };
for (String day : days) {
System.out.println(day);
}
15
16
 Loops can be nested (one inside another)
 Example: print all combinations from TOTO 6/49 lottery
Nested Loops
for (int i1 = 1; i1 <= 44; i1++)
for (int i2 = i1 + 1; i2 <= 45; i2++)
for (int i3 = i2 + 1; i3 <= 46; i3++)
for (int i4 = i3 + 1; i4 <= 47; i4++)
for (int i5 = i4 + 1; i5 <= 48; i5++)
for (int i6 = i5 + 1; i6 <= 49; i6++)
System.out.printf("%d %d %d %d %d %dn",
i1, i2, i3, i4, i5, i6);
Loops
Live Demo
Methods
Defining and Invoking Methods
19
 Methods are named
pieces of code
 Defined in the class
body
 Can be invoked
multiple times
 Can take parameters
 Can return a value
Methods: Defining and Invoking
private static void printAsterix(int count) {
for (int i = 0; i < count; i++) {
System.out.print("*");
}
System.out.println();
}
public static void main(String[] args) {
int n = 5;
for (int i = 1; i <= n; i++) {
printAsterix(i);
}
}
20
Methods with Parameters and Return Value
static double calcTriangleArea(double width, double height) {
return width * height / 2;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter triangle width: ");
double width = input.nextDouble();
System.out.print("Enter triangle height: ");
double height = input.nextDouble();
System.out.println("Area = " + calcTriangleArea(width, height));
}
Method names in Java
should be in camelCase
21
 Recursion == method can calls itself
Recursion
public static void main(String[] args) {
int n = 5;
long factorial = calcFactorial(n);
System.out.printf("%d! = %d", n, factorial);
}
private static long calcFactorial(int n) {
if (n <= 1) {
return 1;
}
return n * calcFactorial(n-1);
}
Methods
Live Demo
Using the Java API Classes
24
 Java SE provides thousands of ready-to-use classes
 Located in packages like java.lang, java.math, java.net,
java.io, java.util, java.util.zip, etc.
 Using static Java classes:
 Using non-static Java classes
Build-in Classes in the Java API
LocalDate today = LocalDate.now();
double cosine = Math.cos(Math.PI);
Random rnd = new Random();
int randomNumber = 1 + rnd.nextInt(100);
Using the Java API Classes
Live Demo
Exception Handling Basics
Catch and Throw Exceptions
27
 In Java exceptions are handled by the try-catch-finally
construction
 catch blocks can be used multiple times to process different
exception types
Handling Exceptions
try {
// Do some work that can raise an exception
} catch (SomeException ex) {
// Handle the caught exception
} finally {
// This code will always execute
}
28
Handling Exceptions – Example
public static void main(String[] args) {
String str = new Scanner(System.in).nextLine();
try {
int i = Integer.parseInt(str);
System.out.printf(
"You entered a valid integer number %d.n", i);
}
catch (NumberFormatException nfex) {
System.out.println("Invalid integer number: " + nfex);
}
}
29
 A method in Java could declare "throws SomeException"
 This says "I don't care about SomeException", please re-throw it
The "throws …" Declaration
public static void copyStream(InputStream inputStream,
OutputStream outputStream) throws IOException {
byte[] buf = new byte[4096]; // 4 KB buffer size
while (true) {
int bytesRead = inputStream.read(buf);
if (bytesRead == -1)
break;
outputStream.write(buf, 0, bytesRead);
}
}
30
 When we use a resource that is expected to be closed, we use the
try-with-resources statement
Resource Management in Java
try(
BufferedReader fileReader = new BufferedReader(
new FileReader("somefile.txt"));
) {
while (true) {
String line = fileReader.readLine();
if (line == null) break;
System.out.println(line);
} catch (IOException ioex) {
System.err.println("Cannot read the file ".);
}
Defining Simple Classes
Using Classes to Hold a Set of Fields
32
 Classes in Java combine a set of named fields / properties
 Defining a class Point holding X and Y coordinates:
Defining Classes in Java
class Point {
private int x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() { … }
public void setY(int y) { … }
}
33
 Eclipse provides tools
for automatically
generate constructors
and getters / setters
for the class fields
Defining Classes in Eclipse
Defining Simple Classes
Live Demo
35
 Java supports the classical loop constructs
 while, do-while, for, for-each
 Similarly to C#, JavaScript, PHP, C, C++, …
 Java support methods
 Methods are named code blocks
 Can take parameters and return a result
 Java supports classical exception handling
 Through the try-catch-finally construct
 Developers can define their own classes
 With fields, methods, constructors, getters, setters, etc.
Summary
?
https://softuni.bg/courses/java-basics/
Loops, Methods, Classes
37
 This course (slides, examples, demos, videos, homework, etc.)
is licensed under the "Creative Commons Attribution-
NonCommercial-ShareAlike 4.0 International" license
 Attribution: this work may contain portions from
 "Fundamentals of Computer Programming with Java" book by Svetlin Nakov & Co. under CC-BY-SA license
 "C# Basics" course by Software University under CC-BY-NC-SA license
License
Free Trainings @ Software University
 Software University Foundation – softuni.org
 Software University – High-Quality Education,
Profession and Job for Software Developers
 softuni.bg
 Software University @ Facebook
 facebook.com/SoftwareUniversity
 Software University @ YouTube
 youtube.com/SoftwareUniversity
 Software University Forums – forum.softuni.bg

05. Java Loops Methods and Classes

  • 1.
    Loops, Methods, Classes UsingLoops, Defining and Using Methods, Using API Classes, Exceptions, Defining Classes Svetlin Nakov Technical Trainer www.nakov.com Software University http://softuni.bg
  • 2.
    2 1. Loops  while,do-while, for, for-each 2. Methods  Defining Methods  Invoking Methods 3. Using the Java API Classes 4. Exception Handling Basics 5. Defining Simple Classes Table of Contents
  • 3.
    3  The "JavaBasics" course is NOT for absolute beginners  Take the "C# Basics" course at SoftUni first: https://softuni.bg/courses/csharp-basics  The course is for beginners, but with previous coding skills  Requirements  Coding skills – entry level  Computer English – entry level  Logical thinking Warning: Not for Absolute Beginners
  • 4.
  • 5.
    Loop: Definition  Aloop is a control statement that repeats the execution of a block of statements  May execute a code block fixed number of times  May execute a code block while given condition holds  May execute a code block for each member of a collection  Loops that never end are called an infinite loops while (condition) { statements; } 5
  • 6.
    While Loop  Thesimplest and most frequently used loop  The repeat condition  Returns a boolean result of true or false  Also called loop condition while (condition) { statements; } 6
  • 7.
    While Loop –Example: Numbers 0…9 int counter = 0; while (counter < 10) { System.out.printf("Number : %dn", counter); counter++; } 7
  • 8.
    Using the breakOperator  The break operator exits the inner-most loop public static void main(String[] args) { int n = new Scanner(System.in).nextInt(); // Calculate n! = 1 * 2 * ... * n int result = 1; while (true) { if (n == 1) break; result *= n; n--; } System.out.println("n! = " + result); } 8
  • 9.
    Do-While Loop  Anotherclassical loop structure is:  The block of statements is repeated  While the boolean loop condition holds  The loop is executed at least once do { statements; } while (condition); 9
  • 10.
    Product of Numbers[N..M] – Example  Calculating the product of all numbers in the interval [n..m]: Scanner input = new Scanner(System.in); int n = input.nextInt(); int m = input.nextInt(); int number = n; BigInteger product = BigInteger.ONE; do { BigInteger numberBig = new BigInteger("" + number); product = product.multiply(numberBig); number++;; } while (number <= m); System.out.printf("product[%d..%d] = %dn", n, m, product); 10
  • 11.
     The classicalfor-loop syntax is:  Consists of  Initialization statement  Boolean test expression  Update statement  Loop body block For Loops for (initialization; test; update) { statements; } 11
  • 12.
     A simplefor-loop to print the numbers 0…9: For Loop – Examples for (int number = 0; number < 10; number++) { System.out.print(number + " "); }  A simple for-loop to calculate n!: long factorial = 1; for (int i = 1; i <= n; i++) { factorial *= i; } 12
  • 13.
     continue bypassesthe iteration of the inner-most loop  Example: sum all odd numbers in [1…n], not divisors of 7: Using the continue Operator int n = 100; int sum = 0; for (int i = 1; i <= n; i += 2) { if (i % 7 == 0) { continue; } sum += i; } System.out.println("sum = " + sum); 13
  • 14.
     The typicalfor-each loop syntax is:  Iterates over all the elements of a collection  The element is the loop variable that takes sequentially all collection values  The collection can be list, array or other group of elements of the same type For-Each Loop for (Type element : collection) { statements; } 14
  • 15.
     Example offor-each loop:  The loop iterates over the array of day names  The variable day takes all its values  Applicable for all collection: arrays, lists, strings, etc. For-Each Loop – Example String[] days = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }; for (String day : days) { System.out.println(day); } 15
  • 16.
    16  Loops canbe nested (one inside another)  Example: print all combinations from TOTO 6/49 lottery Nested Loops for (int i1 = 1; i1 <= 44; i1++) for (int i2 = i1 + 1; i2 <= 45; i2++) for (int i3 = i2 + 1; i3 <= 46; i3++) for (int i4 = i3 + 1; i4 <= 47; i4++) for (int i5 = i4 + 1; i5 <= 48; i5++) for (int i6 = i5 + 1; i6 <= 49; i6++) System.out.printf("%d %d %d %d %d %dn", i1, i2, i3, i4, i5, i6);
  • 17.
  • 18.
  • 19.
    19  Methods arenamed pieces of code  Defined in the class body  Can be invoked multiple times  Can take parameters  Can return a value Methods: Defining and Invoking private static void printAsterix(int count) { for (int i = 0; i < count; i++) { System.out.print("*"); } System.out.println(); } public static void main(String[] args) { int n = 5; for (int i = 1; i <= n; i++) { printAsterix(i); } }
  • 20.
    20 Methods with Parametersand Return Value static double calcTriangleArea(double width, double height) { return width * height / 2; } public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter triangle width: "); double width = input.nextDouble(); System.out.print("Enter triangle height: "); double height = input.nextDouble(); System.out.println("Area = " + calcTriangleArea(width, height)); } Method names in Java should be in camelCase
  • 21.
    21  Recursion ==method can calls itself Recursion public static void main(String[] args) { int n = 5; long factorial = calcFactorial(n); System.out.printf("%d! = %d", n, factorial); } private static long calcFactorial(int n) { if (n <= 1) { return 1; } return n * calcFactorial(n-1); }
  • 22.
  • 23.
    Using the JavaAPI Classes
  • 24.
    24  Java SEprovides thousands of ready-to-use classes  Located in packages like java.lang, java.math, java.net, java.io, java.util, java.util.zip, etc.  Using static Java classes:  Using non-static Java classes Build-in Classes in the Java API LocalDate today = LocalDate.now(); double cosine = Math.cos(Math.PI); Random rnd = new Random(); int randomNumber = 1 + rnd.nextInt(100);
  • 25.
    Using the JavaAPI Classes Live Demo
  • 26.
    Exception Handling Basics Catchand Throw Exceptions
  • 27.
    27  In Javaexceptions are handled by the try-catch-finally construction  catch blocks can be used multiple times to process different exception types Handling Exceptions try { // Do some work that can raise an exception } catch (SomeException ex) { // Handle the caught exception } finally { // This code will always execute }
  • 28.
    28 Handling Exceptions –Example public static void main(String[] args) { String str = new Scanner(System.in).nextLine(); try { int i = Integer.parseInt(str); System.out.printf( "You entered a valid integer number %d.n", i); } catch (NumberFormatException nfex) { System.out.println("Invalid integer number: " + nfex); } }
  • 29.
    29  A methodin Java could declare "throws SomeException"  This says "I don't care about SomeException", please re-throw it The "throws …" Declaration public static void copyStream(InputStream inputStream, OutputStream outputStream) throws IOException { byte[] buf = new byte[4096]; // 4 KB buffer size while (true) { int bytesRead = inputStream.read(buf); if (bytesRead == -1) break; outputStream.write(buf, 0, bytesRead); } }
  • 30.
    30  When weuse a resource that is expected to be closed, we use the try-with-resources statement Resource Management in Java try( BufferedReader fileReader = new BufferedReader( new FileReader("somefile.txt")); ) { while (true) { String line = fileReader.readLine(); if (line == null) break; System.out.println(line); } catch (IOException ioex) { System.err.println("Cannot read the file ".); }
  • 31.
    Defining Simple Classes UsingClasses to Hold a Set of Fields
  • 32.
    32  Classes inJava combine a set of named fields / properties  Defining a class Point holding X and Y coordinates: Defining Classes in Java class Point { private int x, y; public Point(int x, int y) { this.x = x; this.y = y; } public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { … } public void setY(int y) { … } }
  • 33.
    33  Eclipse providestools for automatically generate constructors and getters / setters for the class fields Defining Classes in Eclipse
  • 34.
  • 35.
    35  Java supportsthe classical loop constructs  while, do-while, for, for-each  Similarly to C#, JavaScript, PHP, C, C++, …  Java support methods  Methods are named code blocks  Can take parameters and return a result  Java supports classical exception handling  Through the try-catch-finally construct  Developers can define their own classes  With fields, methods, constructors, getters, setters, etc. Summary
  • 36.
  • 37.
    37  This course(slides, examples, demos, videos, homework, etc.) is licensed under the "Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International" license  Attribution: this work may contain portions from  "Fundamentals of Computer Programming with Java" book by Svetlin Nakov & Co. under CC-BY-SA license  "C# Basics" course by Software University under CC-BY-NC-SA license License
  • 38.
    Free Trainings @Software University  Software University Foundation – softuni.org  Software University – High-Quality Education, Profession and Job for Software Developers  softuni.bg  Software University @ Facebook  facebook.com/SoftwareUniversity  Software University @ YouTube  youtube.com/SoftwareUniversity  Software University Forums – forum.softuni.bg

Editor's Notes

  • #28 (c) 2007 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*