Classes and Objects Part 1

Similar documents
COMP 202. Built in Libraries and objects. CONTENTS: Introduction to objects Introduction to some basic Java libraries string

We now start exploring some key elements of the Java programming language and ways of performing I/O

A variable is a name for a location in memory A variable must be declared

Using Classes and Objects. Chapter

COMP-202 Unit 8: Basics of Using Objects

CSCI 2010 Principles of Computer Science. Data and Expressions 08/09/2013 CSCI

Data and Expressions. Outline. Data and Expressions 12/18/2010. Let's explore some other fundamental programming concepts. Chapter 2 focuses on:

CSCI 2010 Principles of Computer Science. Basic Java Programming. 08/09/2013 CSCI Basic Java 1

Chapter. Let's explore some other fundamental programming concepts

Formatting Output & Enumerated Types & Wrapper Classes

Review Chapters 1 to 4. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

Learning objectives: Objects and Primitive Data. Introduction to Objects. A Predefined Object. The print versus the println Methods

Full file at

COMP-202 Unit 5: Basics of Using Objects

Packages & Random and Math Classes

Chapter 2: Data and Expressions

Programming with Java

Lecture Set 2: Starting Java

Chapter 2: Data and Expressions

Lecture Set 2: Starting Java

COMP 202 Java in one week

Chap. 3. Creating Objects The String class Java Class Library (Packages) Math.random() Reading for this Lecture: L&L,

Using Java Classes Fall 2018 Margaret Reid-Miller

Using Classes and Objects Chapters 3 Creating Objects Section 3.1 The String Class Section 3.2 The Scanner Class Section 2.6

COMP 202. Java in one week

More on variables and methods

Using Classes and Objects

Objectives of CS 230. Java portability. Why ADTs? 8/18/14

First Java Program - Output to the Screen

Chapter 2 ELEMENTARY PROGRAMMING

ECE 122. Engineering Problem Solving with Java

ECE 122 Engineering Problem Solving with Java

Java Foundations: Introduction to Program Design & Data Structures, 4e John Lewis, Peter DePasquale, Joseph Chase Test Bank: Chapter 2

Chapter 2 Elementary Programming

CONTENTS: Compilation Data and Expressions COMP 202. More on Chapter 2

Primitive Data Types: Intro

ECE 122. Engineering Problem Solving with Java

ECE 122. Engineering Problem Solving with Java

Lecture 6. Assignments. Java Scanner. User Input 1/29/18. Reading: 2.12, 2.13, 3.1, 3.2, 3.3, 3.4

Lecture 6. Assignments. Summary - Variables. Summary Program Parts 1/29/18. Reading: 3.1, 3.2, 3.3, 3.4

Chapter 3: Using Classes and Objects

2: Basics of Java Programming

Computational Expression

CS 211: Existing Classes in the Java Library

Computer Science 145 Midterm 1 Fall 2016

Introduction to Java (All the Basic Stuff)

Basic Computation. Chapter 2

Objects and Classes -- Introduction

AP Computer Science Unit 1. Writing Programs Using BlueJ

CMPT 125: Lecture 3 Data and Expressions

Objects and Classes 1: Encapsulation, Strings and Things CSC 121 Fall 2014 Howard Rosenthal

Constants. Why Use Constants? main Method Arguments. CS256 Computer Science I Kevin Sahr, PhD. Lecture 25: Miscellaneous

Important Java terminology

Using APIs. Chapter 3. Outline Fields Overall Layout. Java By Abstraction Chapter 3. Field Summary static double PI

ing execution. That way, new results can be computed each time the Class The Scanner

COSC 123 Computer Creativity. Introduction to Java. Dr. Ramon Lawrence University of British Columbia Okanagan

Basic Computation. Chapter 2

Table of Contents Date(s) Title/Topic Page #s. Abstraction

A Quick and Dirty Overview of Java and. Java Programming

What did we talk about last time? Examples switch statements

Data Conversion & Scanner Class

CIS 1068 Design and Abstraction Spring 2017 Midterm 1a

Introduction to Java Unit 1. Using BlueJ to Write Programs

Faculty of Science COMP-202A - Introduction to Computing I (Fall 2008) Final Examination

Getting started with Java

CSC 1051 Algorithms and Data Structures I. Midterm Examination October 7, Name:

Fundamentals of Programming Data Types & Methods

Chapter 2: Data and Expressions

Java Review. Java Program Structure // comments about the class public class MyProgram { Variables

Lecture Notes. System.out.println( Circle radius: + radius + area: + area); radius radius area area value

Assoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

H212 Introduction to Software Systems Honors

Faculty of Science COMP-202A - Foundations of Computing (Fall 2012) - All Sections Midterm Examination

Chapter 2. Elementary Programming

CS 106 Introduction to Computer Science I

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments.

CSC 1051 Algorithms and Data Structures I. Midterm Examination February 25, Name: KEY A

Reading Input from Text File

STUDENT LESSON A7 Simple I/O

CSE 1223: Introduction to Computer Programming in Java Chapter 2 Java Fundamentals

AP Computer Science Unit 1. Programs

Midterms Save the Dates!

Entry Point of Execution: the main Method. Elementary Programming. Learning Outcomes. Development Process

Strings. Strings and their methods. Dr. Siobhán Drohan. Produced by: Department of Computing and Mathematics

CS 302: Introduction to Programming

Section 2: Introduction to Java. Historical note

CMSC131. Introduction to your Introduction to Java. Why Java?

AP Computer Science Unit 1. Writing Programs Using BlueJ

Numerical Data. CS 180 Sunil Prabhakar Department of Computer Science Purdue University

4 WORKING WITH DATA TYPES AND OPERATIONS

Lesson 02 Data Types and Statements. MIT 12043, Fundamentals of Programming By: S. Sabraz Nawaz Senior Lecturer in MIT Department of MIT FMC, SEUSL

Object-Based Programming. Programming with Objects

Java Basic Introduction, Classes and Objects SEEM

Classes and Objects Miscellany: I/O, Statics, Wrappers & Packages. CMSC 202H (Honors Section) John Park

AP Computer Science A

Object Oriented Programming. Java-Lecture 1

Program Elements -- Introduction

STUDENT LESSON A10 The String Class

COMP 202 Java in one week

COMP102: Test. 26 April, 2006

Transcription:

COMP-202 Classes and Objects Part 1

Lecture Outline Object Identity, State, Behaviour Class Libraries Import Statement, Packages Object Interface and Implementation Object Life Cycle Creation, Destruction Methods and static Methods Example Classes String, Scanner, Random, NumberFormat 2

Object (1) An object represents an individual, identifiable item, unit, or entity, either real or conceptual, with a well-defined role in the problem domain or in a system. In a computer-based system, an object may stand for itself, e.g. a window or a menu item, or it may represent, be a surrogate of, a real-world object, like a person or a car. This distinction is not always clear-cut, see e.g. a bank account. When an object models a real-world entity, it is an abstraction of this entity. What is essential and what is accidental will depend on the application and system. A property is an inherent or distinctive characteristic, trait, quality, or feature of an object. 3

Object Examples The printer Neo, of type Phaser 4400N, made by Xerox, located in room McConnell 322... Mr. Rich, business man, 42 years old, living in Lausanne, Switzerland, married with Mrs. Dufour,... The bank account of Mr. Rich with the Swiss Union Bank... 4

Object (2) input message identity state output message output message Object = Identity + State + Behaviour 5

Object Identity Identity is the property that distinguishes an object from all others. It is always possible to distinguish two objects, even if they have the same state. The identity of an object cannot be changed. The name or a reference should not be confused with an objects identity. 6

Object State and Behavior The state of an object is its memory. Since an object has a state, it takes up some amount of space, be it in the physical world or in computer memory. The behavior is how an object acts on its own initiative and how it reacts to external stimuli, i.e. events or messages, in terms of its state changes and output messages. The behavior of an object usually depends on its history; this time-dependent behavior is due to the existence of state within the object. State and behavior are abstract concepts. 7

Describing State and Behaviour in Java In Java, an object is denoted by a reference (sometimes also called pointer) defines it s state by declaring fields defines behaviour, i.e. how it s state is modified when receiving messages, by implementing one or several methods 8

Class A class groups objects in such a way that the similarities can be promoted, the differences can be ignored Each object belongs to a class The class can be thought of as the type of an object Whereas an object is a concrete entity that exists in time and space, a class represents only the essence of an object A class can be seen as a blueprint which describes the general behavior of a set of similar objects A class is a template from which objects can be instantiated 9

Class Examples (1) Despite differences between individual objects, all are trees 10

Class Examples (2) The printer Neo, of type Phaser 4400N, made by Xerox, located in room McConnell 322 Mr. Rich, business man, 42 years old, living in Zug, Switzerland, married with Mrs. Dufour,... The bank account of Mr. Rich with the Swiss Union Bank... 11

Java Examples Class Examples String Scanner All objects of a class have the same methods String equals(), charat(int), compareto(),... Scanner nextint(), nextdouble(),... 12

About Libraries Programming languages come with many components: Editor: To help you write the program Compiler: To validate your syntax and convert you text file into an executable file Syntax & Semantics: Rules that define how you write sentences and spell words in that language Libraries: Pre-built classes and objects with methods that you can use in your program (this is nice since you do not need to write this code, someone else has done this for you). Libraries come with the compiler you buy or you can download them from the web (some free, some not). 13

Java Libraries A class library is a collection of classes that we can use when developing programs There is a Java standard class library that is part of any Java development environment The System class and the String class are part of the Java standard class library Other class libraries can be obtained through third party vendors, or you can create them yourself 14

Java Packages The classes of the Java standard class library are organized into packages Some of the packages in the standard class library are: Package Purpose java.lang General support (e.g. System, String,...) java.util java.net or rmi Utilities Network communication java.awt or swing Graphical user interface support Look at http://download.oracle.com/javase/6/docs/api/ 15

The import Declaration When you want to use a class from a package, you could use its fully qualified name in your code java.util.scanner s = new java.util.scanner(..); If you import the class, then you can just use the class name import java.util.scanner; Scanner s = new Scanner(..) To import all classes in a particular package, you can use the * wildcard character import java.util.*; 16

No import for java.lang All classes of the java.lang package are automatically imported into all programs That's why we didn't have to explicitly import the System or String classes in earlier programs 17

System.out System.out is a variable that points to an object that belongs to the class PrintStream System.out has been predefined and set up for us as part of the Java standard class library. println(..) is a method that has been implemented by someone else. We don t care what actions or statements are actually executed. We only need to know what it is supposed to do and what the input is. System.out.println( Message to be printed on one line. ); Object Variable Method Information passed to the method (Parameter) 18

The DOT Operator Java uses the period as a membership designation For example: System.out.println( My output ); The DOT Operator The DOT operator selects the out variable in the package System The DOT operator invokes the println(..) method of the object to which the variable out points to 19

Interface and Implementation (1) The interface of an object provides its outside view. It comprises all methods applicable to the object and may include fields as well. It emphasizes the abstraction while hiding its internal structure and the secrets of its internal working. Abstraction allows us to write complex software without having to know how parts of it actually work. 20

Interface and Implementation (2) Interface Possible Implementations 21

Interface Example Abstraction of PrintStream class PrintStream void print(string x) void println(string x) void flush().. We don't have to know the internals of the println() method in order to invoke it We only need to know what it does, what parameters it requires, but not the individual steps/actions needed to accomplish this 22

Object Life Cycle An object has a life cycle: It is created, It lives and evolves, It is destroyed. The object keeps its identity during its whole life cycle During its life cycle, the state of the object may change, the values of its attributes may change, the effects of its operations may change, but the operations themselves remain the same 23

Creating Objects (1) A variable: either holds a primitive type, or it holds a reference/pointer to an object A class name can be used like a type to declare a reference variable String name; Scanner scan; No objects have been created with these declarations A reference variable holds the memory address of an object The object itself must be created separately 24

Creating Objects (2) We use the new operator to create an object name = new String( Jörg Kienzle ); This calls the object s constructor, which is a special method that sets up / initializes the object scan = new Scanner(System.in); Creating an object is called instantiation, because an object is an instance of a particular class 25

Primitive Data vs. Objects: Declaration int num; This statement creates a variable that holds an integer value, i.e., allocates main memory cells to store an int which are accessed via the variable num String name; This statement creates an object variable, i.e. it allocates main memory cells which will contain the reference to an object (once the object is created) Initially, both variables don t contain any data num name 26

Primitive Data vs. Objects: Assignment num = 42; This statement writes 42 into the memory cells referred to by num name = new String( James Gosling ); This statement creates a string object (that uses some memory cells) The variable name is assigned the address of the (first) memory cell that contains the string object We say the object variable is a reference / pointer to the real object num 42 name James Gosling 27

Primitive Data: More on Assignment int num1 = 5; int num2 = 7; num2 = num1; num1 5 num2 75 28

Objects: More on Assignment String name1 = new String( Steve Jobs ); String name2 = new String( Bill Gates ); name2 = name1; name1 Steve Jobs name2 Bill Gates 29

Example Class: String Every character string is an object in Java hello, world, The behaviour of string objects is defined by the String class Every string literal, delimited by double quotation marks, represents a String object Since strings are so common, the Java programming language provides us with some form of syntactic sugar that allows us to use strings nearly in a way we use primitive data types 30

Strings vs. Characters Characters are a single letter or symbol: char x = a ; char y = % ; Strings are many characters concatenated: String s = Bob Smith ; char is a built-in type String is a library object 31

Escape Sequences (1) What if we wanted to print a double quote character? The following line would confuse the compiler because it would interpret the second quote as the end of the string System.out.println("Say "Hello" to me."); An escape sequence is a series of characters that represents a special character An escape sequence begins with a backslash character (\), which indicates that the character that follows should be treated in a special way System.out.println("Say \"Hello\" to me."); 32

Escape Sequences (2) Some Java escape sequences: Escape Sequence Meaning \b backspace \t tabulator \n newline \r carriage return \ double quote \ single quote \\ backslash 33

Poem.java public class Poem {! public static void main(string[] args) {!! System.out.println( Roses are red, );!! System.out.println( \t Violets are blue );!! System.out.println ( \t When I look at you\n\t I do not + know what to do );! } } 34

Methods of the String Class None of the methods changes the string on which the method is called! Result Method Meaning char charat(int index) int compareto(string) boolean equals(string) int length() String replace(char old, char new) String substring(int begin, int end) String tolowercase() String touppercase() Get the character at position index Are the two strings the same? Are the two strings the same? Count the number of characters Find oldchar and replace Cut out part of string Convert to lower case Convert to upper case 35

String Creation (Special Rule) Because strings are so common, we don't have to use the new operator to create a String object name = "Sparky the clown"; This is special syntax that only works for strings 36

The + Operator The function that the + operator performs depends on the type of the information on which it operates If both operands are strings, it performs string concatenation If one is a string and one is a number It converts the number into its string representation Then it concatenates both strings If one is a string and one is an arithmetic expression It evaluates the arithmetic expression and converts the results into a string representation Then it concatenates both strings If both operands are numeric, it adds them The + operator is evaluated left to right Parentheses can be used to force the operation order 37

Addition.java public class Addition {! public static void main(string[] args) {!! int x = 5, y = 2, sum = 0;!! String s = The Sum is ;!! sum = x + y;!! s = s + sum;!! System.out.println(s);!! System.out.println( The result is: + x + y);!! Sustem.out.println( The result is: + (x+y));! } } 38

Invoking / Calling Methods Once an object has been instantiated, we can use the dot operator to invoke / call its methods int numofchars; numofchars = name.length(); Many methods have return values length() returns an integer value The return value can be assign to a variable Many methods need input values, so-called parameters System.out.println( Hello World ); println() takes a parameter of type String 39

StringMutate.java public class StringMutate {! public static void main(string[] args) {!! String s = new String( This is a sentence );!! String s2 = s, s3 = Bob ;!! String temp;!! int answer;!! answer = s.compareto(s2);!! temp = s.substring(2,3);!! s3 = s3.replace( b, p );! } } What is in answer, temp, s3? 40

Example Class: Scanner (java.util) Scanner scan = new Scanner(System.in); scan is an object variable The constructor takes as input the source we want to read from So far we used System.in, which is usually linked to the keyboard After creation of the object, scan holds a reference to the object int number1 = scan.nextint(); double number2 = scan.nextdouble(); 41

Some Methods of the Scanner Class Scanner(InputStream source) Scanner(File source) Scanner(String source) double nextdouble() float nextfloat() int nextint() long nextlong() short nextshort() boolean nextboolean() String nextline() boolean hasnext() If we want to read from a file If we want to read from a string If we want to read an entire line Checks whether there is more in the input 42

Example Class: Random (java.util) Pseudo-random number generator Performs a series of complicated calculations, based on an initial seed value, and produces a number, which appears to be randomly selected Random() Random(long) Constructors float nextfloat() Returns a random number between 0.0 (incl.) and 1.0 (excl.) int nextint() Returns a random number that ranges over all possible int values int nextint(int num) Returns a random number in the range 0 to num-1 If initialized with the same seed number, the same sequence of values will be produced Uniform distribution, though double nextgaussian() is available too 43

Class Methods Some methods can be invoked through the class name, instead of through an object of the class Hence, we do not need to declare an object variable and create an object before calling these methods These methods are called class methods or static methods The Math class, for example, contains many static methods, providing various mathematical functions, such as absolute value, trigonometry functions, square root, power, PI temp = Math.cos(90) + Math.sqrt(delta); 44

Formatting Output The DecimalFormat class can be used to format a floating point value in generic ways For example, you can specify that the number be printed to three decimal places First you have to create an object of the class DecimalFormat The constructor takes a string that represents a pattern (e.g., indicating three decimal places) The DecimalFormat object has a method called format that takes as input a floating point number and returns a string with the specified information in the appropriate format 45

CircleFormatted.java double radius, circumference, area; Scanner scan = new Scanner(System.in); DecimalFormat f = new DecimalFormat( 0.### ); // read in the radius System.out.println( Enter radius:"); radius = scan.nextdouble(); // perform calculation circumference = 2 * Math.PI * radius; area = Math.pow(radius,2) * Math.PI; System.out.println("The circumference is: " + f.format(circumference)); System.out.println("The area is: " + f.format(area)); 46

More Formatting The NumberFormat class has static methods that return a formatter object NumberFormat getcurrencyinstance() NumberFormat getpercentinstance() The default format (language, country) is the one your computer is currently set to Each formatter object has a method called format(..) that returns a string with the specified information in the appropriate format 47

Purchase.java import java.util.scanner; import java.text.numberformat; public class Purchase { public static void main(string args[]) { double amount, total; Scanner in = new Scanner(System.in); NumberFormat f = NumberFormat.getCurrencyInstance(); } } amount = in.nextdouble(); total = ((amount + (amount * 0.06)) * 0.075) + amount; System.out.println( Please pay: + f.format(total)); 48

Wrapper Classes There are two categories of data in Java Primitive data and objects We use wrapper classes to manage primitive data as objects Each wrapper class represents a particular primitive type Integer everest = new Integer(8850); We have just «wrapped» the primitive integer value 8850 into an object referenced by the everest variable All wrapper classes are part of the java.lang package: Byte, Short, Integer, Long, Float, Double, Character, Boolean, Void 49

Some Methods of the Integer Class Integer (int value) byte bytevalue() double doublevalue() float floatvalue() int intvalue() long longvalue() static int parseint(string str) static String tobinarystring(int num) Example: String s = 500 ; int number = Integer.parseInt(s); 50