Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемСтепан Обрютин
1 Object-Oriented Programming and Problem Solving Dr. Ramzi Saifan Introduction and basics of Java Slides adapted from Steven Roehrig
2 Source Files: All java source files must end with the.java extension. A source file must contain at most one top-level public class definition If a public class is present, the class name should match the unextended filename. There are three top-level elements that may appear in a file. None of these elements is required. If they are presented, then they must appear in the following order: Package declaration Import statements Class definitions
3 No Main Method in the Public Class public class MainClass { } class Demo1 { public static void main (String [] args) { System.out.println("Welcome to Java Programming"); } Compilation command: javac MainClass.java Run-time command: java MainClass Output: java.lang.NoSuchMethodError: main (Exception in thread "main")
4 No Definition for a Public Class class MainClass { public static void main (String [] args) { System.out.println("Welcome to Java Programming"); } class Demo1 { } Compilation command: javac MainClass.java Run-time command: java MainClass Output: Welcome to Java Programming
5 Input/Output System.out.print System.out.println JOptionPane.showMessageDialog System.in JOptionPane.showInputDialog java.util.Scanner sc = new Scanner(System.in) int x = Sc.nextInt() String str = Sc.nextLine Output Input
6 JDK JDK has a huge number of packages. However, each package has a collection of classes and interfaces. Latest Java 2 Sun Release: JDK 1.7 Interactive Java Environments: TextPad Eclipse BlueJ NetBeans
7 Getting the Java Documentation Point your browser to Bookmark the file so you can always get to it easily Or, just bookmark the index page on Suns Java Web site
8 Java Operators An operator takes one or more things and produces a resultant thing. Things are usually primitive types, but they are sometimes objects. The things operated upon are called operands. An operator is just a function, but with a different syntax.
9 A Familiar Example The assignment operator and the addition operator are used (each exactly once!). int i = 3, j = 4, k; k = i + j;
10 More Operator Facts All operators produce a value. Sometimes they produce side effects, i.e., they change the value of an operand. Evaluation of a statement with several operators follows precedence rules. Use parentheses for readability. (x + y) * z / 3 is different than x + y * z / 3
11 Java's operator precedence hierarchy: (postfix), -- (postfix),. (dot), [], ( ) (prefix), -- (prefix), + (unary), - (unary), ~ (bitwise inversion operator), ! (boolean complement operator) 3. (type): casting 4. *, /, % 5. + (binary), - (binary) 6. >, >>> (shift operators) 7., = (ordinal operators), instance of 8. = =, != (equality comparison operators) 9. & (bitwise AND operator) 10. ^ (bitwise XOR operator) 11. | (bitwise OR operator) 12. && (AND operator) 13. || (OR operator) 14. ?: (ternary operator) 15. =, +=, -=, *=, /=, %=, >>=, >>=, &=, ^=,!= (assignments operators)
12 Assignment Is Tricky, Part I public class Number { public int i; } public class Assignment1 { public static void main(String[] args) { Number n1 = new Number(); Number n2 = new Number(); n1.i = 2; n2.i = 5; n1.i = n2.i; n2.i = 10;// what is n1.i? }
13 Assignment Is Tricky, Part II public class Assignment2 { public static void main(String[] args) { Number n1 = new Number(); Number n2 = new Number(); n1.i = 2; n2.i = 5; n1 = n2; n2.i = 10;// what is n1.i? n1.i = 20;// what is n2.i? }
14 A Picture Might Help n1n2 reference variablesNumber objects n2.in1.i Before assignment n1 = n2 n1n2 reference variablesNumber objects n2.in1.i After assignment n1 = n
15 Aliasing In Function Calls public class PassObject { static void f(Number m) { m.i = 15; } public static void main(String[] args) { Number n = new Number(); n.i = 14; f(n);// what is n.i now? }
16 Math Operators +, -, *, /, % Integer division truncates, i.e., 16/3 = 5 Modulus operator returns remainder on integer division, i.e., 16%3 = 1 Shorthand: x += 4; is the same as x = x + 4; This works for the other arithmetic operators as well.
17 Auto Increment and Decrement ++ increases by one, and -- decreases by one. Two flavors of each: pre and post: int i = 1, j; j = i++;// j = 1, i = 2 j = ++i;// j = 3, i = 3 j = i--;// j = 3, i = 2 j = --i;// j = 1, i = 1
18 Booleans and Relational Operators The boolean type has two possible values, true and false. The relational operators >, >=, <, <=, == and != produce a boolean result. >, >=, <, <= are legal for all built-in types except booleans, == and != are legal for all.
19 Testing for (Non-)Equivalence The == and != operators need to be used with care with objects. public class Equivalence { public static void main(String[] args) { Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1 == n2);// prints false System.put.println(n1 != n2);// prints true }
20 The equals( ) Operator This exists for all objects (dont need it for built-in types). Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1.equals(n2);// prints true
21 The equals( ) Operator (cont.) But exists doesnt necessarily mean properly defined! class Number { int i; } : Number n1 = new Number(); Number n2 = new Number(); n1.i = 3; n2.i = 3; System.out.println(n1.equals(n2));// prints false
22 The equals( ) Operator (cont.) The equals( ) operator is properly defined for most Java library classes. The default behavior is to compare references, so… When you define a class, if youre planning to use equals( ), you need to define it (i.e., override the default behavior).
23 Logical Operators These are AND (&&), OR (||), and NOT (!). These work on booleans only; if you have old C habits, forget them! Use parentheses freely to group logical expressions. Logical expressions short-circuit; as soon as the result is known, evaluation stops.
24 Short-Circuiting Example public class ShortCircuit { static boolean test1(int val) {return val < 1;} static boolean test2(int val) {return val < 2;} static boolean test3(int val) {return val < 3;} public static void main(String[] args) { if (test1(0) && test2(2) && test3(2)) System.out.println(Expression is true); else System.out.println(Expression is false); }
25 Bitwise, Shift, Ternary Operators Bitwise & shift operators manipulate individual bits in integral primitive types. The ternary if-else operator looks like this: boolean-expression ? value0 : value1 The result is either value0 or value1, depending on the truth of the boolean.
26 The String + Operator The + operator is overloaded for String objects; it means concatenation. It reminds me of good old C++… If an expression begins with a String, then all the following operands of + will be converted into Strings: int x = 0, y = 1, z = 2; String myString = x, y, z ; System.out.println(myString + x + y + z);
27 A Useful Figure byteshortintlong doublefloat char When multiple types are mixed in an expression, compiler will convert the operands into the higher type: double, float, long, int
28 Casting A cast produces a temporary new value of a designated type. Implicit and explicit casts: int i = 2; double d= i;// OK, since d can hold all of i float g = F; //! int j = g;// not OK, loses information int k = (int) g;// OK, compiler is reassured
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.