Download presentation
Presentation is loading. Please wait.
Published byJames Franklin Modified over 9 years ago
1
Lecture 2: Classes and Objects, using Scanner and String
2
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)
3
"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
4
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 docdoc Let's see write an example that shows Strings in action
5
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);
6
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 documentationjavadoc documentation
7
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 javadocScanner
8
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); } }
9
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 underlinedthis code fragment – 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
10
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...
11
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
12
– 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); } }
13
– 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)examplefix 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
14
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
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.