Presentation is loading. Please wait.

Presentation is loading. Please wait.

Question of the Day  How do you add 5 matches to these 6 & make 9?

Similar presentations


Presentation on theme: "Question of the Day  How do you add 5 matches to these 6 & make 9?"— Presentation transcript:

1 Question of the Day  How do you add 5 matches to these 6 & make 9?

2 Question of the Day  How do you add 5 matches to these 6 & make 9?

3

4 Announcements  Weekly assignments problems due tomorrow  Helps get rid of rust; last week of reviewing material  Make sure that your coding skills are back up to speed  Next week JUnit tests provided for each problem

5 Calling Methods  Some methods really need an object  Integer. intValue() is unclear without an object  But other methods independent of an instance  main(String[]) lacks object to use to call it  Why require Integer to call parseInt(String) ?

6 static Methods  static methods do not need an instance  Behavior defined by class, not an instance  parseInt(String) based only on Integer  All methods similar in how written & executed  May or may not include parameters  Local variables can be declared and used  Must either be void or declare return type  Mix of methods possible for all classes & enums

7 Making Method static  Include static keyword in method declaration public static void main(String args[]) public static int parseInt(String s) private static int nextInt()  Behaves like any other method (almost)  Use locals & parameters like normal  As with other code, call (nearly all) other methods  Java operators can be used  Perform any I/O operations

8 static v. Non- static  Methods that are non- static have this  Aliased to instance on which method called  Can directly use fields & call all methods  No this parameter in static methods  Code directly using non- static members illegal…  … using static fields & methods perfectly legal  As always, can use object to access its members

9 BadDuck public class BadDuck { private int quackVolume; public static void printVolume() { System.out.println(“Volume is ” + getVolume()); BadDuck duck = new BadDuck(); duck.quackVolume = 11; System.out.println(“Volume is ”+duck.getVolume()); } public int getVolume() { return quackVolume; } }

10 BadDuck public class BadDuck { private int quackVolume; public static void printVolume() { System.out.println(“Volume is ” + getVolume()); BadDuck duck = new BadDuck(); duck.quackVolume = 11; System.out.println(“Volume is ”+duck.getVolume()); } public int getVolume() { return quackVolume; } } Compiler error. Without an object, whose volume are we getting?

11 BadDuck public class BadDuck { private int quackVolume; public static void printVolume() { System.out.println(“Volume is ” + getVolume()); BadDuck duck = new BadDuck(); duck.quackVolume = 11; System.out.println(“Volume is ”+duck.getVolume()); } public int getVolume() { return quackVolume; } } This is good. There is a duck to get the volume.

12 BadDuck public class BadDuck { public static String duckSpeak() { return “quack”; } } public class UseDuck { public void speak() { System.out.println(BadDuck.duckSpeak()); BadDuck duck = new BadDuck(); System.out.println(duck.duckSpeak()); } }

13 BadDuck public class BadDuck { public static String duckSpeak() { return “quack”; } } public class UseDuck { public void speak() { System.out.println(BadDuck.duckSpeak()); BadDuck duck = new BadDuck(); System.out.println(duck.duckSpeak()); } } This compiles. Static methods do not use an object, so this is preferred way to call them.

14 BadDuck public class BadDuck { public static String duckSpeak() { return “quack”; } } public class UseDuck { public void speak() { System.out.println(BadDuck.duckSpeak()); BadDuck duck = new BadDuck(); System.out.println(duck.duckSpeak()); } } Also fine, but since method is static, still cannot access instance.

15 static Fields  Some data belongs to class, not instance Float.MAX_VALUE Citizen.nationalPopulation Instructor.bestProfessor  static fields used for any class-based data  All of the class instances see same value  Do not need an instance to access this value  Can be updated via any instance or via class

16 static Code for Tracing public class HHL { static int numTeams; String name; HHL(String newName) { numTeams += 1; name = newName; } public static void main(String[] args) { HHL me = new HHL(“MHz”); HHL you = new HHL(“SFH”); HHL alias = you; alias.name = “Bob”; alias.numTeams = 10; } }

17 Instance v. Class Review  Class owns members declared as static  Accessing & using member possible without instance  Methods lack implicit this parameter no matter what  To use a non- static member, instance required  Fields’ data instance-specific and not shared by class  Can access all members using implicit this parameter  Other instances’ members accessible with reference

18 Your Turn  Get into your groups and complete activity

19 For Next Lecture  Reading about packages & visibility for Wed.  What are packages and what do they do?  What are the different visibility modifiers in Java?  What is javadoc and why is it so amazingly useful?  There is weekly assignment posted on Angel tomorrow  Assignment due tomorrow; working week-to-week  While not due daily, problems still follow lectures


Download ppt "Question of the Day  How do you add 5 matches to these 6 & make 9?"

Similar presentations


Ads by Google