96
JAVA BASICS Eng. Amr Nagy

JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

Embed Size (px)

Citation preview

Page 1: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

JAVA BASICS

Eng. Amr Nagy

Page 2: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

2

Getting Started

• The java Development Kit-JDK .• In order to get started in java programming,

one needs to get a recent copy of the java JDK. This can be obtained for free by downloading it from the Sun Microsystems website, http://java.sun.com

• Once you download and install this JDK you are ready to get started. You need a text editor as well

Page 3: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

3

To run java program

• Java instructions need to translated into an intermediate language called bytecode

• Then the bytecode is interrupted into a particular machine language (Object code)

Page 4: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

4

What is needed

• Compiler: A program that translates program

written in a high level language into the equivalent machine language

• Java Virtual machine: A S/W which make java programs machine independent

Page 5: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

5

Java virtual machine

• The Java Virtual Machine is software that interprets Java bytecode

• Java programs executed in JVM• JVM is a virtual rather than a physical

machine• The JVM is typically implemented as a run

time interrupter• Translate java bytecode instructions into

object code

Page 6: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

6

Java Features

• Java is both compiled and interpreted.

• Java is fully object oriented.

Page 7: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

7

Java Features

• Java is easy to learn.• Java is machine and platform independent.

“WRITE ONCE, RUN ANY WHERE!”

Page 8: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

8

• Java depends on dynamic linking of libraries.

Java Features

Page 9: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

9

API

• The application program interface (API) contains predefined classes and interfaces for developing Java programs.

• The Java language specification is stable, but the API is still expanding.

Page 10: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

10

API Editions

• Java Standard Edition (J2SE)– J2SE can be used to develop client-side

standalone applications or applets.• Java Enterprise Edition (J2EE)

– J2EE can be used to develop server-side applications such as Java servlets and Java ServerPages.

• Java Micro Edition (J2ME). – J2ME can be used to develop applications for

mobile devices such as cell phones.

Page 11: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

11

API Editions

• Sun releases each version of J2SE with a Java Development Toolkit (JDK).

• JDK consists of a set of separate programs for developing and testing Java programs, each of which is invoked from a command line.

Page 12: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

12

Java IDE Tools

• A Java development tool is software that provides an integrated development environment (IDE) for rapidly developing Java programs.

• Borland JBuilder• NetBeans Open Source by Sun • Jcreator• Eclipse Open Source by IBM• ….

Page 13: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

13

Characteristics of Java

• Java Is Simple • Java Is Object-Oriented • Java Is Distributed • Java Is Interpreted • Java Is Robust • Java Is Secure • Java Is Portable • Java's Performance • Java Is Multithreaded

Page 14: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

14

A Simple Java Program

// My First Program!!public class HelloWorld { public static void main(String[] args){ System.out.println(“Hello World!”); }}

Page 15: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

15

Anatomy of a Java Program

• Comments• Package• Reserved words• Modifiers• Statements• Blocks• Classes• Methods• The main method

Page 16: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

16

Naming Conventions

• Package names: lowercaseforallcomponents • Class and Interface names:

CaptializedWithInternalWordsCaptialized • Method names:

firstWordLowercaseButInternalWordsCapitalized() • Variable names:

firstWordLowercaseButInternalWordsCaptialized • Constants: UPPER_CASE_WITH_UNDERSCORES

Page 17: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

17

Standard Output

• println() places a newline character at the end of whatever is being printed out.

• The following lines:– System.out.println(“This is being printed

out");System.out.println(“on two separate lines.");

results in 2 lines of output.– System.out.print(“These lines will be");

System.out.print(“printed on the same line");

Page 18: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

18

Identifiers

• Identifiers are the names of variables, methods, classes, packages and interfaces.

• An identifier is a sequence of characters that consist of letters, digits, underscores (_), and dollar signs ($), must start with a letter, an underscore (_), or a dollar sign ($).

• It cannot start with a digit. • An identifier cannot be a reserved word

(public, class, static, void, method,…)

Page 19: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

19

Note

• Java is case sensitive.• File name has to be the same as class

name in file.• Need to import necessary class

definitions.

Page 20: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

20

Variables

• Each variable must be declared before it is used.

• The declaration allocates a location in memory to hold values of this type.

• Variable types can be:– primitive – reference to an object

Page 21: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

21

Variable Declarations

• The syntax of a variable declaration is data-type variable-name;

• Example:

– Assign values:

int total;

long count, sum;

total = 0; count = 20, sum=50;unitPrice = 57.25;

double unitPrice;

Page 22: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

22

Variable Declarations, cont.

• Declaring and Initializing in One Step

int total=0;Long count=20, sum=50;double unitPrice = 57.25;

Page 23: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

23

Variable Declaration Example

public class DeclarationExample {public static void main (String[] args) { int weeks = 14; long numberOfStudents = 120; double averageFinalGrade = 78.6; char ch=‘a’;

System.out.println(weeks); System.out.println(numberOfStudents); System.out.println(averageFinalGrade);

System.out.println(ch); }}

Page 24: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

24

Constants

• We may declare that a variable is a constant and its value may never change.

final datatype CONSTANTNAME = VALUE;

final double PI = 3.14159; final int CHINA_OLYMPICS_YEAR =

2008;

Page 25: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

25

Primitive Data Types

Page 26: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

26

Integers

• There are four integer data types, They differ by the amount of memory used to store them.

Type Bits Value Range

byte 8 -127 … 128

short 16 -32768 … 32767

int 32 about 9 decimal digits

long 65 about 18 decimal digits

Page 27: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

27

Floating Point

• There are two floating point types.

Type Bits Range(decimal digits)

Precision(decimal digits)

float 32 38 7

double 64 308 15

Page 28: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

28

Characters

• A char value stores a single character from the Unicode character set.

• A character set is an ordered list of characters and symbols.– ‘A’, ‘B’, ‘C’, … , ‘a’, ‘b’, … ,‘0’, ‘1’, … , ‘$’, …

• The Unicode character set uses 16 bits (2 bytes) per character.

Page 29: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

29

Boolean

• A boolean value represents a true/false condition.

• The reserved words true and false are the only valid values for a boolean type.

• The boolean type uses one bit.

Page 30: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

30

Numeric Type Conversion

Consider the following statements:

byte i = 100;long k = i * 3 + 4;double d = i * 3.1 + k / 2;

Page 31: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

31

Conversion Rules

• When performing a binary operation involving two operands of different types, Java automatically converts the operand based on the following rules:– If one of the operands is double, the other is

converted into double.– Otherwise, if one of the operands is float, the

other is converted into float.– Otherwise, if one of the operands is long, the

other is converted into long.– Otherwise, both operands are converted into int.

Page 32: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

32

Type Casting

• Implicit casting double d = 3; (type widening)

• Explicit castingint i = (int)3.0; (type narrowing)int i = (int)3.9; (Fraction part is truncated)

• What is wrong? int x = 5 / 2.0;

Page 33: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

33

Data Type Conversion Examples

double f, x;int j;f = 5; f = 5.0 / 2;f = x * j;f = 5 / 2;f = (float) j / 5;j = (int) f;j = (int) 5.0 / 2.0;

Page 34: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

34

Operators

Page 35: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

35

Basic Arithmetic Operators

Operator Meaning Type Example

+ Addition Binary total = cost + tax;

- Subtraction Binary cost = total – tax;

* Multiplication Binary tax = cost * rate;

/ Division Binary salePrice = original / 2;

% Modulus Binary remainder = value % 5;

Page 36: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

36

Combined Assignment Operators

Operator Example EquivalentValue of variable after

operation

+= x += 5; x = x + 5; The old value of x plus 5.

-= y -= 2; y = y – 2; The old value of y minus 2

*= z *= 10; z = z * 10;

The old value of z times 10

/= a /= b; a = a / b; The old value of a divided by b.

%= c %= 3; c = c % 3;The remainder of the division of the old value of c divided by 3.

Page 37: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

37

Operator Precedence

• Multiplication, division, and remainder (%) have a higher precedence than addition and subtraction.

• Operators with same precedence evaluate from left to right.

• Parenthesis can be used to force order of evaluation.

Page 38: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

38

Increment and Decrement Operators

Operator Meaning Example Description

++ preincrement ++var

Increments var by 1 and evaluates the new value in var after the increment.

++ postincrement var++Evaluates the original value in var and increments var by 1.

– – predecrement --var

Decrements var by 1 and evaluates the new value in var after the decrement.

– – postdecrement var--Evaluates the original value in var and decrements var by 1.

Page 39: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

39

Increment and Decrement Operators, cont.

int i = 10; int newNum = 10 * (i++);

int newNum = 10 * i; i = i + 1;

Same effect as

int i = 10; int newNum = 10 * (++i);

i = i + 1; int newNum = 10 * i;

Same effect as

Page 40: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

40

Comparison Operators

Operator Meaning

< less than

<= less than or equal to

> greater than

>= greater than or equal to

== equal to

!= not equal to

Page 41: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

41

Boolean Operators

Operator Meaning

! not

&& and

|| or

^ exclusive or

Page 42: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

42

Control Statements

Page 43: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

43

if Statement

Boolean Expression

true

Statement(s)

false (radius >= 0)

true

area = radius * radius * PI; System.out.println("The area for the circle of " + "radius " + radius + " is " + area);

false

(A) (B)

if (booleanExpression) { statement(s);}

if (radius >= 0) { area = radius * radius * PI; System.out.println("The area"

“ for the circle of radius " + "radius is " + area);}

Page 44: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

44

if...else Statementif (booleanExpression) { statement(s)-for-the-true-case;}else { statement(s)-for-the-false-case;}

Boolean Expression

false true

Statement(s) for the false case Statement(s) for the true case

Page 45: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

45

if...else Statement Example

if (radius >= 0) { area = radius * radius * 3.14159;

System.out.println("The area for the “

+ “circle of radius " + radius + " is " + area);}else { System.out.println("Negative input");}

Page 46: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

46

Multiple Alternative if Statements

if (score >= 90.0) grade = 'A'; else if (score >= 80.0) grade = 'B'; else if (score >= 70.0) grade = 'C'; else if (score >= 60.0) grade = 'D'; else grade = 'F';

Equivalent

if (score >= 90.0) grade = 'A'; else if (score >= 80.0) grade = 'B'; else if (score >= 70.0) grade = 'C'; else if (score >= 60.0) grade = 'D'; else grade = 'F';

Page 47: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

47

switch Statements

The switch-expression must yield a value of char, byte, short, or int type and must always be enclosed in parentheses.

switch (switch-expression) { case value1: statement(s)1; break; case value2: statement(s)2; break; … case valueN: statement(s)N; break; default: statement(s)-for-default;}

The value1, ..., and valueN must have the same data type as the value of the switch-expression.

Note that value1, ..., and valueN are constant expressions, meaning that they cannot contain variables in the expression.

Page 48: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

48

while Loopwhile (loop-continuation-condition)

{

// loop-body;

Statement(s);

}

int count = 0;

while (count < 100)

{

System.out.println("Welcome to Java!");

count++;

}

Loop Continuation Condition?

true

Statement(s) (loop body)

false (count < 100)?

true

System.out.println("Welcome to Java!"); count++;

false

(A) (B)

count = 0;

Page 49: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

49

do-while Loop

do

{

// Loop body;

Statement(s);

}

while (loop-continuation-condition);

Loop Continuation Condition?

true

Statement(s) (loop body)

false

Page 50: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

50

for Loopsfor (initial-action;

loop-continuation-condition; action-after-each-iteration)

{ // loop body; Statement(s);}

int i;for (i = 0; i < 100; i++) { System.out.println( "Welcome to Java!"); }

Loop Continuation Condition?

true

Statement(s) (loop body)

false

(A)

Action-After-Each-Iteration

Intial-Action

(i < 100)?

true

System.out.println( "Welcome to Java");

false

(B)

i++

i = 0

Page 51: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

51

Methods

Page 52: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

52

Methods

A method is a collection of statements that are grouped together to perform an operation.

public int max(int num1, int num2) {

int result; if (num1 > num2) result = num1; else result = num2; return result;

}

modifier return value type method name formal parameters

return value

method body

method header

parameter list

Define a method Invoke a method

int z = max(x, y);

actual parameters (arguments)

Page 53: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

53

Methods

• Modifier is like public, private and protected.

• returnType is the data type of the value the method returns.

• Some methods perform the desired operations without returning a value.

• In this case, the returnType is the keyword void.

Page 54: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

54

Methods

• Parameters are Variables which defined in the method header.

• Method body contains a collection of statements that define what the method does.

Page 55: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

55

Benefits of Methods

• Write a method once and reuse it anywhere.

• Information hiding: Hide the implementation from the user.

• Reduce complexity.

Page 56: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

56

Calling a Method

• If the method returns a value– int larger = max(3, 4);

• If the method returns void, a call to the method must be a statement.– System.out.println("Welcome to Java!");

Page 57: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

57

Overloading Methods

• The max method that was used earlier works only with the int data type.

• what if you need to find which of two floating-point numbers has the maximum value?

• The solution is to create another method with the same name but different parameters, This is referred to as method overloading.

Page 58: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

58

Overloading Methods, Cont.

• The Java compiler determines which method is used based on the method signature.

• You cannot overload methods based on different modifiers or return types only.

Page 59: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

59

Examplepublic class TestMethodOverloading {

/** Main method */ public static void main(String[] args) { // Invoke the max method with int parameters System.out.println("The maximum between 3 and 4 is "+ max(3, 4)); // Invoke the max method with the double parameters System.out.println("The maximum between 3.0 and 5.4 is"+ max(3.0,5.4)); } /** Return the max between two int values */ public static int max(int num1, int num2) { if (num1 > num2) return num1; else return num2; } /** Find the max between two double values */ public static double max(double num1, double num2) { if (num1 > num2) return num1; else return num2; } }

Page 60: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

60

Scope of Local Variables• A local variable: a variable defined inside a

method.• Scope: the part of the program where the

variable can be referenced.• The scope of a local variable starts from its

declaration and continues to the end of the block that contains the variable. A local variable must be declared before it can be used.

Page 61: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

61

Strings

• Strings are objects that are treated by the compiler in special ways:– Can be created directly using “xxxx”– Can be concatenated using +

String myName = “John Jones”;String hello;hello = “Hello World”;hello = hello + “!!!!”;int year = 2008;String s = “See you in China in “ + year;

Page 62: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

62

Arrays

Page 63: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

63

Arrays

• Array is used to store a collection of data of the same type.

• Instead of declaring individual variables, such as number0, number1, ..., and number99.

• You declare one array variable such as numbers and use numbers[0], numbers[1],

and ..., numbers[99] to represent individual variables.

Page 64: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

64

Arrays

5.6

4.5

3.3

13.2

4

34.33

34

45.45

99.993

11123

double[] myList = new double[10];

myList reference myList[0]

myList[1]

myList[2]

myList[3]

myList[4]

myList[5]

myList[6]

myList[7]

myList[8]

myList[9]

Element value

Array reference variable

Array element at index 5

Page 65: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

65

Arrays

• Declaring Array – dataType [] arrayRefVar;

• Example:– int[] arrayName;

• Creating Arrays − arrayRefVar = new dataType[arraySize];

• Example:− arrayName = new int[5];

Page 66: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

66

Arrays

• When we need to access the array we can do so directly as in: for (int i=0; i<5; i++){

System.out.println( arrayName[i] );} // end for

Page 67: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

67

Example

double[] myList = new double[10];for (int i = 1; i < myList.length; i++) {

myList[i]=i;}  

for (int i = 1; i < myList.length; i++) {

System.out.println(i);}

Page 68: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

68

Array Initializers

• Declaring, creating, initializing in one step:double [] myList = {1.9, 2.9, 3.4, 3.5};

• This shorthand syntax must be in one statement and it’s equivalent to the following statements:double [] myList = new double[4];

myList[0] = 1.9;

myList[1] = 2.9;

myList[2] = 3.4;

myList[3] = 3.5;

Page 69: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

69

Passing Arrays to Methodspublic static void printArray(int[] array) { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); }}

Invoke the method

int[] list = {3, 1, 2, 6, 4, 2};printArray(list);

Invoke the methodprintArray(new int[]{3, 1, 2, 6, 4, 2});

Anonymous array

Page 70: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

70

Returning an Array from a Method

public static int[] reverse(int[] list) { int[] result = new int[list.length];  for (int i = 0, j = result.length - 1; i < list.length; i++, j--) { result[j] = list[i]; }  return result;}

int[] list1 = {1, 2, 3, 4, 5, 6};int[] list2 = reverse(list1);

Page 71: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

71

Two-dimensional Arrays// Declare array ref vardataType[][] refVar;

// Create array and assign its reference to variablerefVar = new dataType[10][10];

// Combine declaration and creation in one statementdataType[][] refVar = new dataType[10][10];

// Alternative syntaxdataType refVar[][] = new dataType[10][10];

Page 72: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

72

Declaring Variables of Two-dimensional Arrays and Creating Two-dimensional Arrays

int[][] matrix = new int[10][10]; orint matrix[][] = new int[10][10];matrix[0][0] = 3;

for (int i = 0; i < matrix.length; i++) for (int j = 0; j < matrix[i].length; j++) matrix[i][j] = (int)(Math.random() * 1000);

Page 73: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

73

Declaring, Creating, and Initializing Using Shorthand

Notations

• You can also use an array initializer to declare, create and initialize a two-dimensional array. For example,

int[][] array = new int[4][3];array[0][0] = 1; array[0][1] = 2;

array[0][2] = 3; array[1][0] = 4; array[1][1] = 5;

array[1][2] = 6; array[2][0] = 7; array[2][1] = 8;

array[2][2] = 9; array[3][0] = 10; array[3][1] = 11;

array[3][2] = 12;

int[][] array = {

{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11,

12}};

Same as

Page 74: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

74

Lengths of Two-dimensional Arrays

x

x[0]

x[1]

x[2]

x[0][0] x[0][1] x[0][2] x[0][3] x[1][0] x[1][1] x[1][2] x[1][3] x[2][0] x[2][1] x[2][2] x[2][3]

x.length is 3

x[0].length is 4

x[1].length is 4

x[2].length is 4

int[][] x = new int[3][4];

Page 75: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

75

Lengths of Two-dimensional Arrays, cont.

int[][] array = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}};

array.lengtharray[0].lengtharray[1].lengtharray[2].lengtharray[3].length

array[4].length

ArrayIndexOutOfBoundsException

Page 76: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

76

Objects and Classes

Page 77: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

77

Objects

data field 1

method n

data field m

method 1

(A) A generic object

...

...

State (Properties)

Behavior

radius = 5

findArea()

Data field, State Properties

Method, Behavior

(B) An example of circle object

•An object has both a state and behavior.

•The state defines the object, and the behavior defines what the object does.

Page 78: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

78

Classes

• Classes are constructs that define objects of the same type.

• A Java class uses variables to define data fields and methods to define behaviors.

• Additionally, a class provides a special type of methods, known as constructors, which are invoked to construct objects from the class.

Page 79: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

79

Classes

class Circle { /** The radius of this circle */ double radius = 1.0; /** Construct a circle object */ Circle() { } /** Construct a circle object */ Circle(double newRadius) { radius = newRadius; } /** Return the area of this circle */ double findArea() { return radius * radius * 3.14159; }

}

Data field

Method

Constructors

Page 80: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

80

Constructors

Circle() {}

Circle(double newRadius) { radius = newRadius;}

Constructors are a special kind of methods that are invoked to construct objects.

Page 81: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

81

Constructors, cont.

• Constructor name is the same as the class name.

• Constructors do not have a return type—not even void.

• Constructors are differentiated by the number and types of their arguments.– An example of overloading

• If you don’t define a constructor, a default one will be created.

Page 82: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

82

Constructors, cont.

• A constructor with no parameters is referred to as a no-arg constructor.

• Constructors are invoked using the new operator when an object is created.

• Constructors play the role of initializing objects.

Page 83: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

83

Example

public class Circle { public static final double PI = 3.14159; // A constant public double r;// instance field holds circle’s radius

// The constructor method: initialize the radius field public Circle(double r) { this.r = r; }

// Constructor to use if no arguments public Circle() { r = 1.0; }

// The instance methods: compute values based on radius public double circumference() { return 2 * PI * r; } public double area() { return PI * r*r; }}

Page 84: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

84

Declaring Object Reference Variables

To reference an object, assign the object to a reference variable.To declare a reference variable, use the syntax:ClassName objectRefVar;

Example:Circle myCircle;

Page 85: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

85

Creating Objects Using Constructors

new ClassName();

Example:new Circle();new Circle(5.0);

Page 86: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

86

Declaring/Creating Objectsin a Single Step

ClassName objectRefVar = new ClassName();

Example:Circle myCircle = new Circle();

Page 87: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

87

Accessing Objects

• Referencing the object’s data:objectRefVar.data

myCircle.radius

• Invoking the object’s method: objectRefVar.methodName(arguments) myCircle.findArea()

Page 88: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

88

Visibility Modifiers and Accessor/Mutator Methods• By default, the class, variable, or method can

be accessed by any class in the same package.

• public: The class, data, or method is visible to any class in any package.

• private: The data or methods can be accessed only by the declaring class.The get and set methods are used to read and modify private properties.

Page 89: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

89

Why Data Fields Should Be private?

• To protect data.• To make class easy to maintain.

Page 90: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

90

Java Scoping Visibility

Page 91: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

91

Examplepublic class Student { private int id; private BirthDate birthDate;

public Student(int ssn, int year, int month, int day) { id = ssn; birthDate = new BirthDate(year, month, day); }

public int getId() { return id; }

public BirthDate getBirthDate() { return birthDate; }}

public class BirthDate { private int year; private int month; private int day; public BirthDate(int newYear, int newMonth, int newDay) { year = newYear; month = newMonth; day = newDay; } public void setYear(int newYear) { year = newYear; }}

public class Test { public static void main(String[] args) { Student student = new Student(111223333, 1970, 5, 3); BirthDate date = student.getBirthDate(); date.setYear(2010); // Now the student birth year is changed! }}

Page 92: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

92

Instance Variables, and Methods

• Instance variables belong to a specific instance.

• Instance methods are invoked by an instance of the class.

Page 93: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

93

Scope of Variables

• The scope of instance and class variables is the entire class. They can be declared anywhere inside a class.

• The scope of a local variable starts from its declaration and continues to the end of the block that contains the variable. A local variable must be initialized explicitly before it can be used.

Page 94: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

94

The this Keyword

• Use this to refer to the object that invokes the instance method.

• Use this to refer to an instance data field.• Use this to invoke an overloaded

constructor of the same class.

Page 95: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

95

Example

public class Circle { private double radius; public Circle(double radius) { this.radius = radius; } public Circle() { this(1.0); } public double findArea() { return this.radius * this.radius * Math.PI; } }

Every instance variable belongs to an instance represented by this, which is normally omitted

this must be explicitly used to reference the data field radius of the object being constructed

this is used to invoke another constructor

Page 96: JAVA BASICS Eng. Amr Nagy. 2 Getting Started The java Development Kit-JDK. In order to get started in java programming, one needs to get a recent copy

96

Questions