Java Overview Comments in a Java Program • Comments can be single line comments like C++ Example: //This is a Java Comment • Comments can be spread over multiple lines like C Example: /* This is a multiple line comment. */ • Comments can be special Java comments that help produce java documentation using the javadoc utitlity program. Example: /** comments for an HTML page goes here */ Identifiers • Can be a series of characters consisting of letters, digits, underscores(_) and dollar signs ($). • It does not begin with a digit and does not contain spaces and cannot be a reserved word. Examples: WelcomeApplet, $value, _value, my_inputField, button8 Invalid Examples: 8button or input field Identifier Conventions • Class names begin with a capital letter and have a capital letter for every word in the class name ( Ex: WelcomeAppletClass) • Variables and Methods begin with lower case letter and have a capital letter for every word in the variable ( Ex: firstNumber, and myFirstMethod) • Constants are all caps with an underscore separating individual words ( Ex: RATE_PER_HOUR) Primitive Data Types and Declaring Variables • Integer values (32 bits from -231 to 231-1): int number1, number2; • Real values (32 bits): float area; True/False values (8 bits): boolean done=true; Primitive Data Types Continued • Other Integers: byte (8 bits), short (16 bits) and long (64 bits) byte verySmallInteger; short numberInClass; long veryBigInteger; • Other real values: double (64 bits) double nationalDebt; – By default, real values are double. For example, 5.0 is considered to be double not float. To make it float, write it as 5.0f Number Literals int i = 34; long l = 1000000; float f = 100.2f; or float f = 100.2F; double d = 100.2; or double d = 100.2D; or Double d=100.2d; Primitive Data Types Continued • Character data – uses ISO Unicode Character set (16 bits) • Established by the Unicode Consortium to support the interchange, processing, and display of texts for the world’s diverse languages. (see www.unicode.org) – Ranges from ‘\u0000’ to ‘\uFFFF’ – ASCII is a subset of Unicode (‘\u0000’ to ‘\u007F’ corresponds to the 128 ASCII characters Examples: char letter='A'; //A char letter='\u0041'; //A char letterPI='\03A0'; // Constants static final datatype CONSTANT_NAME = valueOfConstant; static final double PI = 3.14159; static final int SIZE = 3; Shortcut Operators Operator Example Equivalent += i+=8 i = i+8 -= f-=8.0 f = f-8.0 *= i*=8 i = i*8 /= i/=8 i = i/8 %= i%=8 i = i%8 Increment and Decrement Operators x = 1; y = 1 + x++; y = 1 + ++x; y = 1 + x--; y = 1 + --x; Operator Precedence • • • • • • • • • Casting ++, -*, /, % +, <, <=, >, => ==, !=; && || =, +=, -=, *=, /=, %= Numeric Type Conversion Consider the following statements: byte i = 100; long l = i*3+4; double f = i*3.1+l/2; • When performing a binary operation involving operands of different types, Java automatically converts the operand of a smaller range type to a larger range type of the other operand. • Example: If one is int and the other is float, the int is converted to float Numeric Type Conversion • Casting is an operation that converts a value of one data type into a value of another data type. • Casting a variable of a type with a small range to a variable with a larger range is known as widening a type. • Casting a variable of a type with a large range to a variable with a smaller range is known as narrowing a type. • Widening a type can be performed automatically. • Narrowing a type must be performed explicitly. Numeric Type Conversion Examples: float f = 10.1; float f = 10.1f; float f = (float)10.1; //illegal //legal //explicit casting The String Class • java.lang.String is a class that models a sequence of characters as a string. The String class contains 11 constructors and > 40 methods Examples: String message = “Welcome to Java!”; String class • String – sequence of character data • String objects are immutable – they cannot be changed once they have been created • String class has 11 constructors – String () – String (String s) Strings • Instantiating a string object – String name = “Joe”; – String name = new String (“Joe”); String Methods • char charAt (int position) – Return the character located at the specified position • char c = name.charAt(2); • equals – if (s1.equals(s2)) String Methods • int length() – Returns the number of characters in the string • int l = name.length(); • String substring (int start) • String substring (int start, int end) – Used to extract a substring from a larger string – start is the position of the first character to extract – end is NOT the position of the last character to extract but the position following the last character to extract String Methods Assume: String letters = “abcdef”; • System.out.println (letters.substring (3)); – Prints def • System.out.println(letters.substring (0,3)); – Prints abc • System.out.println (letters.substring (2,4)); – Prints cd String Methods • boolean equals (Object o) – Return true if the object is a string that has the same length and contains the same characters as the string for which the method is called • boolean equalsIgnoreCase (Object o) String Methods • int compareTo(String s) – Returns 0 if both strings are the same – Returns a positive number if the argument string comes first – Returns a negative number if the calling string come first String Methods indexOf and lastIndexOf – searches for a specified character or substring in a String • Example: String letters =“abcdefabcd”; – int i=letters.indexOf(‘c’); // i contains 2 – int i=letters.indexOf(‘$’); // i contains -1 – int i=letters.indexOf (‘a’,1); //starts with 1 and searches for ‘a’ i contains 6 – int i=lastIndexOf (‘b’); //i=7 – int i=letters.indexOf(“def”); // i=3 String Methods • replace (char,char), toUpperCase(), trim() – String s1 = “hello”; – s1 = s1.replace (‘l’, ‘L’); //returns a string object in which every occurrence of ‘l’ is replaced by ‘L’ – s1 = s1.toUpperCase(); //”HELLO” – s1 = s1.trim() //remove any white spaces at beginning or end