Lec 7 Using Static Class Methods Today • We work with static utility methods of a class • We learn how JavaDocs can help us figure out how to use them 3 Different Kinds of Classes 1. Application Class – what we've been doing – Has public static void main ( String [] args) 2. Instantiable Class – use to make objects from – String, Scanner 3. Classes with only static utility methods – like Math class 3 Different Kinds of Classes -- I • Application Class – what we've been doing – has public static void main(String [] args) – where program begins execution – where we develop solutions to lab problems • create variables, objects that help us • read input, compute answers, display results 3 Different Kinds of Classes -- II • Instantiable Class – used to make objects from – SO FAR ONLY: String, Scanner • To use an Instantiable class we must – Declare a variable of that class type • String message; Scanner myUserInput; – Instantiate a new object • message = new String("hello"); • myUserInput = new Scanner(System.in); – Use associated methods (name of object '.' method) • message.trim(); myUserInput.nextInt(); 3 Different Kinds of Classes -- III • Classes with static utility methods – We never "instantiate" these classes – Math class (Math.random(), Math.round() ) – refer to the class name '.' method name • We can get lots of help from these IF • we learn how to read the JavaDocs manuals on them Class NumericalStuff • Demo "Helper" for working with numbers – finding prime numbers, dividing – Home made by Professor Kowalczk • Javadocs for NumericalStuff • Lets study some of the method documentation: NumericalStuff -- findPrime • static: means it's a static utility method – will not be associated with an object – have to invoke by "Name of Class" • NumericalStuff.findPrime NumericalStuff -- findPrime • int: means it's going to give you an integer back – you need a variable to receive it: • int myPrime = NumericalStuff.findPrime ... – OR you can print it out • System.out.println("a prime is " + NumericalStuff.findPrime... ) NumericalStuff -- findPrime • findPrime: the name of this particular method NumericalStuff -- findPrime • int n: means you must give it an integer in parens – int myPrime = NumericalStuff.findPrime (5); – System.out.println("a prime is " + NumericalStuff.findPrime(12)); Given this NumericalStuff method doc • • • • • Which is/are using it correctly? boolean x = isPrime ( 23); int x = NumericalStuff.isPrime(23); if (NumericalStuff.isPrime(23)){ .... boolean x = NumericalStuff.isPrime(3.14159); Using Class OtherStuff ... • How would you show the current Time ? • How would you save the 10th dictionary word? Using Class StringUtil... How to determine what is the 5th letter of "centaur" ? Using Class Coin: One other return type -- void • Means it doesn't return anything • Use it on a line by itself Coin.dispenseDime(true); // prints a dime, beeps Coin.dispenseDime(false); // prints, doesn't beep Lab 7 • • • • Making change with Coin Class Ask for amount of change requested Find how many coins that is (using Coin class) dispense Quarters until no more left – use a while loop with Coin.dispenseQuarters inside • dispense Dimes until no more left – use a while loop with Coin.dispenseDimes inside • and so on with nickels and pennies • maybe disable "beep" while debugging!