Presentation is loading. Please wait.

Presentation is loading. Please wait.

Exercise on Java Basics

Similar presentations


Presentation on theme: "Exercise on Java Basics"— Presentation transcript:

1 Exercise on Java Basics

2 Complete and Correct this Code
public _________ Coin { private int value; public Coin( int value ) { ____________________ ; } public void getValue( ) { return value; public String toString( ) { System.out.println( value . "-Baht");

3 Packaging and Commenting Code
package coinpurse; /** * Coin represents money with an integer value. Bill Gates */ public class Coin { private int value; * Initialize a new coin object. value is the value of the coin public Coin( int value ) { this.value = value; }

4 Packages Java uses packages to organize classes.
Packages reduce size of name space and avoid name collisions Example: The Java 8 API has... 2 classes named "Date" 1 class and 4 interfaces named "Element" 1 class and 1 interface named "List" (java.util.List & java.awt.List)

5 Name these Packages java.lang Core classes of the Java language
Object, String, System, Integer, Double, Math, Thread. java.io Classes for input and output InputStream, BufferedReader, File, OutputStream java.util Date/time classes, collections, utilities Calendar, Date, List, ArrayList, Set, Arrays, Formatter, Scanner java.time New date and time classes. LocalDate, LocalTime, Month, Duration

6 Package you never need to import
java.lang java compiler always "import"s all classes in this package, so you don't need to.

7 Package Name using Domain Name
The domain for the JUnit testing framework is: The Java package for JUnit is org.junit What should be the Java package for each of these? org.log4j.subpack Log4J logging framework. The URL is org.jfree JFreeChart plotting library for Java: com.lloseng OCSF networking framework:

8 Resolving Ambiguity: Date class
There is a Date class in java.util and java.sql In this code, which Date class will Java use? java.util.Date (because it is imported first) java.sql.Date (because it is imported last) depends on Java implementation compile error import java.util.*; // has java.util.Date import java.sql.*; // has java.sql.Date class Ambiguous { Date today = new Date( ); ... }

9 Resolving Ambiguity (2)
How can you fix this problem (2 solutions)? Solution 1: Solution 2: import java.util.*; import java.sql.*; // (1) class Ambiguous { // (2) __________ today = new _____________; }

10 Resolving Ambiguity (3)
How can you resolve this problem (2 solutions)? Solution 1: import a specific class Solution 2: use the full path in Java code import java.util.*; import java.sql.*; import java.util.Date; // Solution (1) class Ambiguous { java.util.Date today = new java.util.Date( ); // (2) ... }

11 How to convert a String to a number?
How to get the "int" value from String s? String s = "1234"; // At least 3 possible solutions: int n1 = int n2 = Scanner scanner = int n3 = Methods in the Integer class can also be used to evaluate strings with different base (radix) such as binary or hexadecimal. Example: Integer.parseInt( "4AE7", 16)

12 How to convert number to String?
How to create a String for a number n? int n = 100; String s = n; // error: must convert to string // At least 4 possible solutions: String s1 = String s2 = String s3 = String s4 =

13 How to convert number to String?
How to convert a number n to a String? int n = 100; String s = n; // error: must convert to string // At least 4 possible solutions: String s1 = Integer.toString( n ); String s2 = "" + n; String s3 = String.valueOf( n ); String s4 = String.format( "%d", n );

14 String Concatenation What is output by each of these? Why? int m = 11;
int n = 22; System.out.println( m + n ); System.out.println( "The sum is " + m + n ); System.out.println( m + n + " is the sum" ); System.out.println( "The sum is " +(m + n) );

15 Java Primitive Data Types
Java has 8 primitive data types These are not classes or objects. No properties. Name Values Examples true false true, false character 'a', 'A', '1', 'ก', 'ค', '\t' 8-bit integer , ..., -1, 0, 1, ..., 127 16-bit integer 32-bit integer 64-bit integer L 0L 888L 32-bit decimal F 0.0F -2.5E-8F 64-bit decimal E234

16 Write an equals( ) method for Coin
equals is true only if: 1) parameter is a Coin 2) parameter (as Coin) has same value as this Coin public class Coin { private int value; public boolean equals( Object arg ) { //1. test for null //2. test if arg is really a Coin //3. cast arg to type Coin //4. compare the values }

17 How to Convert Primitive to Object?
A List (like ArrayList) can only contain objects. How can we convert a primitive type to an object? List mylist = new ArrayList( ); int id = ; // this works in Java 5+, because java converts it mylist.add( id ); // How to convert id to an object type?

18 Wrapper Classes Primitive Wrapper boolean Boolean char Character
byte Byte short Short int Integer long Long float Float double Double double root = Math.sqrt( 2.0 ); Double d1 = new Double( root ); // same thing: automatic boxing Double d2 = root; // print as a string out.println( d2.toString( ) ); // static method to make a string out.println( Integer.toString( 2 ) );

19 Wrapper to convert to/from String
int n = 2*3*5*7*11*13*17*19*23*29*31; // how to convert n to a String? String product = _______________________; String s = "2.5"; // how to convert s to a double? double d = __________________________;

20 Range limits for numeric types
What is the largest "int" value? What is the smallest "long" value? What is the range (smallest, biggest) of double? int biggest = long smallest = double minsize = double maxsize =

21 What happens beyond the limit?
int n = Integer.MAX_VALUE; n = n + 1; System.out.println( n ); double d = Double.MAX_VALUE; d = d + 1; System.out.println( d ); d = d * ;

22 C# is different "int", "float", "double" are struct types.
// This is C# int n = int.MaxValue; String s = "The biggest integer is " + n.ToString( ) ; // range checking is enforced n = n + 1; System.OverflowException: Arithmetic operation resulted in an overflow.

23 How to parse? How can you read 2 integers from this String?
// String containing some integers String s = " "; // How to get the integers from s?

24 Careful parsing A String contains some words, but we don't know how many. How would you parse the words? // String containing some words String s = "Java 8 is complicated"; // How to get each word from s?

25 3 ways to parse a String 1. String.split( regex )
String [] args = s.split("\\s+"); // splits the string at whitespace chars 2. java.util.Scanner (powerful but slow) Scanner in = new Scanner( s ); while ( in.hasNext( ) ) String arg = in.next( ); 3. StringTokenizer (old but faster) StringTokenizer tokens = new StringTokenizer(s); while ( tokens.hasMoreElements( ) ) String arg = tokens.nextToken( );


Download ppt "Exercise on Java Basics"

Similar presentations


Ads by Google