Lecture 1 Oop
Lecture 1 Oop
Shahrukh Haider
2 Introduction
•
Java is a very powerful language that has generated
a lot of interest in the last years.
Java
Oak
3 Introduction
•
It is a general purpose concurrent object oriented language,
with a syntax similar to C and C++, but omitting features
that are complex and unsafe.
C++ Java
Backward compatile con C Backward compatibility with
previous Java versions
Execution efficiency Developer productivity
Trusts the programmer Protects the programmer
Arbitrary memory access possible Memory access through objects
Concise expression Explicit operation
Can arbitrarily override types Type safety
Procedural or object oriented Object oriented
Operator overloading Meaning of
operators
immutable
4 Introduction
•
The world wide web has popularized the use of Java,
because programs can be transparently downloaded with
web pages and executed in any computer with a Java
capable browser.
•
A Java application is a standalone Java program that can be
executed independently of any web browser.
•
A Java applet is a program designed to be executed
under a Java capable browser.
5 The Java platform
•
Java programs are compiled to Java byte-codes,
a kind of machine independent representation.
The program is then executed by an interpreter
called the Java Virtual Machine (JVM).
Compiler
6 The Java platform
•
The compiled code is independent of
the architecture of the computer.
•
The price to pay is a slower execution.
Interpreter (JVM)
Compiler
Interpreter (JVM)
7 A first example
/**
* Hello World Application
* Our first example
*/
public class HelloWorld {
public static void main(String[] args)
{ System.out.println("Hello World!"); // display
output
}
}
$ javac HelloWorld.java
$ ls
HelloWorld.class
HelloWorld.java
$ java HelloWorld
Hello World
8 Documentation
•
The javadoc utility can be used to generate
automatically documentation for the class.
/**
* My first <b>Test</b>
* @author Carlos Kavka
* @version 1.1
*/
public class HelloWorld {
/**
* @param args the command line arguments
* @since 1.0
*/
public static void main(String[] args) {
System.out.println("Hello World");
}
}
9 Documentation
10 Fundamental types
•
Java provides ten fundamental types:
int x;
double f = 0.33;
char c = ’a’;
String s = "abcd";
x = 55;
12 Literals
•
The integer values can be written in decimal,
hexadecimal, octal and long forms:
int x = 34; // decimal value
int y = 0x3ef; // hexadecimal
int z = 0772; // octal
long m = 240395922L; // long
•
The floating point values are of type double by
default:
•
The boolean values are true and false:
- Arithmetic
- Bit level
- Relational
- Logical
- Strings
related
16 Arithmetic expressions
•
Java provides the usual set of arithmetic operators:
- addition (+)
- subtraction (-)
- division (/)
- multiplication (*)
- modulus (%)
17 Arithmetic operators
class Arithmetic {
public static void main(String[] args) {
int x = 12;
int y = 2 * x;
System.out.println(y);
int z = (y - x) % 5;
System.out.println(z);
final float pi = 3.1415F;
float f = pi / 0.62F;
System.out.println(f);
}
}
$ java Arithmetic
24
2
5.0669355
18 Arithmetic operators
•
Shorthand operators are provided:
class ShortHand {
public static void main(String[] args) {
int x = 12;
x += 5; // x =
x + 5 System.out.println(x);
x *= 2; // x =
x * 2 System.out.println(x);
}
}
$ java ShortHand
17
34
19 Arithmetic operators
•
Pre and post operators are also provided:
class Increment {
public static void main(String[] args) {
int x = 12,y = 12;
$ java Increment
12 13 13 13
20 Relational expressions
•
Java provides the following relational operators:
- equivalent (==)
- not equivalent (!=)
- less than (<)
- greater that (>)
-
less than or equal (<=)
- greater than or equal (>=)
•
Important: relational expressions always return a
boolean value.
21 Relational Expressions
class Boolean {
public static void main(String[] args) {
int x = 12,y = 33;
$ java Boolean
true
false
true
22 Bit level operators
•
Java provides the following operators:
- and (&)
- or (I)
-
not(C)
-
shift left
- (<<)
shift
- right with sign extension (>>)
• shift right with
Important: char,zero extension
short (>>>).
and byte arguments are
promoted to int before and the result is an int.
23 Bit level operators
class Bits {
public static void main(String[] args) {
int x = 0x16; // 00000000000000000000000000010110
int y = 0x33; // 00000000000000000000000000110011
short s = 7; // 0000000000000111
System.out.println(˜s); // 11111111111111111111111111111000
}
}
24 Bit level operators
class Bits2 {
public static void main(String[] args) {
int x = 0x16; //00000000000000000000000000010110
System.out.println(x << 3);//00000000000000000000000010110000
x = -9; //11111111111111111111111111110111
System.out.println(x >> 3);//11111111111111111111111111111110
System.out.println(x >>>3);//00011111111111111111111111111110
}
}
25 Logical operators
•
Java provides the following operators:
- and (&&)
- or (II)
- not(!)
•
Important: The logical operators can only be
applied to boolean expressions and return a
boolean value.
26 Logical operators
class Logical {
public static void main(String[] args) {
int x = 12,y = 33;
double d = 2.45,e = 4.54;
$ java Logical
true
false
true
27 String operators
•
Java provides many operators for Strings:
- Concatenation (+)
- many more...
•
Important: If the expression begins with a string
and uses the + operator, then the next argument is
converted to a string.
•
Important: Strings cannot be compared with ==
and !=.
28 String operators
class Strings {
public static void main(String[] args) {
String s1 = "Hello";
String s2 = "Hello";
System.out.println(s1.equals(s2));
System.out.println(s1.equals("Hi"));
}
}
$ java Strings2
true
false