1 / 14

Lecture 2: Classes and Objects, using Scanner and String

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?

jaeger
Download Presentation

Lecture 2: Classes and Objects, using Scanner and String

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 doc • 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 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 javadoc

  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 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

  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) • 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

More Related