Presentation is loading. Please wait.

Presentation is loading. Please wait.

Objects and Classes Plan for Today - we will learn about: the difference between objects and primitive values how to create (or construct) objects some.

Similar presentations


Presentation on theme: "Objects and Classes Plan for Today - we will learn about: the difference between objects and primitive values how to create (or construct) objects some."— Presentation transcript:

1 Objects and Classes Plan for Today - we will learn about: the difference between objects and primitive values how to create (or construct) objects some specific types of objects:  Strings  Scanner objects  Random objects

2 Using and Creating Objects We already know about:  variables - store data  methods - carry out operations and represent behavior  types - categories of data (double, int, char, etc) Object: an entity in programs that ties together data and operations. An object contains:  Variables that store its data  Methods that carry out its actions Example: a RockStar class Data/Variables: tourSchedule, bandName, monthlyEarnings, musicStyle Methods/actions: tour(), perform(), record()

3 Objects Manipulate an object by calling methods on it:  System.out is an object - manipulate it by calling method print() or println():  System.out.println(“Hello World”);  The identifier out is an object stored in the System class, and println() is a method we can call on the object out. Create an object by using the new operator and a special method called a constructor. Scanner scan; // set aside memory to hold address of Scanner object scan = new Scanner(System.in); // new operator + invoking constructor

4 Variables in Java In Java, a variable name represents either:  a primitive value, or  an object Reference variables, which represent objects, hold a reference (an address in memory) to objects (or the value null to indicate that no object is referenced). Unlike variables of a primitive type, references do not hold values directly. They hold pointers (ie, memory addresses). RockStar lennon = new RockStar(“John Lennon”); 1024 lennon bandName tourSchedule... 1024

5 Declaring Reference Variables Declaration of object variables looks similar to declarations of primitive variables: double num; // creates variable that holds a real number String myName; // creates a String variable that will hold the address in memory of a String. To initialize these variables:  num = 15;  myName = new String(“Mary”); 15 num myName 2048 memory address 2048 “Mary”

6 Creating a New Object To create a new object, declare a variable of the reference type to store the object’s location, and construct the new object by using the new operator and invoking the constructor. Assign the new object’s address to the reference variable: = new ( ); Examples: Point origin = new Point(0, 0); String teacher = new String(“Sensei”); Scanner reader = new Scanner(System.in);

7 Shortcut: For Creating String Objects Strings are used very frequently, so we have this shortcut for creating a new String object without using the new operator and constructor: String author = “Reges and Stepp”; This is for Strings only, and is equivalent to: String author = new String(“Reges and Stepp”);

8 Reassigning Value of a Reference Variable Since an object variable holds an address, assigning the value of one object variable to another is different from the same sort of assignment with primitive type variables. Example: What happens? int num1 = 33; int num2 = 45; num2 = num1; Note: num1 and num2 still refer to different locations in memory. Example: What happens? (Hint: 2 references to same object) String name1 = “Anakin”; String name2 = “R2D2”; name2 = name1;

9 Strings A String object represents a sequence of characters  String literals are enclosed in double quotes String creation:  String = “ ”;  String = new String(“ ”); Calling methods on a String: String myName = “Al Gore”; int len = myName.length(); // len is 7 int anotherLength = “Charlie Boy”.length(); // anotherLength is 11 To call a method on an object: . ( );  Methods that are part of an object are not static methods.

10 String Indexing The characters in a String each have an index or position, starting with index 0 for the first character. String greet = “so long”; greet Each character in a String is of type char. To get the character at a specified position in a String, use the method charAt(): char firstChar = greet.charAt(0); // firstChar is ‘s’ char secondChar = greet.charAt(1); // secondChar is ‘o’ ‘s’‘o’‘ ‘l’‘o’‘n’‘g’ 0123456

11 String Methods Some useful String methods: Method NameDescription charAt(index)returns character at specific index substring(index1, index2)returns substring, indices index1 through index2-1 substring(index)returns substring that starts at position index length()returns number of characters in the string toLowerCase()returns a new string with all lowercase letters toUpperCase() indexOf(s)returns index of first occurrence of s or -1 if s doesn’t occur lastIndexOf(s)returns index of last occurrence of s or -1 if s doesn’t occur replace(c1, c2)returns new string with all occurrences of c1 replaced by c2 indexOf(s, startPos)returns index of 1st occurrence of s starting from startPos

12 Calling String Methods: Some Examples Substrings  String artist = “Pink Floyd”;  String first = artist.substring(0, 4); // first refers to “Pink”  String last = artist.substring(5); // last refers to “Floyd” String Length  String hey = “hello!!”;  int len = hey.length(); // len is 7 Grab a character char first = hey.charAt(0); // first is ‘h’ char last = hey.charAt(6); // last is ‘!’

13 String Conversion Convert to uppercase or lowercase  String greeting = “Hello World!”;  String lowGreet = greeting.toLowerCase(); // “hello world!”  String upGreet = greeting.toUpperCase(); // “HELLO WORLD!” Remove leading and trailing whitespace  String big = new String(“ hello “);  String little = big.trim(); // “hello” Replace one character with another  String hey = “hello there”;  String hey2 = hey.replace(‘e’, ‘u’); // ”hullo thuru”

14 More String Method Calls Finding Substrings  String myString = “hello world hello!”;  int find = myString.indexOf(“hello”); // find is 0  int find2 = myString.lastIndexOf(“hello”); // find2 is 12  int find3 = myString.indexOf(“hello”, 2); // find3 is 12 Converting Numeric Values to Strings The valueOf() method is static - we call is by prefixing the method name with the class name, String. double x = 16.533; String xStr = String.valueOf(x); // xStr refers to “16.533”

15 Scanner: Reading User Input Create a Scanner object to read console input:  Scanner console = new Scanner(System.in); To use Scanner, you must include this import statement at the beginning of your program: import java.util.*; Think of the object System.in as a data source, associated with the keyboard.

16 Tokens The user’s input is a sequence of tokens, separated by whitespace (blank spaces, tabs, new lines). Example: If the user types: hello2.7118 22.1  There are 6 tokens. The Scanner object positions its cursor at the beginning of the user input. Each time a token is read, the cursor advances to the next token. Tokens are read by calling Scanner methods (next(), nextLine(), nextInt(), nextDouble()).  String x = console.next(); // “hello”  double y = console.nextDouble(); // 2.7  int z = console.nextInt(); // 11  double t = console.nextDouble(); // 8.0 (could have used nextInt()  String r = console.next(); // “22.1” (could have used nextDouble())

17 Scanner Example Write Java code that reads 5 integers from the user and prints their sum. Scanner reader = new Scanner(System.in); System.out.print(“Please enter 5 integers: “); // prompt the user // cumulative sum variable must be created and initialized to // 0 outside the loop int sum = 0; // as we read each number, we’ll add it to sum for(int i = 1; i <= 5; i++) { int num = reader.nextInt(); sum += num; } System.out.println(“Sum is “ + sum);

18 Scanner Exercises Write a program that asks the user how many integers they want to enter, and then computes and prints the average of the entered numbers. Write a program that reads a line of text from the user, and prints: a)the line converted to uppercase b) the string with all e’s replaced with a’s c)the part of the string from index 3 on d)the length of the string e)the original string with the string “ and all that jazz” added to the end

19 Random Objects Sometimes you want numbers that are, or are nearly, random. game program simulating roll of a die or shuffling a deck of cards Random - in package java.util - implements a random number generator Construct a Random object, and use these methods:  nextInt(): returns a random integer  nextInt(n): returns a random integer in the interval [0, n)  nextDouble(): returns a random floating-point number in the interval [0, 1) Example: Random generator = new Random(); int ran = generator.nextInt(6); // ran is a random # between 0 & 5 int randomDiceThrow = ran + 1; // random throw, 6 sided dice

20 Exercise Write a program that prints: a)a random integer b)a random integer from 0 to 9 c)a random integer from 1 to 10 d)a random floating-point number in the interval [0, 1)

21 Objects as Parameters Recall: When a method has a primitive type parameter, changes made to the parameter inside the method have no effect on variables in the calling method. public static void main(String[] args) { int x = 3; strange(x); // the value 3 is copied to strange() method’s parameter System.out.println(x); } public static void strange(int x) { x = 17; // parameter’s value set to 17 (variable x in main unchanged) }

22 Objects as Parameters A reference type variable stores the address of an object, not the object itself. So when an object is passed to a method, the address of the object is assigned to the method’s parameter. So the method can change the object. public static void main(String[] args) { Point q = new Point(0, 0); System.out.println(q.toString()); // print q’s coords strange(q); System.out.println(q.toString()); } public static void strange(Point p) { System.out.println(p.toString()); p.move(1, 2); // change to point (1, 2) } q p (0, 0)

23 Output java.awt.Point[x=0, y=0] java.awt.Point[x=1, y=2]


Download ppt "Objects and Classes Plan for Today - we will learn about: the difference between objects and primitive values how to create (or construct) objects some."

Similar presentations


Ads by Google