1 / 39

Classes, Types and Objects

Classes, Types and Objects. Data Structures Chapter 1 Prof. Vidya Manian Dept. of Electrical and Comptuer Engineering. Overview. Objects, classes expressions Control flow Arrays. Objects. Objects –store data and provide methods for accessing and modifying data

stasia
Download Presentation

Classes, Types and Objects

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Classes, Types and Objects Data Structures Chapter 1 Prof. VidyaManian Dept. of Electrical and Comptuer Engineering ECE, UPRM

  2. Overview • Objects, classes • expressions • Control flow • Arrays ECE, UPRM

  3. Objects • Objects –store data and provide methods for accessing and modifying data • An object is an instance (member) of a class • Class – specifies type of objects, operations that it performs • Data of objects are stored as instance variables (fields) (of types e.g. integers, floating point numbers, Booleans) ECE, UPRM

  4. Operations • Methods :constructors, procedures, and functions • Example: class declaration ECE, UPRM

  5. Counter class is public-other class can create and use a counter object • Instance variable –count • Constructor method initializes it to 0 • Accessor method, get Count • Update methods, incrementCount, decrementCount ECE, UPRM

  6. Class modifiers • Abstract-empty methods with abstract keyword • Final – cannot have subclasses • Public – can be instantiated by anything that imports the class • Base types (primitve types (boolean, char, byte, short, int, long, float, double) • Int x, x=14 or x=195 • Float, y=3.1415 ECE, UPRM

  7. Example of base types ECE, UPRM

  8. Comments: /** **/ or // • ‘new’ creates a new object and returns reference to that object ECE, UPRM

  9. new operator • A new object is dynamically allocated in memory, initialized to default values ‘null’ • Constructor is called • The new operator returns a reference (a memory address) to the newly created object ECE, UPRM

  10. Number classes • Byte n.byteValue() • Short n.shortValue() • Integer n.intValue() • Long n.longValue() • Float n.floatValue() • Double n.doubleValue() ECE, UPRM

  11. String objects • String is a sequence of characters that comes form some alphabet (set of possible characters) • P = “barney the bear” • Length 15 • Concatenation • String s = “kilo” + “meters” ECE, UPRM

  12. Object reference • Reference variable is a pointer to some object ECE, UPRM

  13. Dot operator • Can have many references to the same object • Dot operator”.”-access methods and instance variables associated with an object • Examples of signatures (methods name with parameters) • oven.cookDinner(); • oven.cookDinner(food); • oven.cookDinner(food,seasoning); • Note: Java doesn not allow 2 methods with the same signature to return different types ECE, UPRM

  14. Instance Variables • Instance variables must have a type (int, float, double) or a reference type : class such as String, an array • A referrence variable v, points to object o, we can access any of the instance variables fo o that the access rules allow • Public instance variables are accessible by everyone • Dot operator can get and set the value of any instance variable (v.i) ECE, UPRM

  15. gnome.name =“professor smith”; • gnome.age=35; • gnome –reference to a Gnome object, with public instance variables name and age • Variable modifiers • Public: anyone can access • Protected: only methods of the same package or of its subclasses can access protected instance variables • Private: only methods of the same class can access it ECE, UPRM

  16. Static: variables are used to store “global” information about a class • Final: a final instance variable is one that must be assigned an initial value, and can never be assigned a new value after that (MAX_HEIGHT) ECE, UPRM

  17. ECE, UPRM

  18. What are the base types ? • What is variable gnomeBuddy ? • What is variable name ? • Note: Constant values associated with a class should be declared to be both static and final ECE, UPRM

  19. Enum Types • Take on values from a specified set of names • Modifier enum name {value_name0, value_name1,….}; • Modifer – black, public, protected or private • Name – any legal Java identifier • public enum Day {MON,TUE,WERD,THU,FRI,SAT,SUN} ECE, UPRM

  20. Output: • Initially d is MON • Then it is WED • I say d and t are the same: true ECE, UPRM

  21. Methods • Similar to functions and procedures • Method has 2 parts: body and signature modifiers type name(type0 parameter0, …typen-1 parametern-1) { // method body… } • type is the return type of the method, name – name of the method • When a method of a class is called, it is invoked on a specific instance of the class and can change the state of the object ECE, UPRM

  22. Similar to instance variables, Method modifiers can be public, protected, private or abstract • Note: All parameters are passed by value, changing the internal reference inside a method will not change the reference that was passed in ECE, UPRM

  23. Constructors • A constructor is a special kind of method that is used to initialize newly created objects • Note: name of constructor, name, must be same as the name of the class it constructs • Return type not specified for constructor ECE, UPRM

  24. Constructor definition and invocation • Return statements are not allowed in a constructor body • A new instance of this class is created and its constructor is used to initialize its isntance variables • Must be called using new operator • Fish myFish = new Fish(y, “Wally”); • Classes that define Stand – alone Java program has the main method ECE, UPRM

  25. Java Aquarium //system looks for compiled version of Aquarium class and invokes the special main method in that class ECE, UPRM

  26. Statement blocks and local variables • Two ways of declaring local variables • type name; • type name = initial_value; ECE, UPRM

  27. Expressions • Expressions involve the use of literals, variables and operators • Variables and constants are used expressions to define new values/modify variables • Literal: is any “constant” value • Null object reference • Boolean: true and false • Integer: type int, (32-bit integer), long iteger: 176L or -52l (64-bit integer) • Floating point: default for floating point numbers is double, 3.14E2 or .19e10 ECE, UPRM

  28. Character, ‘a’, ‘?’ are character constants • Special characters • String literal: sequence of characters “have a nice day” ECE, UPRM

  29. Operators • Assignment operator : variable=expression • i = j = 25; • Arithmetic operators: +, -, *, /, % • Increment and decrement operators • int i=8; • int j=i++; • int k=++i; • int m=i--; • int n = 9+i++; ECE, UPRM

  30. Logical operators • < , <=, ==, !=, >=, > • Boolean: ! Not • && conditional and, || conditional or • Bitwise operators: ~ bitwise complement, & bitwise and, | bitwise or, ^ bitwise exclusive or, <<, >>, >>> • Operational assignment operators: variable op = expression • Variable = variable op expression ECE, UPRM

  31. Arrays ECE, UPRM

  32. ECE, UPRM

  33. Declaring arrays • Element_type[] array_name = {init_val_0, init_value_1,.., init_val_N-1} • int[] primes = {2,3,5,7,11} • element_type[] array_name; • new element_type[length] ECE, UPRM

  34. Arrays are objects ECE, UPRM

  35. Cloning an array ECE, UPRM

  36. // Example 1 // --------- // First declare //reference and then construct it. int[] ExampleArray1; ExampleArray1 = new int[24]; // Example 2 // --------- // This can be considered //the short form for declaring and construction. int[] ExampleArray2 = new int[24]; ECE, UPRM

  37. // Example 3 // --------- // Construct and assign //an array using a single command. String[] ExampleArray3 = { "Sun Solaris" , "HP-UX" , "Linux" , "MS Windows" , "Macintosh" }; int[] array = null; int[] arr = new int[] {1,2,3}; int[][] twoDimArray = { {1,2,3}, {4,5,6}, {7,8,9} }; int[][] myArray = new int[5][]; ECE, UPRM

  38. Testing 2D array class TestTwoDimArrays { // initialize # of rows static int [][] myArray = new int[3][]; public static void main(String[] args) { myArray[0] = new int[3]; // initialize # of cols myArray[1] = new int[4]; // in each row myArray[2] = new int[5]; for(int i=0; i<3; i++) // fill and print the array fillArray(i, i+3); System.out.println(); } // end main() private static void fillArray(int row, int col) { for( int i=0; i<col; i++) myArray[row][i] = i; for( int i=0; i<col; i++) System.out.print(myArray[row][i]); System.out.println(); } } ECE, UPRM

  39. Exercises in group • Suppose that we create an array A of GameEntry objects, with integer scores field, we cloe A and store the result in an array B. If we set A[4].score =550, what is the score value of GameEntry object referenced by B[4]? • Write a Java method that takes an array of int values and determines if all the numbers are different from each other. ECE, UPRM

More Related