ANDROID COURSE
WITH JAVA
Developed by Keroles Magdy
keroles.m.yacoub@gmail.com
2019 ©
Session topics :-
• Nested Classes in Java.
• Lambda Expressions.
• Multithreading.
• Socket Programming.
Nested Classes in Java :-
• Nested Classes in Java, it means define a class within another class.
• It is useful for encapsulation, create more readable and maintainable code.
Nested Class
Nested Class
Inner Class
(Non-static
nested class
Local
Classes
Anonymous
Classes
Nested Classes in Java :-
• Static Nested Class : cannot refer directly to instance variables or
methods defined in its enclosing class: it can use them only through an
object reference.
• Syntax : OuterClass.StaticNestedClass nestedObject = new
OuterClass.StaticNestedClass();
• inner class : to instantiate an inner class, you must first instantiate the
outer class. Then, create the inner object within the outer object.
• Syntax : OuterClass.InnerClass innerObject = outerObject.new
InnerClass();
Nested Classes in Java :-
• Static Nested Class.
• EX :
class OuterClass
{
int outer_y = 20;
static class StaticNestedClass
{
void display() { System.out.println("outer_y = " + outer_y); }
}
}
Nested Classes in Java :-
• Calling :
public static void main(String[] args)
{
OuterClass.StaticNestedClass nestedObject = new
OuterClass.StaticNestedClass();
nestedObject.display();
}
Nested Classes in Java :-
• Local Inner Classes.
• EX :
class OuterClass
{
int outer_y = 20;
class InnerClass
{
void display() { System.out.println("outer_y = " + outer_y); }
}
}
Nested Classes in Java :-
• Calling :
public static void main(String[] args)
{
OuterClass outerObject = new OuterClass();
OuterClass.InnerClass innerObject = outerObject.new InnerClass();
innerObject.display();
}
Nested Classes in Java :-
• Anonymous class, is an inner class without a name and for which only a
single object is created.
• EX :
Age A1= new Age() {
@Override
public void getAge() {
System.out.print("Age is "+x);
}
};
Break
Lambda Expressions :-
• Lambda expressions, express instances of functional interfaces (An
interface with single abstract method is called functional interface).
• lambda expressions are added in Java 8.
• Syntax :
(int arg1, int arg2) -> {System.out.println(“Sum =“+(arg1+arg2));}
Arrow token
Body of Lambda expression
( body )
Argument List
(lambda operator)
Lambda Expressions :-
• EX :
• Zero parameter:
() -> {System.out.println("Zero parameter lambda");}
• One parameter:
(p) -> {System.out.println("One parameter lambda" +p);}
• Multiple parameters:
(p1,p2) -> {System.out.println("Multiple parameters lambda" +p1+ " " +p2);}
Multithreading :-
• Thread, allows concurrent execution of two or more process simultaneously.
• It doesn't block the user because threads are independent and you can
perform multiple operations at the same time.
• Threads can be created by using two mechanisms :
1. Extending the Thread class.
2. Implementing the Runnable Interface.
Multithreading :-
• EX:
class Multi extends Thread{
public void run(){
System.out.println("thread is running...");
}
public static void main(String args[]){
Multi t1=new Multi();
t1.start();
}
}
Multithreading :-
• EX:
class Multi3 implements Runnable{
public void run(){
System.out.println("thread is running...");
}
public static void main(String args[]){
Multi3 m1=new Multi3();
Thread t1 =new Thread(m1);
t1.start();
}
}
Socket Programing :-
• Java Socket programming is used for communication between the
applications running on different JRE.
• Socket and ServerSocket classes are used for connection-oriented socket
programming
Server Port Client Port
Socket Programing :-
• one-way client and server communication
the End

Android course session 5 (Threads & socket)

  • 1.
    ANDROID COURSE WITH JAVA Developedby Keroles Magdy keroles.m.yacoub@gmail.com 2019 ©
  • 2.
    Session topics :- •Nested Classes in Java. • Lambda Expressions. • Multithreading. • Socket Programming.
  • 3.
    Nested Classes inJava :- • Nested Classes in Java, it means define a class within another class. • It is useful for encapsulation, create more readable and maintainable code. Nested Class Nested Class Inner Class (Non-static nested class Local Classes Anonymous Classes
  • 4.
    Nested Classes inJava :- • Static Nested Class : cannot refer directly to instance variables or methods defined in its enclosing class: it can use them only through an object reference. • Syntax : OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass(); • inner class : to instantiate an inner class, you must first instantiate the outer class. Then, create the inner object within the outer object. • Syntax : OuterClass.InnerClass innerObject = outerObject.new InnerClass();
  • 5.
    Nested Classes inJava :- • Static Nested Class. • EX : class OuterClass { int outer_y = 20; static class StaticNestedClass { void display() { System.out.println("outer_y = " + outer_y); } } }
  • 6.
    Nested Classes inJava :- • Calling : public static void main(String[] args) { OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass(); nestedObject.display(); }
  • 7.
    Nested Classes inJava :- • Local Inner Classes. • EX : class OuterClass { int outer_y = 20; class InnerClass { void display() { System.out.println("outer_y = " + outer_y); } } }
  • 8.
    Nested Classes inJava :- • Calling : public static void main(String[] args) { OuterClass outerObject = new OuterClass(); OuterClass.InnerClass innerObject = outerObject.new InnerClass(); innerObject.display(); }
  • 9.
    Nested Classes inJava :- • Anonymous class, is an inner class without a name and for which only a single object is created. • EX : Age A1= new Age() { @Override public void getAge() { System.out.print("Age is "+x); } };
  • 10.
  • 11.
    Lambda Expressions :- •Lambda expressions, express instances of functional interfaces (An interface with single abstract method is called functional interface). • lambda expressions are added in Java 8. • Syntax : (int arg1, int arg2) -> {System.out.println(“Sum =“+(arg1+arg2));} Arrow token Body of Lambda expression ( body ) Argument List (lambda operator)
  • 12.
    Lambda Expressions :- •EX : • Zero parameter: () -> {System.out.println("Zero parameter lambda");} • One parameter: (p) -> {System.out.println("One parameter lambda" +p);} • Multiple parameters: (p1,p2) -> {System.out.println("Multiple parameters lambda" +p1+ " " +p2);}
  • 13.
    Multithreading :- • Thread,allows concurrent execution of two or more process simultaneously. • It doesn't block the user because threads are independent and you can perform multiple operations at the same time. • Threads can be created by using two mechanisms : 1. Extending the Thread class. 2. Implementing the Runnable Interface.
  • 14.
    Multithreading :- • EX: classMulti extends Thread{ public void run(){ System.out.println("thread is running..."); } public static void main(String args[]){ Multi t1=new Multi(); t1.start(); } }
  • 15.
    Multithreading :- • EX: classMulti3 implements Runnable{ public void run(){ System.out.println("thread is running..."); } public static void main(String args[]){ Multi3 m1=new Multi3(); Thread t1 =new Thread(m1); t1.start(); } }
  • 16.
    Socket Programing :- •Java Socket programming is used for communication between the applications running on different JRE. • Socket and ServerSocket classes are used for connection-oriented socket programming Server Port Client Port
  • 17.
    Socket Programing :- •one-way client and server communication
  • 18.