Learn Java in 2 days

36
Learn Java in 2 days By Ahmed Ali Ali © 2013 Email : [email protected] [email protected] 1 By Ahmed Ali Ali © 2013

Transcript of Learn Java in 2 days

Page 1: Learn Java in 2 days

By Ahmed Ali Ali © 2013 1

Learn Java in 2 days

By Ahmed Ali Ali © 2013

Email : [email protected] [email protected]

Page 2: Learn Java in 2 days

By Ahmed Ali Ali © 2013 2

Agenda

First day

•Introduction

•Class Declarations & Modifiers

•Wrapper Classes

•Handling Exceptions

•immutable

•StringBuffer, and StringBuilder

•Tokenizing

•Quiz

Second day (soon)

•File I/O

•inner class

•Threads

•Collections

•Utility Classes: Collections and Arrays

•Generics

•Quiz

Page 3: Learn Java in 2 days

By Ahmed Ali Ali © 2013 3

Introduction

• Java is an object-oriented programming language .

• Java was started as a project called "Oak" by James Gosling in June1991. Gosling's

goals were to implement a virtual machine and a language that had a familiar C-

like notation but with greater uniformity and simplicity than C/C++. The first

public implementation was Java 1.0 in 1995

• The language itself borrows much syntax from C and C++ but has a

simpler object model and fewer low-level facilities.

• Java Is Easy to Learn

Page 4: Learn Java in 2 days

By Ahmed Ali Ali © 2013 4

Complete List of Java Keywords

Page 5: Learn Java in 2 days

By Ahmed Ali Ali © 2013 5

My First Java Program

Page 6: Learn Java in 2 days

By Ahmed Ali Ali © 2013 6

Class Declarations • Source File Declaration Rules

o only one public class per source code file.

o A file can have more than one nonpublic class.

o If there is a public class in a file, the name of the file must match the name of the

public class.

o If the class is part of a package, the package statement must be the first line in

the source code file, before any import statements that may be present

o import and package statements apply to all classes within a source code file.

Page 7: Learn Java in 2 days

By Ahmed Ali Ali © 2013 7

Class Access(Class Modifiers)• What does it mean to access a class?

• Class Modifierso Public Access

o Default Access

• Other (Non access) Class Modifierso Final Classes

o Abstract Classes

package cert;Public class Beverage { }

package cert;class Beverage { }

package cert;Final class Beverage { }

package cert;Abstract class Beverage { }

Page 8: Learn Java in 2 days

By Ahmed Ali Ali © 2013 8

Declare Interfaces

• An interface must be declared with the keyword interface.

• All interface methods are implicitly public and abstract. In other words, you do not need to actually

type the public or abstract .

• Interface methods must not be static.

• Because interface methods are abstract, they cannot be marked final,

• All variables defined in an interface must be public, static, and final.

• An interface can extend one or more other interfaces.

• An interface cannot implement another interface or class.

Page 9: Learn Java in 2 days

By Ahmed Ali Ali © 2013 9

Declare Class Members•We've looked at what it means to use a modifier in a class declaration, and now we'll look at what it means to modify a method or variable declaration.

• Access Modifiers

o publico protectedo defaulto private

• Nonaccess Member Modifiers

o Final and abstracto Synchronized methods

Page 10: Learn Java in 2 days

By Ahmed Ali Ali © 2013 10

Determining Access to Class Member

Page 11: Learn Java in 2 days

By Ahmed Ali Ali © 2013 11

Develop Constructors• The constructor name must match the name of the class.

• If you don't type a constructor into your class code, a default constructor will be

automatically generated by the compiler.

• Constructors must not have a return type.

• Constructors can use any access modifier,

• Every class, including abstract classes, MUST have a constructor.

• constructors are invoked at runtime when you say new on some class.

Page 12: Learn Java in 2 days

By Ahmed Ali Ali © 2013 12

Variable Declarations• There are two types of variables in Java:

o Primitives : A primitive can be one of eight types: char, boolean, byte,

short, int, long, double, or float. Once a primitive has been declared, its

primitive type can never change, although in most cases its value can

change.

o Reference variables : A reference variable is used to refer to (or

access) an object. A reference variable is declared to be of a specific

type and that type can never be changed.

• Note :

o It is legal to declare a local variable with the same name as an instance

variable; this is called "shadowing."

Page 13: Learn Java in 2 days

By Ahmed Ali Ali © 2013 13

Variable Scope

Page 14: Learn Java in 2 days

By Ahmed Ali Ali © 2013 14

if and switch Statements• The only legal expression in an if statement is a boolean expression.

• Curly braces are optional for if blocks that have only

one conditional statement.

• switch statements can evaluate only to enums or the

byte, short, int, and char data types. You can't say,

Page 15: Learn Java in 2 days

By Ahmed Ali Ali © 2013 15

Ternary (Conditional Operator)• Returns one of two values based on whether a boolean expression is true or false.

• Returns the value after the ? if the expression is true.

• Returns the value after the : if the expression is false.

x = (boolean expression) ? value to assign if true : value to assign if false

Page 16: Learn Java in 2 days

By Ahmed Ali Ali © 2013 16

String Concatenation Operator• If either operand is a String, the + operator concatenates the operands.

• If both operands are numeric, the + operator adds the operands.

Page 17: Learn Java in 2 days

By Ahmed Ali Ali © 2013 17

Overloading & Overriding• Abstract methods must be overridden by the first concrete (subclass).

• final methods cannot be overridden.

• Only inherited methods may be overridden, and remember that private methods

are not inherited.

• A subclass uses super. overriddenMethodName() to call the superclass version of

an overridden method.

• Object type (not the reference variable's type), determines which overridden

method is used at runtime.

Page 18: Learn Java in 2 days

By Ahmed Ali Ali © 2013 18

Overloading & Overriding (cont’)

• Methods from a superclass can be overloaded in a subclass.

• constructors can be overloaded but not overridden.

• Overloading means reusing a method name, but with different arguments.

• Overloaded methods.o Must have different argument listso May have different return types, if argument lists are also differento May have different access modifierso May throw different exceptions

• Polymorphism applies to overriding, not to overloading.

• Reference type determines which overloaded method will be used at compile time.

Page 19: Learn Java in 2 days

By Ahmed Ali Ali © 2013 19

Stack and Heap—Quick Review• understanding the basics of the stack and the heap makes it far easier to understand topics like argument passing, threads, exceptions,

• Instance variables and objects live on the heap.

• Local variables live on the stack.

Page 20: Learn Java in 2 days

By Ahmed Ali Ali © 2013 20

Wrapper Classes•What’s consept of Wrapper Class ?

•The wrapper classes correlate to the primitive types

•The three most important method families areo xxxValue() Takes no arguments, returns a primitiveo parseXxx() Takes a String, returns a primitiveo valueOf() Takes a String, returns a wrapped object

Page 21: Learn Java in 2 days

By Ahmed Ali Ali © 2013 21

Handling Exceptions• The term "exception" means "exceptional condition" and is an occurrence that

alters the normal program flow.

• Exception handling allows developers to detect errors easily without writing

special code to test return values.

• A bunch of things can lead to exceptions, including hardware failures, resource

exhaustion, and good old bugs.

When an exceptional event occurs in Java, an exception is said to be "thrown." The code that's responsible for doing something about the exception is called an "exception handler," and it "catches" the thrown exception.

Page 22: Learn Java in 2 days

By Ahmed Ali Ali © 2013 22

Handling Exceptions (cont’)

Example :

Page 23: Learn Java in 2 days

By Ahmed Ali Ali © 2013 23

Assertion Mechanism• the assertion mechanism, added to the language with version 1.4, gives you

a way to do testing and debugging checks on conditions you expect to smoke out

while developing,

• writing code with assert statement will help you to be better programmer

and improve quality of code, yes this is true based on my experience when we

write code using assert statement we think through hard, we think about possible

input to a function, we think about boundary condition which eventually result in

better discipline and quality code.

• "If" is a conditional operator with a specific loop syntax. It can be followed with the

loop continuation syntax "else". The "Assert" keyword will throw a run-time error if

the condition of the loop returns 'false' and is used for conditional validation(parameter checking).

Assertions are mainly used to debug code and are generally removed in a live product. Both "If" &

"Assert" evaluate a Boolean condition.

Page 24: Learn Java in 2 days

By Ahmed Ali Ali © 2013 24

Assertion Mechanism

Use assertions for internal logic checks within your code, and normal exceptions for error conditions outside your immediate code's control.

Really simple:

private void doStuff() {

assert (y > x);

// more code assuming y

//is greater than x

}

Simple:

private void doStuff() {

assert (y > x): "y is " + y + " x is " + x;

// more code assuming y is greater than x

}

Page 25: Learn Java in 2 days

By Ahmed Ali Ali © 2013 25

immutable• an immutable object is an object whose state cannot be modified after it is

created

•Strings Are Immutable Objects

Page 26: Learn Java in 2 days

By Ahmed Ali Ali © 2013 26

StringBuffer, and StringBuilder• The java.lang.StringBuffer and java.lang.StringBuilder classes should

be used when you have to make a lot of modifications to strings of

characters

• StringBuilder is not thread safe. In other words, its

methods are not synchronized.

• StringBuilder runs faster.

Page 27: Learn Java in 2 days

By Ahmed Ali Ali © 2013 27

Dates, Numbers, and Currency

• Here are the date related classes you'll need to understand.

o java.util.Date

o java.util.Calendar

o java.text.DateFormat

o java.text.NumberFormat

o java.util.Locale

Page 28: Learn Java in 2 days

By Ahmed Ali Ali © 2013 28

Dates, Numbers, and Currency (cont’)

Page 29: Learn Java in 2 days

By Ahmed Ali Ali © 2013 29

Dates, Numbers, and Currency (cont’)

Page 30: Learn Java in 2 days

By Ahmed Ali Ali © 2013 30

A Search Tutorial • To find specific pieces of data in large data sources, Java provides several mechanisms that use the concepts of regular expressions (Regex). Simple Searches we'd like to search through the following source String (abaaaba) for all occurrences (or matches) of the expression (ab) .

• What the result if we search on (aba) inside the String (abababa) ?

Page 31: Learn Java in 2 days

By Ahmed Ali Ali © 2013 31

A Search Tutorial (cont’) [abc] Searches only for a's, b's or c's

[a-f] Searches only for a, b, c, d, e, or f characters

\d A digit

\s A whitespace character

\w A word character (letters, digits, or "_" (underscore))

the quantifier that represents "one or more" is the "+" (Ex. \d+)

Example :

source: "a 1 56 _Z"

index: 012345678

pattern: \w

In this case will return positions 0, 2, 4, 5, 7, and 8.

Page 32: Learn Java in 2 days

By Ahmed Ali Ali © 2013 32

Tokenizing• Tokenizing is the process of taking big pieces of source data, breaking

them into little pieces, and storing the little pieces in variables.

Tokens and Delimiters

source: "ab,cd5b,6x,z4"

If we say that our delimiter is a comma, then our four tokens would be

ab

cd5b

6x

z4

Page 33: Learn Java in 2 days

By Ahmed Ali Ali © 2013 33

Tokenizing (cont’)Tokenizing with String.split()

Page 34: Learn Java in 2 days

By Ahmed Ali Ali © 2013 34

Quiz

Page 35: Learn Java in 2 days

By Ahmed Ali Ali © 2013 35

Questions

Page 36: Learn Java in 2 days

By Ahmed Ali Ali © 2013 36

Thanks