Java for Android™ Training Course

Training » All Courses » Android » Java for Android™

Course Summary

The Java™ for Android course serves as an introduction to the Java language and object oriented programming (OOP) in Java, specifically designed for folks that wish to get into Android development. The course provides students with the skills for analyzing, designing, developing, and troubleshooting Android application witten in Java language.

The participants learn the syntax and the constructs of the Java programming language, the concepts behind object-oriented programming (OOP) with Java, packaging, Java documentation, exception handling, Java libraries (I/O, utilities, networking), and concurrent programming with Java threads.

[top] Duration

3 days.

[top] Objectives

Upon completion of this course, the students will be able to:

  • Explain what Java is, what it is composed of, how it compares to other programming environments, what its advantages are, and how to install and configure the Eclipse development environment.
  • Read as well as write Java syntax, including declarations, assignments, operators, flow-control structures, generics, annotations, enumerations, naming conventions, etc.
  • Understand object oriented programming principles, explain how OOP differs from structural programming, and discuss the advantages of OOP
  • Utilize OOP in Java by designing and writing Java classes, encapsulating logic, reusing existing code through inheritance/polymorphism and composition, and modeling real-world relationships between objects
  • Package and organize Java code into classes and libraries (JARs)
  • Read, understand, and write Java code documentation (JavaDoc)
  • Define and handle error conditions in Java through the use of exceptions
  • Leverage Java libraries (I/O, Utilities, Collections, Networking)
  • Analyze and troubleshot complex Java programs
  • Use best-practice design patterns when developing Java code

[top] Audience

Java™ for Android course is intended for individuals who wish to learn how to design, build, debug, and support Android applications written in Java language.

[top] Prerequisites

This course is designed for software developers who have background in either procedural or object oriented programming languages. To get the full value from this course, the participants should be able to:

  • Define common computer terminology
  • Solve basic mathematical or technical computer problems
  • Understand the concept of a variable, flow control constructs, and functions
  • Execute commands using a command-line interface

[top] Instructors

Photo
Dan Rosen believes in beautiful code. Beautiful code is understandable and maintainable, it is self-documenting and self-testing, it is robust and scalable, it can be composed and reused. Beautiful code doesn't come around every day, and even the most elegant code can still have its warts, but when you see beautiful code, you know it.

For twelve years, Dan has been doing his best to write and help others write some damn fine code. Dan is author of Marakana's Scala Fundamentals course, the latest addition the the Marakana course catalog. Before joining Marakana, he worked as a Developer Advocate at Atlassian, teaching developers how to write plugins for Atlassian's collaboration and development tools. Prior to Atlassian, Dan worked in both engineering and sales for Coverity, helping developers maintain code quality using Coverity's sophisticated static and dynamic analysis tools.

Between Coverity, Atlassian and Marakana, his tutorials have covered C/C++ best practices, Java web development (including Maven, Spring, OSGi, Guava, and RESTful web services using Jersey and Jackson), front-end development using jQuery, and functional programming with Scala.

Dan's latest hobby is lurking on StackOverflow as user "mergeconflict," waiting for tricky Haskell and Scala language questions to jump on. More about Dan Rosen...
Photo

Ken Jones has thousands of in-class hours teaching advanced technical topics, and over 20 years experience in technical training and documentation targeted towards software developers. Ken has delivered training to various software development teams within the Fortune 1000 such as Cisco, Intel, IBM, Boeing, AT&T, Ericsson/Nokia, and many more. Ken's expertise spans multiple areas of software development; he has trained teams in Java, Javascript, Android, and advanced web development with HTML, CSS, and XML.

More about Ken Jones...

[top] Outline

About Java (1/8 day)

  • History of Java
  • What is Java?
  • Why Java?
  • State of Java today

HelloWorld in Java (1/4 day)

  • Installing and configuring Java Virtual Machine
  • Implementing HelloWorld in Java (lab)
  • Java class/file structure and naming conventions
  • Java keywords and identifiers
  • Compiling and running Java programs
  • Comments in Java code
  • The main() method
  • Installing, configuring, and using the Eclipse IDE

Data Types (1/8 day)

  • Declaring and assigning variables
  • Primitive Java types
  • Conversion between types
  • Introduction to arrays and strings
  • Varargs
  • Typesafe enums

Operators (1/8 day)

  • Arithmetic operators - including shortcut operators
  • Relational operators
  • Logical-boolean operators
  • Bitwise operators
  • Assignment operators
  • Additional operators
  • Operator precedence

Flow Control (1/4 day)

  • Local variable storage: stack
  • Branching statements: if-else and switch
  • Loop statements: while, for, for-each
  • Break and continue statements - including labeled
  • Return statement

Object Oriented Programming (5/8 day)

  • What is OOP?
  • Why OOP?
  • Class vs. Object
  • OOP in Java: classes, fields, objects, methods
  • Java memory model and garbage collection
  • Static vs. instance data and methods
  • Constructors - including constructor and method overloading
  • Constants
  • Encapsulation through access modifiers
  • Inheritance / in Java
    • Types and subtypes
  • Interfaces and abstract classes / in Java
  • Annotations (metadata)
  • java.lang.Object: super class of them all
    • Object Equality: equals() and hashCode() methods
    • Converting objects to strings: toString() method

Packaging (1/8 day)

  • Reasons for packaging code
  • Packages and sub-packages in Java
  • Protecting package namespace
  • Using packaged code
  • Protecting packaged code
  • Java Archive (JAR)
  • Static imports

JavaDoc (1/8 day)

  • Overview of JavaDoc
  • Reading Java APIs
  • Defining and generating JavaDoc

Exception Handling (1/4 day)

  • What are exceptions?
  • Why exceptions?
  • Built-in exceptions
  • Exception life-cycle
  • Handling exceptions
  • Throwing exceptions
  • Exception types: checked vs. unchecked
  • Creating new exceptions
  • Grouping and nesting exceptions

Core Java library: java.lang package (3/8 day)

  • Primitive wrappers
    • Auto boxing and unboxing
  • String and StringBuffer/StringBuilder
  • java.lang.Math
  • java.lang.System
  • Multi-threaded programming in Java

Java I/O library: java.io package (1/8 day)

  • Managing files
  • Byte and character streams
  • Filtered streams
  • Object serialization

Java Collections and Utilities library: java.util package (1/4 day)

  • Collections Framework
    • java.util.Collection
    • java.util.Iterator
    • java.util.List
    • java.util.Set
    • java.util.Queue
    • java.util.Map
  • Java 5 Generics
  • PRNG in Java: java.util.Random
  • String parsing and matching - including java.util.regex
  • Date, Calendar, TimeZone

Java Networking library: java.net package (1/4 day)

  • Using java.net.URL connections
  • Client-socket programming with java.net.Socket
  • Going beyond java.net.HttpURLConnection with Apache's HTTP Client