24
CSC 1051 M.A. Papalaskari, Villanova University Everyday objects: Strings and Wrappers CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website: http://www.csc.villanova.edu/~map/1051/ f13

Everyday objects: Strings and Wrappers

  • Upload
    lali

  • View
    48

  • Download
    0

Embed Size (px)

DESCRIPTION

Everyday objects: Strings and Wrappers. CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website: http://www.csc.villanova.edu/~map/1051/f13 - PowerPoint PPT Presentation

Citation preview

Page 1: Everyday objects: Strings and Wrappers

CSC 1051 M.A. Papalaskari, Villanova University

Everyday objects: Strings and Wrappers

CSC 1051 – Data Structures and Algorithms IDr. Mary-Angela PapalaskariDepartment of Computing SciencesVillanova University

Course website:http://www.csc.villanova.edu/~map/1051/f13

Some slides in this presentation are adapted from the slides accompanying Java Software Solutions by Lewis & Loftus

Page 2: Everyday objects: Strings and Wrappers

Overview• Review what we know about objects:

– classes– methods– object creation

• String class– useful methods and examples

• Wrapper classes

CSC 1051 M.A. Papalaskari, Villanova University

Page 3: Everyday objects: Strings and Wrappers

Some everyday Objects…

• Strings - defined by the String class:

"This is a string literal.""123 Main Street""X”

• System.out is also an object - it represents a destination (the monitor screen) to which we can send output

CSC 1051 M.A. Papalaskari, Villanova University

Page 4: Everyday objects: Strings and Wrappers

Methods• Objects can have methods associated with them• In Lincoln.java we invoked the println

method

System.out.println ("Whatever you are, be a good one.");

object methodname information provided to the method

(parameters)

CSC 1051 M.A. Papalaskari, Villanova University

Page 5: Everyday objects: Strings and Wrappers

Invoking Methods• We use the dot operator to invoke an object’s methods

CSC 1051 M.A. Papalaskari, Villanova University

int numOfCharsInName = name.length();

length() is one of the methods of String objects (defined in String class)

String name = scan.nextLine();nextLine() is one of the methods of Scanner objects (defined in Scanner class)

B yste

0 1 2 3 4

Page 6: Everyday objects: Strings and Wrappers

More String Methods

int numOfCharsInName = name.length();char initial = name.charAt(0);

B yste

0 1 2 3 4

String newName = name.replace('s', 't');

String capsName = name.toUpperCase();

String nickName = name.substring(1, 4);

0 1 2 3 4

name

newName

0 1 2 3 4

capsName

0 1 2 3 4

nickNameSee also textbook example StringMutation.java

Page 7: Everyday objects: Strings and Wrappers

Palindrome tester• Input a string, determine whether it is a palindrome,

i.e.:– first char is the same as last char– 2nd char is the same as 2nd last char– and so on…

• How to express this as an algorithm?• How to implement it?

CSC 1051 M.A. Papalaskari, Villanova University

R RADA

0 1 2 3 4str

Page 8: Everyday objects: Strings and Wrappers

CSC 1051 M.A. Papalaskari, Villanova University

System.out.println ("Enter a potential palindrome:");str = scan.nextLine();

left = 0;right = str.length() - 1;

while (str.charAt(left) == str.charAt(right) && left < right){ left++; right--;}

if (left < right) System.out.println ("NOT a palindrome");else System.out.println ("palindrome");

PalindromeTester.java (Example from Chapter 5)

Page 9: Everyday objects: Strings and Wrappers

CSC 1051 M.A. Papalaskari, Villanova University

System.out.println ("Enter a potential palindrome:");str = scan.nextLine();

left = 0;right = str.length() - 1;

while (str.charAt(left) == str.charAt(right) && left < right){ left++; right--;}

if (left < right) System.out.println ("NOT a palindrome");else System.out.println ("palindrome");

PalindromeTester.java (Example from Chapter 5)

Sample RunEnter a potential palindrome:radarpalindrome

Test another palindrome (y/n)? yEnter a potential palindrome:able was I ere I saw elbapalindrome.

Test another palindrome (y/n)? yEnter a potential palindrome:abracadabraNOT a palindrome.

Test another palindrome (y/n)? n

Page 10: Everyday objects: Strings and Wrappers

Declaring Variables, revisited• Examples of variable declarations:

int count = 0;

double mpg;

String title;

Graphics page;

Color aquamarine;

Scanner scan;

• A class name can be used as a type to declare an object reference variable

• The object itself must be created separatelyCSC 1051 M.A. Papalaskari, Villanova University

Page 11: Everyday objects: Strings and Wrappers

Creating Objects • We have already seen something like this:

Scanner scan = new Scanner (System.in);

The new operator calls the Scanner constructor, which isa special method that sets up the object

CSC 1051 M.A. Papalaskari, Villanova University

Variable refers to a Scanner object Constructing a new object is called instantiation

an instance of the Scanner class

Page 12: Everyday objects: Strings and Wrappers

Creating Objects • Another example:

The new operator calls the String constructor, which isa special method that sets up the object

CSC 1051 M.A. Papalaskari, Villanova University

Variable refers to a String object Constructing a new object is called instantiation

an instance of the String class

String title = new String ("Java Software Solutions");

Page 13: Everyday objects: Strings and Wrappers

The String Class is SPECIAL!• Exception to the use of new operator: Because

strings are so common, we don't have to use the new operator to create a String object

• This is special syntax that works only for strings

CSC 1051 M.A. Papalaskari, Villanova University

String title = new String ("Java Software Solutions");

String title = "Java Software Solutions";

Page 14: Everyday objects: Strings and Wrappers

Wrapper Classes• The java.lang package contains wrapper

classes that correspond to each primitive type:

Primitive Type Wrapper Classbyte Byteshort Shortint Integerlong Longfloat Floatdouble Doublechar Character

boolean Boolean

Page 15: Everyday objects: Strings and Wrappers

Wrapper Classes• The following declaration creates an Integer

object which represents the integer 40 as an object

CSC 1051 M.A. Papalaskari, Villanova University

Integer age = new Integer(25);

age

Page 16: Everyday objects: Strings and Wrappers

Wrapper Class methods and constants• Integer.parseInt(): convert String to int• Double.parseDouble(): convert String to double

• Integer.MIN_VALUE: smallest int value• Integer. MAX_VALUE: largest int valueExamples:

CSC 1051 M.A. Papalaskari, Villanova University

String str = scan.nextLine();

int num = Integer.parseInt(str);

int currentMin = Integer.MAX_VALUE;

Page 17: Everyday objects: Strings and Wrappers

Autoboxing• Autoboxing is the automatic conversion of a

primitive value to a corresponding wrapper object:

Integer obj;int num = 42;obj = num;

• The assignment creates the appropriate Integer object

• The reverse conversion (called unboxing) also occurs automatically as needed

CSC 1051 M.A. Papalaskari, Villanova University

Page 18: Everyday objects: Strings and Wrappers

Quick Check

CSC 1051 M.A. Papalaskari, Villanova University

Are the following assignments valid?

Double value = 15.75;

Character ch = new Character('T');char myChar = ch;

Page 19: Everyday objects: Strings and Wrappers

References• Note that a primitive variable contains the value

itself, but an object variable contains the address of the object

• An object reference can be thought of as a pointer to the location of the object

• Rather than dealing with arbitrary addresses, we often depict a reference graphically

"Steve Jobs"name1

num1 38

CSC 1051 M.A. Papalaskari, Villanova University

Page 20: Everyday objects: Strings and Wrappers

Assignment Revisited• The act of assignment takes a copy of a value and

stores it in a variable

• For primitive types:

num1 38

num2 96Before:

num2 = num1;num1 38

num2 38After:

CSC 1051 M.A. Papalaskari, Villanova University

int num1 = 38;int num2 = 96;

Page 21: Everyday objects: Strings and Wrappers

Reference Assignment• For objects, the same is true, but what is copied is

the reference to the object (i.e., its address):

• For objects:

num1

num2After:

38

CSC 1051 M.A. Papalaskari, Villanova University

num1

num2Before:

38

96

num2 = num1;

Integer num1 = 38;Integet num2 = 96;

Page 22: Everyday objects: Strings and Wrappers

Another example• For object references, assignment copies the

address:

name2 = name1;

name1

name2Before:

"Steve Jobs"

"Steve Wozniak"

name1

name2After:

"Steve Jobs"

CSC 1051 M.A. Papalaskari, Villanova University

Page 23: Everyday objects: Strings and Wrappers

Aliases• Two or more references that refer to the same

object are called aliases of each other

• That creates an interesting situation: one object can be accessed using multiple reference variables

• Aliases can be useful, but should be managed carefully

• Changing an object through one reference changes it for all of its aliases, because there is really only one object

CSC 1051 M.A. Papalaskari, Villanova University

Page 24: Everyday objects: Strings and Wrappers

Garbage Collection• When an object no longer has any valid references

to it, it can no longer be accessed by the program

• The object is useless, and therefore is called garbage

• Java performs automatic garbage collection periodically, returning an object's memory to the system for future use

• In other languages, the programmer is responsible for performing garbage collection

CSC 1051 M.A. Papalaskari, Villanova University