Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Chapter 4 - Classes in Java

950 views

Published on

Chapter 4 - Classes in Java

Published in: Technology
  • Be the first to comment

Chapter 4 - Classes in Java

  1. 1. 1 Classes • class: reserved word; collection of a fixed number of components • Components: members of a class • Members accessed by name • Class categories/modifiers – private – protected – public
  2. 2. 2 Classes (continued) • private: members of class are not accessible outside class • public: members of class are accessible outside class • Class members: can be methods or variables • Variable members declared like any other variables
  3. 3. 3 Syntax The general syntax for defining a class is:
  4. 4. 4 Syntax (continued) • If a member of a class is a named constant, you declare it just like any other named constant • If a member of a class is a variable, you declare it just like any other variable • If a member of a class is a method, you define it just like any other method
  5. 5. 5 Syntax (continued) • If a member of a class is a method, it can (directly) access any member of the class—data members and methods - Therefore, when you write the definition of a method (of the class), you can directly access any data member of the class (without passing it as a parameter)
  6. 6. 6 6 Syntax: Value-Returning Method
  7. 7. 7 7 User-Defined Methods • Value-returning methods – Used in expressions – Calculate and return a value – Can save value for later calculation or print value • modifiers: public, private, protected, static, abstract, final • returnType: type of the value that the method calculates and returns (using return statement) • methodName: Java identifier; name of method
  8. 8. 8 8 Syntax • Syntax: Formal Parameter List -The syntax of the formal parameter list is: • Method Call -The syntax to call a value-returning method is:
  9. 9. 9 9 Syntax (continued) • Syntax: return Statement -The return statement has the following syntax: return expr; • Syntax: Actual Parameter List -The syntax of the actual parameter list is:
  10. 10. 10 10 Equivalent Method Definitions public static double larger(double x, double y) { double max; if (x >= y) max = x; else max = y; return max; }
  11. 11. 11 11 Equivalent Method Definitions (continued) public static double larger(double x, double y) { if (x >= y) return x; else return y; }
  12. 12. 12 12 Equivalent Method Definitions (continued) public static double larger(double x, double y) { if (x >= y) return x; return y; }
  13. 13. 13 13 Programming Example: Palindrome Number • Palindrome: integer or string that reads the same forwards and backwards • Input: integer or string • Output: Boolean message indicating whether integer string is a palindrome
  14. 14. 14 14 Solution: isPalindrome Method public static boolean isPalindrome(String str) { int len = str.length(); int i, j; j = len - 1; for (i = 0; i <= (len - 1) / 2; i++) { if (str.charAt(i) != str.charAt(j)) return false; j--; } return true; }
  15. 15. 15 15 Sample Runs: Palindrome Number
  16. 16. 16 16 Sample Runs: Palindrome Number (continued)
  17. 17. 17 17 Flow of Execution • Execution always begins with the first statement in the method main • User-defined methods execute only when called • Call to method transfers control from caller to called method • In method call statement, specify only actual parameters, not data type or method type • Control goes back to caller when method exits
  18. 18. 18 18 Programming Example: Largest Number • Input: set of 10 numbers • Output: largest of 10 numbers • Solution – Get numbers one at a time – Method largest number: returns the larger of 2 numbers – For loop: calls method largest number on each number received and compares to current largest number
  19. 19. 19 19 Solution: Largest Number static Scanner console = new Scanner(System.in); public static void main(String[] args) { double num; double max; int count; System.out.println("Enter 10 numbers."); num = console.nextDouble(); max = num; for (count = 1; count < 10; count++) { num = console.nextDouble(); max = larger(max, num); } System.out.println("The largest number is " + max); }
  20. 20. 20 20 Sample Run: Largest Number • Sample Run: Enter 10 numbers: 10.5 56.34 73.3 42 22 67 88.55 26 62 11 The largest number is 88.55
  21. 21. 21 21 Void Methods • Similar in structure to value-returning methods • Call to method is always stand-alone statement • Can use return statement to exit method early
  22. 22. 22 22 Void Methods: Syntax • Method Definition -The general form (syntax) of a void method without parameters is as follows: modifier(s) void methodName() { statements } • Method Call (Within the Class) -The method call has the following syntax: methodName();
  23. 23. 23 23 Void Methods with Parameters: Syntax
  24. 24. 24 24 Void Methods with Parameters: Syntax (continued)
  25. 25. 25 25 Primitive Data Type Variables as Parameters • A formal parameter receives a copy of its corresponding actual parameter • If a formal parameter is a variable of a primitive data type: – Value of actual parameter is directly stored – Cannot pass information outside the method – Provides only a one-way link between actual parameters and formal parameters
  26. 26. 26 26 Reference Variables as Parameters • If a formal parameter is a reference variable: – Copies value of corresponding actual parameter – Value of actual parameter is address of the object where actual data is stored – Both formal and actual parameter refer to same object
  27. 27. 27 27 Uses of Reference Variables as Parameters • Can return more than one value from a method • Can change the value of the actual object • When passing address, would save memory space and time, relative to copying large amount of data
  28. 28. 28 28 Reference Variables as Parameters: type String
  29. 29. 29 29 Example 7-11 public class Example7_11 { public static void main(String[] args) { int num1; //Line 1 IntClass num2 = new IntClass(); //Line 2 char ch; //Line 3 StringBuffer str; //Line 4 num1 = 10; //Line 5 num2.setNum(15); //Line 6 ch = 'A'; //Line 7 str = new StringBuffer("Sunny"); //Line 8 System.out.println("Line 9: Inside main: " + "num1 = " + num1 + ", num2 = " + num2.getNum() + ", ch = " + ch + ", and str = " + str); //Line 9 Reference Variables as Parameters: type String (continued)
  30. 30. 30 30 funcOne(num1, num2, ch, str); //Line 10 System.out.println("Line 11: After funcOne: " + "num1 = " + num1 + ", num2 = " + num2.getNum() + ", ch = " + ch + ", and str = " + str); //Line 11 } Reference Variables as Parameters: type String (continued)
  31. 31. 31 31 public static void funcOne(int a, IntClass b, char v, StringBuffer pStr) { int num; //Line 12 int len; //Line 13 num = b.getNum(); //Line 14 a++; //Line 15 b.addToNum(12); //Line 16 v = 'B'; //Line 17 len = pStr.length(); //Line 18 pStr.delete(0, len); //Line 19 pStr.append("Warm"); //Line 20 System.out.println("Line 21: Inside funcOne: n" + " a = " + a + ", b = " + b.getNum() + ", v = " + v + ", pStr = " + pStr + ", len = " + len + ", and num = " + num); //Line 21 } } Reference Variables as Parameters: type String (continued)
  32. 32. 32 32 Reference Variables as Parameters: type String (continued)
  33. 33. 33 33 num1 = 10; //Line 5 num2.setNum(15); //Line 6 ch = 'A'; //Line 7 str = new StringBuffer("Sunny"); //Line 8 Reference Variables as Parameters: type String (continued)
  34. 34. 34 34 System.out.println("Line 9: Inside main: " + "num1 = " + num1 + ", num2 = " + num2.getNum() + ", ch = " + ch + ", and str = " + str); //Line 9 Reference Variables as Parameters: type String (continued)
  35. 35. 35 35 int num; //Line 12 int len; //Line 13 num = b.getNum(); //Line 14 Reference Variables as Parameters: type String (continued)
  36. 36. 36 36 num = b.getNum(); //Line 14 Reference Variables as Parameters: type String (continued)
  37. 37. 37 37 a++; //Line 15 Reference Variables as Parameters: type String (continued)
  38. 38. 38 38 b.addToNum(12); //Line 16 Reference Variables as Parameters: type String (continued)
  39. 39. 39 39 v = 'B'; //Line 17 Reference Variables as Parameters: type String (continued)
  40. 40. 40 40 len = pStr.length(); //Line 18 Reference Variables as Parameters: type String (continued)
  41. 41. 41 41 pStr.delete(0, len); //Line 19 Reference Variables as Parameters: type String (continued)
  42. 42. 42 42 pStr.append("Warm"); //Line 20 Reference Variables as Parameters: type String (continued)
  43. 43. 43 43Java Programming: From Problem Analysis to Program Design, 3e System.out.println("Line 21: Inside funcOne: n" + " a = " + a + ", b = " + b.getNum() + ", v = " + v + ", pStr = " + pStr + ", len = " + len + ", and num = " + num); //Line 21 Reference Variables as Parameters: type String (continued)
  44. 44. 44 44Java Programming: From Problem Analysis to Program Design, 3e Reference Variables as Parameters: type String (continued)
  45. 45. 45 45 System.out.println("Line 11: After funcOne: " + "num1 = " + num1 + ", num2 = " + num2.getNum() + ", ch = " + ch + ", and str = " + str); //Line 11 Reference Variables as Parameters: type String (continued)
  46. 46. 46 Accessing Objects • Referencing the object’s data: objectRefVar.data e.g., myCircle.radius • Invoking the object’s method: objectRefVar.methodName(arguments) e.g., myCircle.getArea()

×