Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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