Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Chapter 5 l Programming with Methods l Static Methods and Static Variables.

Similar presentations


Presentation on theme: "Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Chapter 5 l Programming with Methods l Static Methods and Static Variables."— Presentation transcript:

1 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Chapter 5 l Programming with Methods l Static Methods and Static Variables l Designing Methods l Polymorphism l Constructors l Information Hiding Revisited l Packages More About Objects and Methods

2 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 2 The " this. " Operator this. refers to the object that contains the reference l Methods called in an object definition file do not need to reference itself You may either use " this. ", or omit it, since it is presumed For example, if answerOne() is a method defined in the class Oracle : public class Oracle {... //One way to invoke the answerOne method defined //in this file: this.answerOne(); //Another way is to omit "this." answerOne(); //"this." is presumed... }

3 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 3 When an Object Is Required l Methods called outside the object definition require an object to precede the method name l For example: Oracle myOracle = new Oracle(); //myOracle is not part of the definition code //for Oracle... //dialog is a method defined in Oracle class myOracle.dialog();...

4 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 4 Static Methods l Some methods do work but do not need an object »For example, methods to calculate area: just pass the required parameters and return the area l Use the class name instead of an object name to invoke them l For example » CircleFirstTry is a class with methods to perform calculations on circles: CircleFirstTry.area(myRadius); »Notice that the the method invocation uses " className. " instead of " circleObject. " l Also called class methods

5 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 5 Static Methods Declare static methods with the static modifier, for example: public static double area(double radius)... l Since a static method doesn’t need a calling object, it cannot refer to a (nonstatic) instance variable of the class. l Likewise, a static method cannot call a nonstatic method of the class (unless it creates an object of the class to use as a calling object).

6 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 6 public class PlayCircle { public static final double PI = 3.141592; private double diameter; public void setDiameter(double newDiameter) { diameter = newDiameter; } public static double area(double radius) { return (PI*radius*radius); } public void showArea() { System.out.println("Area is " + area(diameter/2)); } public static void areaDialog() { System.out.println("Enter diameter of circle:"); double newDiameter = SavitchIn.readLineDouble(); PlayCircle c = new PlayCircle(); c.setDiameter(newDiameter); c.showArea(); } Display 5.5 PlayCircle

7 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 7 public class PlayCircleDemo { public static void main(String[] args) { PlayCircle circle = new PlayCircle(); circle.setDiameter(2); System.out.println("If circle has diameter 2, "); circle.showArea(); System.out.println("Now, you choose the diameter:"); PlayCircle.areaDialog(); } Display 5.6 PlayCircleDemo

8 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 8 Execution Result of PlayCircleDemo

9 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 9 Uses for Static Methods l Static methods are commonly used to provide libraries of useful and related functions l Examples: »the Math class –automatically provided with Java –functions include pow, sqrt, max, min, etc. –see the next slide for more details »SavitchIn defines methods for keyboard input –not automatically provided with Java –functions include readLineInt, readLineDouble, etc. –see the appendix

10 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 10 The Math Class (1/2) Includes constants Math.PI (approximately 3.14159) and Math.E (base of natural logarithms which is approximately 2.72) Includes three similar static methods: round, floor, and ceil »All three return whole numbers (although they are type double ) »Math.round returns the whole number nearest its argument Math.round(3.3) returns 3.0 and Math.round(3.7) returns 4.0 »Math.floor returns the nearest whole number that is equal to or less than its argument Math.floor(3.3) returns 3.0 and Math.floor(3.7) returns 3.0 »Math.ceil (short for ceiling) returns the nearest whole number that is equal to or greater than its argument Math.ceil(3.3) returns 4.0 and Math.ceil(3.7) returns 4.0

11 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 11 The Math Class (2/2) l Math.pow(2.0, 3.0) returns 8.0. l Math.abs(-7) returns 7. l Math.max(5, 6) returns 6. l Math.min(5, 6) returns 5. l Math.sqrt(4.0) returns 2.0.

12 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 12 Static Variables The StaticDemo program in the text uses a static variable: private static int numberOfInvocations = 0; l Similar to definition of a named constant, which is a special case of static variables. l May be public or private but are usually private for the same reasons instance variables are. l Only one copy of a static variable and it can be accessed by any object of the class. l May be initialized (as in example above) or not. l Can be used to let objects of the same class coordinate. l Not used in the rest of the text.

13 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 13 Wrapper Classes l Used to wrap primitive types in a class structure l All primitive types have an equivalent class l The class includes useful constants and static methods, including one to convert back to the primitive type

14 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 14 Wrapper class example: Integer Declare an Integer class variable: Integer n = new Integer(); Convert the value of an Integer variable to its primitive type, int : int i = n.intValue();//intValue returns an int Some useful Integer constants: »Integer.MAX_VALUE - the maximum integer value the computer can represent »Integer.MIN_VALUE - the smallest integer value the computer can represent

15 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 15 Wrapper class example: Integer Some useful Integer methods: »Integer.valueOf("123") to convert a string of numerals to an integer »Integer.toString(123) to convert an Integer to a String l The other wrapper classes have similar constants and functions See the text for useful methods for the class Character

16 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 16 Wrapper class example: Character l toUpperCase() - Both Character.toUpperCase(‘a’) and Character.toUpperCase(‘A’) return ‘A’. l toLowerCase() - Both Character.toLowerCase(‘A’) and Character.toLowerCase(‘a’) return ‘a’. l isUpperCase() - Character.isUpperCase(‘A’) returns true. - Character.isUpperCase(‘a’) returns false. l isWhitespace() - Character.isWhitespace(‘ ‘) returns ture. - Character.isWhitespace(‘A’) returns false.

17 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 17 Wrapper class example: Character l isLetter() - Character.isLetter(‘A’) returns true. - Character.isLetter(‘%’) returns false. l isDigit() - Character.isDigit(‘5’) returns true. - Character.isDigit(‘A’) returns false.

18 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 18 Usage of wrapper classes Wrapper Class l variables contain the address of the value variable declaration example: Integer n = new Integer(); l variable declaration & init: Integer n = new Integer(0); l assignment: n = new Integer(5); Primitive Type l variables contain the value variable declaration example: int n; variable declaration & init.: int n = 0; l assignment: n = 99; There are some important differences in the code to use wrapper classes and that for the primitive types

19 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 19 Designing Methods: Top-Down Design l In pseudocode, write a list of subtasks that the method must do. l If you can easily write Java statements for a subtask, you are finished with that subtask. l If you cannot easily write Java statements for a subtask, treat it as a new problem and break it up into a list of subtasks. l Eventually, all of the subtasks will be small enough to easily design and code. l Solutions to subtasks might be implemented as private helper methods. l Top-down design is also known as divide-and-conquer or stepwise refinement.

20 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 20 Programming Tips for Writing Methods Apply the principle of encapsulation and detail hiding by using the public and private modifiers judiciously »If the user will need the method, make it part of the interface by declaring it public »If the method is used only within the class definition (a helper method, then declare it private Create a main method with diagnostic (test) code within a class's definition »run just the class to execute the diagnostic program »when the class is used by another program the class's main is ignored

21 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 21 Testing a Method l Test programs are sometimes called driver programs l Keep it simple: test only one new method at a time »driver program should have only one untested method l If method A uses method B, there are two approaches: l Bottom up »test method B fully before testing A l Top down »test method A and use a stub for method B »A stub is a method that stands in for the final version and does little actual work. It usually does something as trivial as printing a message or returning a fixed value. The idea is to have it so simple you are nearly certain it will work.

22 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 22 Overloading l The same method name has more than one definition within the same class l Each definition must have a different signature »different argument types, a different number of arguments, or a different ordering of argument types »The return type is not part of the signature and cannot be used to distinguish between two methods with the same name and parameter types

23 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 23 Signature l the combination of method name and number and types of arguments, in order equals(Species) has a different signature than equals(String) »same method name, different argument types myMethod(1) has a different signature than myMethod(1, 2) »same method name, different number of arguments myMethod(10, 1.2) has a different signature than myMethod(1.2, 10) »same method name and number of arguments, but different order of argument types

24 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 24 public class Statistician { public static void main(String[] args) { double average1 = Statistician.average(40.0, 50.0); double average2 = Statistician.average(1.0, 2.0, 3.0); char average3 = Statistician.average('a', 'c'); System.out.println("average1 = " + average1); System.out.println("average2 = " + average2); System.out.println("average3 = " + average3); } public static double average(double first, double second) { return ((first + second)/2.0); } public static double average(double first, double second, double third) { return ((first + second + third)/3.0); } public static char average(char first, char second) { return (char)(((int)first + (int)second)/2); } Display 5.15 Overloading Display 5.15 Overloading

25 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 25 Execution Result of Statistician.java

26 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 26 Gotcha: Overloading and Argument Type l Accidentally using the wrong datatype as an argument can invoke a different method For example, see the Pet class in the text »set(int) sets the pet's age »set(double) sets the pet's weight »You want to set the pet's weight to 6 pounds: –set(6.0) works as you want because the argument is type double –set(6) will set the age to 6, not the weight, since the argument is type int

27 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 27 Gotcha: Automatic Type Conversion and Overloading If Java does not find a signature match, it attempts some automatic type conversions, e.g. int to double l An unwanted version of the method may execute l In the text Pet example of overloading: What you want: name "Cha Cha", weight 2, and age 3 But you make two mistakes: 1. you reverse the age and weight numbers, and 2. you fail to make the weight a type double. »set("Cha Cha", 2, 3) does not do what you want –it sets the pet's age = 2 and the weight = 3.0 »Why? –set has no definition with the argument types String, int, int –However, it does have a definition with String, int, double, so it promotes the last number, 3, to 3.0 and executes the method with that signature

28 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 28 public class Pet { private String name; private int age;//in years private double weight;//in pounds public static void main(String[] args) { Pet myDog = new Pet(); myDog.set("Fido", 2, 5.5); myDog.writeOutput(); System.out.println("Changing name."); myDog.set("Rex"); myDog.writeOutput(); System.out.println("Changing weight."); myDog.set(6.5); myDog.writeOutput(); System.out.println("Changing age."); myDog.set(3); myDog.writeOutput(); } Display 5.16 Pet class (1/4) Display 5.16 Pet class (1/4)

29 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 29 public void writeOutput() { System.out.println("Name: " + name); System.out.println("Age: " + age + " years"); System.out.println("Weight: " + weight + " pounds"); } public void set(String newName) { name = newName; //age and weight are unchanged. } public void set(int newAge) { if (newAge <= 0) { System.out.println("Error: illegal age."); System.exit(0); } else age = newAge; //name and weight are unchanged. } Display 5.16 Pet class (2/4) Display 5.16 Pet class (2/4)

30 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 30 public void set(double newWeight) { if (newWeight <= 0) { System.out.println("Error: illegal weight."); System.exit(0); } else weight = newWeight; //name and age are unchanged. } public void set(String newName, int newAge, double newWeight) { name = newName; if ((newAge <= 0) || (newWeight <= 0)) { System.out.println("Error: illegal age or weight."); System.exit(0); } else { age = newAge; weight = newWeight; } Display 5.16 Pet class (3/4) Display 5.16 Pet class (3/4)

31 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 31 public String getName() { return name; } public int getAge() { return age; } public double getWeight() { return weight; } Display 5.16 Pet class (4/4) Display 5.16 Pet class (4/4)

32 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 32 Execution Result of Pet.java

33 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 33 public class Money { private long dollars; private long cents; public void set(long newDollars) { if (newDollars < 0) { System.out.println( "Error: Negative amounts of money are not allowed."); System.exit(0); } else { dollars = newDollars; cents = 0; } Display 5.17 Money class (1/5) Display 5.17 Money class (1/5)

34 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 34 public void set(double amount) { if (amount < 0) { System.out.println( "Error: Negative amounts of money are not allowed."); System.exit(0); } else { long allCents = Math.round(amount*100); dollars = allCents/100; cents = allCents%100; } public void set(Money otherObject) { this.dollars = otherObject.dollars; this.cents = otherObject.cents; } Display 5.17 Money class (2/5) Display 5.17 Money class (2/5)

35 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 35 public void set(String amountString) { String dollarsString; String centsString; if (amountString.charAt(0) == '$') amountString = amountString.substring(1); amountString = amountString.trim(); int pointLocation = amountString.indexOf("."); if (pointLocation < 0) //If no decimal point { cents = 0; dollars = Long.parseLong(amountString); } else//String has a decimal point. { dollarsString = amountString.substring(0, pointLocation); centsString = amountString.substring(pointLocation + 1); if (centsString.length() <= 1) centsString = centsString + "0"; dollars = Long.parseLong(dollarsString); cents = Long.parseLong(centsString); if ((dollars 99)) { System.out.println( "Error: Illegal representation of money amount."); System.exit(0); } Display 5.17 Money class (3/5) Display 5.17 Money class (3/5)

36 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 36 public void readInput() { System.out.println("Enter amount on a line by itself:"); String amount = SavitchIn.readLine(); set(amount.trim()); } public void writeOutput() { System.out.print("$" + dollars); if (cents < 10) System.out.print(".0" + cents); else System.out.print("." + cents); } public Money times(int n) { Money product = new Money(); product.cents = n*cents; long carryDollars = product.cents/100; product.cents = product.cents%100; product.dollars = n*dollars + carryDollars; return product; } Display 5.17 Money class (4/5) Display 5.17 Money class (4/5)

37 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 37 public Money add(Money otherAmount) { Money sum = new Money(); sum.cents = this.cents + otherAmount.cents; long carryDollars = sum.cents/100; sum.cents = sum.cents%100; sum.dollars = this.dollars + otherAmount.dollars + carryDollars; return sum; } Display 5.17 Money class (5/5) Display 5.17 Money class (5/5)

38 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 38 public class MoneyDemo { public static void main(String[] args) { Money start = new Money(); Money goal = new Money(); System.out.println("Enter your current savings:"); start.readInput(); goal = start.times(2); System.out.print( "If you double that, you will have "); goal.writeOutput(); System.out.println(", or better yet:"); goal = start.add(goal); System.out.println( "If you triple that original amount, you will have:"); goal.writeOutput(); System.out.println(); System.out.println( "Remember: A penny saved"); System.out.println("is a penny earned."); } } Display 5.18 Using Money class Display 5.18 Using Money class

39 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 39 Execution Result of MoneyDemo.java

40 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 40 Constructors l A constructor is a special method designed to initialize instance variables Automatically called when an object is created using new l Has the same name as the class l Often overloaded (more than one constructor for the same class definition) »different versions to initialize all, some, or none of the instance variables »each constructor has a different signature (a different number or sequence of argument types)

41 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 41 Defining Constructors Constructor headings do not include the word void l In fact, constructor headings do not include a return type l A constructor with no parameters is called a default constructor l If no constructor is provided Java automatically creates a default constructor »If any constructor is provided, then no constructors are created automatically Programming Tip l Include a constructor that initializes all instance variables l Include a constructor that has no parameters »include your own default constructor

42 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 42 Constructor Example from PetRecord public class PetRecord { private String name; private int age; //in years private double weight; //in pounds... public PetRecord(String initialName) { name = initialName; age = 0; weight = 0; } Initializes three instance variables: name from the parameter and age and weight with default initial values. Sample use: PetRecord pet1 = new Pet(“Eric”);

43 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 43 public class PetRecord { private String name; private int age;//in years private double weight;//in pounds public void writeOutput() { System.out.println("Name: " + name); System.out.println("Age: " + age + " years"); System.out.println("Weight: " + weight + " pounds"); } public PetRecord(String initialName, int initialAge, double initialWeight) { name = initialName; if ((initialAge < 0) || (initialWeight < 0)) { System.out.println("Error: Negative age or weight."); System.exit(0); } else { age = initialAge; weight = initialWeight; } Display 5.19 Pet class With Constructors (1/5) Display 5.19 Pet class With Constructors (1/5)

44 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 44 public void set(String newName, int newAge, double newWeight) { name = newName; if ((newAge < 0) || (newWeight < 0)) { System.out.println("Error: Negative age or weight."); System.exit(0); } else { age = newAge; weight = newWeight; } public PetRecord(String initialName) { name = initialName; age = 0; weight = 0; } public void set(String newName) { name = newName; //age and weight are unchanged. } Display 5.19 PetRecord class (2/5) Display 5.19 PetRecord class (2/5)

45 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 45 public PetRecord(int initialAge) { name = "No name yet."; weight = 0; if (initialAge < 0) { System.out.println("Error: Negative age."); System.exit(0); } else age = initialAge; } public void set(int newAge) { if (newAge < 0) { System.out.println("Error: Negative age."); System.exit(0); } else age = newAge; //name and weight are unchanged. } Display 5.19 PetRecord class (3/5) Display 5.19 PetRecord class (3/5)

46 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 46 public PetRecord(double initialWeight) { name = "No name yet"; age = 0; if (initialWeight < 0) { System.out.println("Error: Negative weight."); System.exit(0); } else weight = initialWeight; } public void set(double newWeight) { if (newWeight < 0) { System.out.println("Error: Negative weight."); System.exit(0); } else weight = newWeight; //name and age are unchanged. } Display 5.19 PetRecord class (4/5) Display 5.19 PetRecord class (4/5)

47 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 47 public PetRecord() // Default constructor { name = "No name yet."; age = 0; weight = 0; } public String getName() { return name; } public int getAge() { return age; } public double getWeight() { return weight; } Display 5.19 PetRecord class (5/5) Display 5.19 PetRecord class (5/5)

48 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 48 Using Constructors Always use a constructor after new For example, using the Pet class in text: Pet myCat = new Pet("Calvin", 5, 10.5); »this calls the Pet constructor with String, int, double parameters l If you want to change values of instance variables after you have created an object, you must use other methods for the object »you cannot call a constructor for an object after it is created »set methods should be provided for this purpose

49 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 49 public class PetRecordDemo { public static void main(String[] args) { PetRecord usersPet = new PetRecord("Jane Doe"); System.out.println("My records on your pet are inaccurate."); System.out.println("Here is what they currently say."); usersPet.writeOutput(); System.out.println("Please enter the correct pet name:"); String correctName = SavitchIn.readLine(); System.out.println("Please enter the correct pet age:"); int correctAge = SavitchIn.readLineInt(); System.out.println("Please enter the correct pet weight:"); double correctWeight = SavitchIn.readLineDouble(); usersPet.set(correctName, correctAge, correctWeight); System.out.println("My updated records now say:"); usersPet.writeOutput(); } Display 5.20 Using constructors Display 5.20 Using constructors

50 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 50 Execution Result of PetRecordDemo.java

51 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 51 Constructor Returning a Reference

52 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 52 Information Hiding Revisited l Using instance variables of a class type takes special care l The details are beyond the scope of this text, but »the problem in described in section 5.4/page275 »Appendix 6 covers some of the details l The problem stems from the fact that, unlike primitive types, object identifiers contain the object's address, not its value »returning an object gives back the address, so the called method has direct access to the calling object »the calling object is "unprotected" (usually undesirable) »best solution: cloning, but that is beyond the scope of this book One solution: stick to returning primitive types ( int, char, double, boolean, etc.) or String

53 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 53 public class CadetClass { private PetRecord pet; public CadetClass() { pet = new PetRecord("Faithful Guard Dog", 5, 75); } public void writeOutput() { System.out.println("Here's the pet:"); pet.writeOutput(); } public PetRecord getPet() { return pet; } Display 5.22 Insecure class Display 5.22 Insecure class

54 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 54 public class Hacker { public static void main(String[] args) { CadetClass starFleetOfficer = new CadetClass(); System.out.println("starFleetOfficer contains:"); starFleetOfficer.writeOutput(); PetRecord badGuy; badGuy = starFleetOfficer.getPet(); badGuy.set("Dominion Spy", 1200, 500); System.out.println("Looks like a security breach:"); System.out.println("starFleetOfficer now contains:"); starFleetOfficer.writeOutput(); System.out.println("The pet wasn't so private!"); } Display 5.23 Changing private data Display 5.23 Changing private data

55 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 55 Execution Result of Hacker.java

56 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 56 Packages l A way of grouping and naming a collection of related classes »they serve as a library of classes »they do not have to be in the same directory as your program The first line of each class in the package must be the keyword package followed by the name of the package: package mystuff.utilities; To use classes from a package in a program put an import statement at the start of the file: import mystuff.utilities.*; »note the ".* " notation

57 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 57 Package Naming Conventions l Use lowercase l The name is the file pathname with subdirectory separators ("\" or "/", depending on your system) replaced by dots l For example, if the package is in a file named "utilities" in directory "mystuff", the package name is: mystuff.utilities

58 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 58 Package Naming Conventions Pathnames are usually relative and use the CLASSPATH environment variable For example, if: CLASSPATH=c:jdk\lib\mystuff, and your file utilities is in c:jdk\lib\mystuff, then you would use the name: utilities »the system would look in directory c:jdk\lib\mystuff and find the utilities package

59 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 59 Summary Part 1 l A method definition can use a call to another method of the same class l static methods can be invoked using the class name or an object name l Top-down design method simplifies program development by breaking a task into smaller pieces l Test every method in a program in which it is the only untested method

60 Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 60 Summary Part 2 l Each primitive type has a corresponding wrapper class l Overloading: a method has more than one definition in the same class (but the number of arguments or the sequence of their data types is different) »one form of polymorphism Constructor: a method called when an object is created (using new ) »default constructor: a constructor with no parameters


Download ppt "Chapter 5Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Chapter 5 l Programming with Methods l Static Methods and Static Variables."

Similar presentations


Ads by Google