Name
Java Fundamentals for Android

Code
3952

Duration
16 Hours

Description
Applications for the Android platform are developed primarily in Java. This course was developed for software programmers with a strong OOP background (whether in PHP, Scala, C++, C# or Objective C) that plan to learn how to develop Java applications for the android platform. This course covers the Java programming language grammar and focuses on those specific Java capabilities the android platform uses more than others.

Population
Experienced object oriented programmers.

Objectives
Acquire the required basic knowledge in Java in order to learn how to develop Java applications for the android platform.

Prerequisites
Practical object oriented experience in one of the following programming languages: C++, Scala, C#, PHP or Objective C.

Topics
Let's Start
History
JVM
JDK
JRE
Hello World
JavaDoc
Classes & Packages
API Documentation
The Basic
Java comparing with C++
Simple Output
Remarks
Native Data Types
Variables
Keywords
Identifiers
Expressions & Operators
Simple & Compound Statements
Control Statements
Looping Statements
Assignments
Local Variables
Assertion
Annotations
Introduction to OOP
Software Development Cycle
Objects & Classes
Key Features of OOP
Relationships between Objects
Object Oriented Programming
Objects Classes & Class Type Variables
Declaring Classes
Class Type Variables
Calling a Method
The 'this' Special Keyword
Class Declaration
Declaring Attributes
Declaring Methods
Methods Overloading
Declaring Constructors
Default Constructors
Overloading Constructors
Using 'this' within Constructors
Static Variables
Static Methods
Static Initializers
Final Variables
Software Packages
Package Statement
The 'import' Statement
Declaring Enums
Java API Documentation
Arrays & Strings
Array of Native Type Values
Array of Objects
Square Brackets Position
Copying Array Values
Multi Dimensional Array
The 'length' Variable
The 'String' Class
Instantiating String
Comparing Strings
The 'toString()' Method
The StringBuffer Class
The StringBuilder Class
The StringTokenizer Class
Passing Arguments to 'main' Method
Inheritance
Introduction to Inheritance
Inheritance in Java
Derivation Syntax
Inheritance Meaning
Constructors & Inheritance
Access Modifiers
Overriding Methods
Polymorphism
Constructors & 'super' Keyword
Abstract Class
Interfaces
The 'instanceof' Operator
Casting References
Deprecated Methods
The 'object' Class
Inner Classes
Inner Classes Types
In-Depth Meaning
Inner Classes within Methods
Annonymous Inner Class
Static Inner Class
Exceptions Handling
The Exceptions Handling Mechanism
Exceptions Classes Hierarchy
Three Types of Exceptions
Try&Catch Statement
The 'throw' Command
The Throwing Chain
The 'finally' Block
The 'throws' Adding
The 'Handle or Declare' Rule
Methods Overloading
Samples
Threads Basics
What is a Thread?
The Thread Parts
Creating New Thread
Starting The Thread
Multiple Threads
I/O Streams
Java I/O Overview
I/O Streams Categories
Byte & Char Streams
The InputStream Abstract Class
The OutputStream Abstract Class
Writing/Reading To/From Files
Generics
Introduction
Subtypes
Wildcards
Collections
Introduction
Performance
Set
List
Queue
Map
Lambda Expressions
Introduction
Methods References
Reference to Static Method
Reference to Instance Method
Reference to Instance Method of Arbitrary Object
Reference to Constructor