Hello World concepts - Rose

Download Report

Transcript Hello World concepts - Rose

Recap: “From scratch” projects
• Today’s software engineering is almost NEVER “from scratch”
– Compilers translate from high-level language to machine code
– We use libraries for printing and (in Java) much more
– We reuse existing code
• During a 20 year career, a typical software engineer might:
– Work on about 20 projects
– Be involved with the creation of only 1 or 2 projects from scratch
• For all the other projects, she modifies/extends existing projects
• You have done a “from scratch” project called HelloWorld
– So that you can see what one is like
– And so that you can see “under the hood” of some of the concepts that you
have been studying
Fundamentals of Software
Development 1
Slide 1
Hello World concepts – outline
• The next slide shows the entire HelloWorld program/
It illustrates the following concepts:
–
–
–
–
The main method
Static methods
Console projects
How to use System.out.println to print a String to the
console
• A subsequent slide will illustrate these additional
concepts:
– How to read from the console (i.e., get input from the
human)
– How and why to use “helper” methods
Fundamentals of Software
Development 1
Slide 2
Hello World – the complete program
What is special about the main method?
The main method is static.
What does that mean?
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world");
}
}
Is System a class, method or
field? How can you tell?
Questions?
Is out a method or field? How can you tell?
Fundamentals of Software
Development 1
Is println a method or field? What does println do?
Slide 3
Answers to questions on previous slide
main is the name of
the special method at
which any Java
application begins
A static method is a method that “belongs” to the
class instead of to each instance of the class. The
static method cannot refer to the class’ non-static fields.
The special main method is, by definition, static.
main has command-line
public class HelloWorld {
arguments sent as a String array
public static void main(String[] args) {
System.out.println("Hello world");
}
}
System is a class
that has “system” stuff
Fundamentals of Software
Development 1
System has a public static
field called out that is a
PrintStream – a thing that
can print to the console
Instructor:
run this
zipped
HelloWorld
project
println is a PrintStream
method that prints its
argument on a line
Slide 4
HelloWorld extended concepts –
outline
• We just saw the following concepts from HelloWorld:
–
–
–
–
The main method
Static methods
Console projects
How to use System.out.println to print a String to the console
• Now we turn to these additional concepts from
HelloWorld:
– How to read from the console (i.e., get input from the human)
– How and why to use “helper” methods
• We continue to omit comments in order to focus on the code
Fundamentals of Software
Development 1
Slide 5
To read from the console:
When you use a library class (like
import java.util.Scanner;
Scanner), you usually need to import
the class to tell Java where to find it.
public class ScannerExample {
public static void main(String[] args) {
Scanner scanner;
Declare a Scanner local variable
String input;
Construct
Prompt
the human
to type
something
scanner = new Scanner(System.in);
the Scanner,
sending it
System.in
System.out.print(“Enter a String: ”);
input = scanner.next();
next()
waits for the
user to type
System.out.println(input.substring(3)); and returns
the result.
}
We could have done anything we want with the
} Fundamentals of Software
input – printing a substring of it is just an example.
Development 1
Slide 6
“Helper” methods
• Encapsulation: bundling things together to make
them easier to deal with
• Encapsulation in methods:
– Bundle a chunk of code Allows a chunk of code to be
referenced via a well-chosen name
– Give it a name
– Perhaps give it parameters Allows the code to be reused in
• “Helper” methods
a more general way (by sending
different values as arguments)
– Private methods that you create to help the rest of your
program
– Valuable for the same reasons that encapsulating in methods
is valuable in general
Fundamentals of Software
Development 1
Slide 7
The boxes are there to
import java.util.Scanner;
public class ScannerExample { help your eyes – not part
of the code
public static void main(String[] args) {
}
This slide illustrates:
“helper” methods
ScannerExample.cubeRoot(12.0);
“for” loops
for (int k = 100; k < 110; k = k + 1) {
ScannerExample.cubeRoot((double) k);
}
Reading numbers
from the console
ScannerExample.cubeRoot();
ScannerExample.cubeRoot();
Methods that call
other methods
private static void cubeRoot(double number) {
System.out.println(“Cube root of ” + number
+ “ is ” + Math.pow(number, 1.0 / 3.0));
}
}
private static void cubeRoot() {
Scanner scanner = new Scanner(System.in);
System.out.print(“Enter a number: ”);
ScannerExample.cubeRoot(scanner.nextDouble());
Fundamentals of Software
}
Development 1
Study this code.
ASK QUESTIONS!
You will apply
these ideas in
HelloWorld, Part 2
(homework).
If you wish, download
and unzip
ScannerExample
Slide 8