lecture 2: classes and objects, using scanner and string

14
Lecture 2: Classes and Objects, using Scanner and String

Upload: jaeger

Post on 23-Feb-2016

28 views

Category:

Documents


0 download

DESCRIPTION

Lecture 2: Classes and Objects, using Scanner and String. Recap . Two categories of data types: primitives and classes Examples of primitives? int (whole numbers) double (numbers with decimal points) boolean (true and false) Examples of classes? - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lecture 2: Classes and Objects, using Scanner and String

Lecture 2:Classes and Objects, using Scanner and String

Page 2: Lecture 2: Classes and Objects, using Scanner and String

Recap

• Two categories of data types: primitives and classes • Examples of primitives? – int (whole numbers) – double (numbers with decimal points) – boolean (true and false)

• Examples of classes? – Math(uses static methods to calculate)

• VERY DIFFERENT FROM – String (a sequence of characters, i.e. text) – Scanner (used to get input from the user or a file)

Page 3: Lecture 2: Classes and Objects, using Scanner and String

"Instantiable" Classes

• With Math we use the class itself to access the static methods like Math.random() or Math.sqrt()

• An instantiable class (String, Scanner) is like a template or pattern from which any number of objects can be created– Allows storing more complex data than primitives– Uses object-oriented patterns to create and modify

Page 4: Lecture 2: Classes and Objects, using Scanner and String

More "Instantiable" Classes

• Objects of Instantiable Classes are more complex than primitives – Primitive values are just pieces of data (numbers,

characters, or true/false) • For example, 2.3 is a value of type double

– Instances of classes, on the other hand, contain both data and ways of acting on that data • For example, a String object holds a series of letters (like "the

answer is ") but also comes with a way to UPPERCASE the letters or extract parts of the String into other Strings

• Google String javadoc to get the doc• Let's see write an example that shows Strings in action

Page 5: Lecture 2: Classes and Objects, using Scanner and String

Demo time, Create project StringDemo

String message = new String ("to err is human, ");String reply = new String("but not for computers!");

System.out.println( message );System.out.println( message.toUpperCase() );

System.out.println( message + reply );System.out.println( message + reply.replace('o','x');

double result = 53.4;

System.out.println("the answer is " + result);

Page 6: Lecture 2: Classes and Objects, using Scanner and String

Some Class related Terminology

• An instance of a class is called an object – in the example: message, reply are objects of String

• To make a new object, use the new operator • The actions you can invoke on an object are called its

methods – in the example: toUpper(), replace() are String methods

• To use a method, we use dot notation as in the example • To find out the details of how to use a particular class,

we use the javadoc documentation

Page 7: Lecture 2: Classes and Objects, using Scanner and String

Reading input from console

• An example of a very useful class (Scanner) How do we get input from the user in Java? – Answer: The Scanner class is one way. – Scanner is described in Section 11.1.5 of text

– or check Scanner javadoc

Page 8: Lecture 2: Classes and Objects, using Scanner and String

Example //Since Scanner is in package java.util,

//import statement.import java.util.*;

/** This program takes an int from the user and prints * out one bigger.*/public class ScannerExample { public static void main(String[] args) { Scanner input = new Scanner(System.in); int i = input.nextInt(); i = i + 1; System.out.println(i); }}

Page 9: Lecture 2: Classes and Objects, using Scanner and String

Packages

• There are so many different classes that they are organized into different packages – To use a class from some package, you use an import

statement on the top of your source file • Classes in this code fragment have been

underlined – We don't need to import System and String because

they are in package java.lang, which consists of classes so commonly used that it is always imported automatically

Page 10: Lecture 2: Classes and Objects, using Scanner and String

Libraries

• In most programming languages, it takes a lot of work just to do some very basic commonly used tasks

• Solution: Just write it once, and make it standard and available to everyone

• This bunch of pre-written code is called a library • The Java libraries are enormous! and still

growing...

Page 11: Lecture 2: Classes and Objects, using Scanner and String

Compile-time errors, logic errors, run-time errors

• Human error occurs constantly when programming; we distinguish three main types in this course: – Compile-time errors (includes syntax errors) • This means your source code isn't ``grammatically

correct'' • These errors are always caught by the compiler • Often due to typos, or not understanding valid syntax • Sytem.out.println("Hello world!"); • Usually easiest to correct

Page 12: Lecture 2: Classes and Objects, using Scanner and String

–Run-time error • Caught by the JVM, but only when that

bad something actually happens (like dividing by zero)• Often not too hard to correct once it

happens

public class HelloWorld3 { public static void main(String[] args) { int i = 0; i = i / i; //This causes a run time error (division by zero) System.out.println(i); }}

Page 13: Lecture 2: Classes and Objects, using Scanner and String

– Logic error (aka semantic error) • The ``everything else'' category • It runs fine, but not the way you want it to • Usually causes your program to behave in a strange,

unexpected way (see example and the fix) • Usually due to an error in your logic when writing the

program • Using a debugger can be helpful to figure it out • System.out.println("Hello word!"); • Usually the hardest to correct

Page 14: Lecture 2: Classes and Objects, using Scanner and String

Lab 3• Create Lab3 project in BlueJ• We experiment with a home made Calculator– using Scanner to read input numbers– using if to do the right calculation– using String to print result with a mesage

• Turn in procedure. When finished...– Create Lab3.jar– Click "Homework Uploader" link– Enter passcode, estimated score, browse to Lab3.jar– then click upload