Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
OBJECT ORIENTED PROGRAMMING Course 3 Loredana STANCIU [email protected] Room B613 THE NUMBERS CLASSES ´ Primitive P i iti ttypes tto d define fi variables: i bl « int i = 2; « float fl t j j; « double d; ´ Wrapper classes for each of the primitive data types ´ Wrap the primitive type in an object ´ Often, the wrapping is done by the compiler ´ ´ ´ ´ Integer x, y; x = 12; y = 15; System.out.println(x+y); y p ( y); THE NUMBERS CLASSES ´ All of the numeric wrapper classes are subclasses of the abstract class Number THE NUMBERS CLASSES ´ Why tto use a Number object Wh bj t rather th th than a primitive? « As an argument of a method that expects an object « To use constants defined by the class class, such as MIN_VALUE and MAX_VALUE, that provide the upper and lower bounds of the data type. type « To use class methods for various conversions METHODS IMPLEMENTED BY ALL SUBCLASSES OF NUMBER ´ Converts the value of this Number object to the primitive data type returned. « byte byteValue() « short h t shortValue() h tV l () « int intValue() « long longValue() « float fl t fl floatValue() tV l () « double doubleValue() () METHODS IMPLEMENTED BY ALL SUBCLASSES OF NUMBER ´ Compares this Number object to the argument. « int « int « int « int « int « int compareTo(Byte anotherByte) compareTo(Double anotherDouble) compareTo(Float anotherFloat) compareTo(Integer anotherInteger) compareTo(Long anotherLong) compareTo(Short anotherShort) METHODS IMPLEMENTED BY ALL SUBCLASSES OF NUMBER « boolean equals(Object obj) Determines D t i whether h th this thi number b object bj t iis equal to the argument. ´ The methods return true if the argument is not null and is an object of the same type and with the same numeric value. ´ CONVERSION METHODS, METHODS INTEGER CLASS « static ´ Returns an integer (decimal only). « String St i ´ t toString() St i () Returns a String object representing the value of this Integer. « static ´ int p parseInt(String g s) String toString(int i) Returns a String object representing the specified integer. CONVERSION METHODS, METHODS INTEGER CLASS « static ´ Returns an Integer object holding the value of the specified primitive. primitive « static ´ Integer g valueOf(int i) Integer valueOf(String s) Returns an Integer object holding the value of the specified string representation. FORMATTING NUMERIC PRINT OUTPUT ´ The java.io package includes a PrintStream class « System.out.println(String s) « System System.out.format(String out format(String format format, Object... args) « System.out.printf(String System out printf(String format, format Object... args) « System.out.format(Locale f ( l l l, String i format, Object... args) FORMATTING NUMERIC PRINT OUTPUT ´ System.out.format("The S t t f t(" h value l of f the float variable is %f, " + " " the value of the integer " + , and the " + " variable is %d, "string is %s", floatVar, intVar stringVar); intVar, ´ http://java.sun.com/javase/6/docs/api/java /util/Formatter html /util/Formatter.html FORMATTING NUMERIC PRINT OUTPUT int i = 461012; ; ´ System.out.format("The value of i i is: %d% %d%n", " i) i); ´ The output: p The value of i is: 461012 ´ float floatVar = 3.14; ´ System.out.format(Locale.FRANCE, S t t f t(L l FRANCE "The value of the float variable is %f%n", floatVar); ´ The output: The value of the float ´ variable is: 3,14 FORMATTING NUMERIC PRINT OUTPUT long n = 461012; ´ System.out.format( System.out.format("%d%n", %d%n , n); ´ System.out.format("%08d%n", n); ´ System.out.format("%+8d%n", n); ´ System.out.format( System out format("% %,8d%n 8d%n", n); ´ System.out.format("%+,8d%n", n); ´ 461012 00461012 +461012 461 012 461,012 +461,012 FORMATTING NUMERIC PRINT OUTPUT double pi = Math.PI; ´ System.out.format( System.out.format("%f%n", %f%n , pi); 3.141593 ´ System.out.format("%.3f%n", pi); 3.142 ´ System.out.format("%10.3f%n", pi); 3.142 ´ System.out.format( System out format("%-10 % 10.3f%n 3f%n", pi); 3.142 3 142 ´ System.out.format(Locale.FRANCE, 3,1416 ¹"%-10.4f%n%n", pi); « import java.util. java util *;; ´ ADVANCED MATHEMATICAL COMPUTATION ´ ´ ´ ´ ´ ´ ´ ´ ´ import ja java.lang.Math.*; a lang Math * int abs(float f) int round(float f) int min(int ( arg1, g , int arg2) g ) int max(int arg1, int arg2) double double double double exp(double d) log(double d) pow(double p ( base, , double exponent) p ) sqrt(double d) ADVANCED MATHEMATICAL COMPUTATION ´ ´ ´ ´ ´ ´ ´ ´ double double double double double double double double sin(double d) cos(double d) tan(double d) asin(double ( d) ) acos(double d) atan(double d) toDegrees(double d) toRadians(double d) ADVANCED MATHEMATICAL COMPUTATION ´ Random Numbers N mbers random() method returns a pseudo-randomly selected number between 0.0 and 1.0 (exclusively) ´ int number = (int)(Math.random() * 10); ´ SUMMARY OF NUMBERS ´ ´ ´ ´ Wrapper classes W l – Byte, B Double, D bl Fl Float, Integer, I LLong, or Short – to wrap a number of primitive type in an object bj The Number classes include constants and useful class methods To format a stringg containingg numbers for output, p , yyou can use the printf() or format() methods in the PrintStream class The Math class contains a variety of class methods for performing mathematical functions CHARACTERS ´ ´ char h primitive i iti ttype — Character Ch wrapper class l The Character class is immutable, so that once it is created, a Character object cannot be changed. ´ Creatingg an Character object: j Character ch = new Character('a'); ´ autoboxing or unboxing autoboxing—or ´ « « ´ Character test(Character c) {...} char h c = t test('x'); t(' ') java.lang.Character CHARACTERS boolean b l i isLetter(char tt ( h ch) h) ´ boolean isDigit(char g ( ch) ) ´ boolean isWhiteSpace(char ch) ´ boolean isUpperCase(char ch) ´ boolean isLowerCase(char ch) ´ char toUpperCase(char ch) ´ char toLowerCase(char ch) ´ toString(char ch) ´ STRINGS A sequence of characters — objects in the Java programming language ´ How to create a String? ´ « String greeting = "Hello Hello world!"; world! ; « String St i s = new String(greeting); St i ( ti ) « char[] c={'h','e','l','l','o','.'}; « String g S = new String(c); g( ); STRINGS The String class is immutable ´ accessor methods — methods used to obtain information about an object ´ String palindrome = "Dot saw I was Tod"; T d" ´ int len = palindrome.length(); p g ´ STRINGS ´ ´ ´ ´ ´ ´ char[] h [] tempCharArray t Ch A = new char[len]; h [l ] char[] charArray = new char[len]; f for (i (int t i = 0; 0 i < len; l i ) { i++) « tempCharArray[i] = palindrome.charAt(i); } for (int j = 0; 0 j < len; j++) { « charArray[j] = tempCharArray[len - 1 - j]; } String reversePalindrome = new String(charArray); System.out.println(reversePalindrome); STRINGS Concatenate Strings ´ string1.concat(string2); ´ "My name is ".concat("Ana"); ´ ´ "Hello," + " world" + "!" to span lines in source files ´ String s="Now s= Now is the time“ time + ° " of roses."; ´ CONVERTING BETWEEN NUMBERS AND STRINGS ´ Converting Strings to Numbers ´ Number.valueOf() « float a = (Float.valueOf(args[0]) ).floatValue(); « float oat b = (Float.valueOf(args[1]) ( oat a ueO (a gs[ ]) ).floatValue(); ) oat a ue(); ´ Number.parsePrimitive() « float f a = Float.parseFloat(args[0]); 0 « float b = Float.parseFloat(args[1]); CONVERTING BETWEEN NUMBERS AND STRINGS ´ Converting Numbers to Strings int i; ´ String s1 = "" + i; ´ ´ String s2 = String.valueOf(i); int i; ´ double d; ´ String s3 = Integer.toString(i); ´ String s4 = Double.toString(d); ´ CONVERTING BETWEEN NUMBERS AND STRINGS ´ ´ public bli class l T ToStringDemo St i D { « public static void main(String[] args) { ² double d bl d = 858.48; 858 48 ² String s = Double.toString(d); ² int dot = s.indexOf('.'); ² System.out.println(dot + " digits before d i l point."); decimal i t ") ² System.out.println( (s.length() - dot 1) + " digits after decimal point point."); ); « } } MANIPULATING CHARACTERS IN A STRING String aPal = "Niagara Niagara. O roar again!"; ´ char aChar = aPal.charAt(9); ´ MANIPULATING CHARACTERS IN A STRING String aPal = "Niagara Niagara. O roar again!"; ´ String r =aPal.substring(11,15); ´ SEARCHING FOR CHARACTERS AND SUBSTRINGS IN A STRING ´ String[] split(String regex) ´ C a Seque ce subSeque ce( t CharSequence subSequence(int beginIndex, int endIndex) ´ String trim() ´ String i toLowerCase() () ´ String toUpperCase() SEARCHING FOR CHARACTERS AND SUBSTRINGS IN A STRING ´ int indexOf(int ch) int lastIndexOf(int ch) ´ int i t indexOf(int i d Of(i t ch, h int i t fromIndex) f I d ) int lastIndexOf(int ch, int fromIndex) ´ int indexOf(String str) int lastIndexOf(String str) ´ int indexOf(String str, int fromIndex) int lastIndexOf(String str, int fromIndex) ´ boolean contains(CharSequence ( q s)) SEARCHING FOR CHARACTERS AND SUBSTRINGS IN A STRING ´ public class Filename { « private String fullPath; « p private char p pathSeparator, p , extensionSeparator; p ; « public Filename(String str, char sep, char ext) { ² fullPath = str; ² pathSeparator = sep; ² extensionSeparator = ext; } « public String p g extension() () { ² int dot = fullPath.lastIndexOf(extensionSeparator); ² return t f ll th fullPath.substring(dot b t i (d t + 1) 1); } «… SEARCHING FOR CHARACTERS AND SUBSTRINGS IN A STRING ´ … « public String filename() { ² int dot = fullPath.lastIndexOf(extensionSeparator); ² int sep = fullPath.lastIndexOf(pathSeparator); ² return fullPath.substring(sep + 1, 1 dot); } « public String path() { int sep = fullPath.lastIndexOf(pathSeparator); return fullPath.substring(0, sep); } « « « ´ } SEARCHING FOR CHARACTERS AND SUBSTRINGS IN A STRING String fpath = "/home/mem/index html";; /home/mem/index.html Filename myHomePage = new Filename(fpath, '/', '.'); Extension = html ´ Filename Fil = iindex d ´ REPLACING CHARACTERS AND SUBSTRINGS INTO A STRING String replace(char oldChar, char newChar) ´ String replace(CharSequence target, q replacement) p ) CharSequence ´ String replaceAll(String regex, String replacement) ´ String replaceFirst(String regex, String replacement) ´ COMPARING STRINGS AND PORTIONS OF STRINGS ´ boolean endsWith(String suffix) boolean b l startsWith(String t t With(St i g prefix) fi ) int compareTo(String anotherString) ´ int i compareToIgnoreCase(String T I C (S i str)) ´ boolean equals(Object anObject) ´ boolean equalsIgnoreCase(String anotherString) ´ THE JAVA I/O SYSTEM import java.io. java.io.*;; ´ I/O operations based on streams ´ « Input streams « Output streams ´ Standard I/O « System.in System in « System.out « System.err THE JAVA I/O SYSTEM ´ ´ ´ IInputt and d Output O t t - Source S and dD Destination ti ti The terms "input" and "output" can sometimes be a bit confusing Java's IO package concerns with: « « ´ the reading of raw data from a source the writing of raw data to a destination The typical sources and destinations of data: « « « « « Files Pipes Network Connections In-memory Buffers (e.g. arrays) S t System.in, i System.out, S t t System.error S t THE JAVA I/O SYSTEM A program that needs to read data — an input stream or Reader ´ A program that needs to write data — an output stream or writer ´ An InputStream or Reader is linked to a source of data. ´ An OutputStream or Writer is linked to a destination of data. ´ THE JAVA I/O SYSTEM ´ Java IO Purposes and Features « « « « « « « « « « File Access Network Access Internal Memory Buffer Access Inter-Thread Communication (Pipes) Buffering Filtering Parsingg Reading and Writing Text (Readers / Writers) Readingg and Writingg Primitive Data ((long, g, int etc.)) Reading and Writing Objects THE JAVA I/O SYSTEM ´ Th InputStream The S class: l « « ´ ´ ´ ´ ´ the base class of all input streams in the Java IO API used for reading byte based data, one byte at a time The FileInputStream class — read the contents of a file as a stream of bytes InputStream input = new FileInputStream("c:\\data\\input-text.txt"); int data = input.read(); while(data != -1) « {doSomethingWithData(data); « data = input.read();} input.close(); THE JAVA I/O SYSTEM ´ ´ ´ ´ ´ ´ The R Th Reader d iis the h baseclass b l off allll R Reader's d ' in i the h Java J IO API — BufferedReader Reader reader = new FileReader(); int data = reader.read(); while(data != -1){ « char dataChar = (char) data; « data = reader.read(); } Can be combined with an InputStream — wraped into InputStreamReader Reader reader = new InputStreamReader(inputStream); THE JAVA I/O SYSTEM ´ ´ ´ ´ ´ ´ The InputStreamReader Th S d class l is i iintended t d d tto wrap an InputStream, thereby turning the byte based i input stream iinto a character h b based dR Reader. d InputStream inputStream = new Fil I FileInputStream("c:\\data\\input.txt"); tSt (" \\d t \\i t t t") Reader reader = new InputStreamReader(inputStream); int data = reader.read(); while(data != -1){ 1){ « char theChar = (char) data; « data d t = reader.read(); d d() } reader.close(); THE JAVA I/O SYSTEM Reading text lines ´ BufferedReader — readLine() ´ « Reads from an input stream until the line end « Returns a reference to a String without the line end or null « IOException p is throwed if no readingg done ´ The constructor needs an object of InputStreamReader if reading from a file « System.in if reading from the console « FileInputStream THE JAVA I/O SYSTEM ´ BufferedReader r_in r in = new BufferedReader(new InputStreamReader(new FileInputStream(file name))); FileInputStream(file_name))); ´ BufferedReader r_in = new BufferedReader(new ( InputStreamReader (System.in)); ´ li = r_in.readLine(); line i dLi () THE JAVA I/O SYSTEM ´ Th PrintStream The i class: l « Enables the writingg of formatted data to an underlying OutputStream « Contains the print()/println() to print a string « Contains the powerful format() and printf() methods ´ The constructor needs Th d an object bj off FileOutputStream (write a file as a stream of bytes) THE JAVA I/O SYSTEM ´ PrintStream w_out = new PrintStream (new FileOutputStream(file_name)); ´ w_out.println(“…”); ´ w_out.print(true); ´ w out print((int) 123); w_out.print((int) ´ w_out.print((float) 123.456); ´ w_out.printf(Locale.UK, "Text + data: %1$", 123); ´ w_out.close(); THE JAVA I/O SYSTEM ´ Streams and Readers / Writers need to be closed properly ´ r_in.close( ); ´ w out close( ); w_out.close( ´ public static void main (String[ ] arg) throws IOException { ´ … ´ } REFERENCES ´ ´ The Java Th J Tutorials. T i l Learning L i the h Java J LLanguage. http://java.sun.com/docs/books/tutorial/java/data /i d h l /index.html Java IO Tutorial. http://tutorials.jenkov.com/javaio/index.html