This repository provides teaching materials for Java training.
Following issues are introduced step by step at each commit. Please use the links provided to see code examples of the aforementioned issue.
- Hello World example for calling a java program from terminal.
- Variables are described. Primitive & Hierarchical types are examplified.
- Methods are described for return types and void types.
- Packages, which allows storing classes in their respected package hierarchy, is introduced.
- Access Modifiers, which allows classes, methods, and variables visibility from different packages, classes, and methods, are introduced.
- Program Flow using following capabilities are introduced:
- Arithmetic operators can be found in Arithmetic Operators Package
- Assignment operators can be found in Assignment Operators Package
- Relational operators can be found in Relational Operators Package
- Logical operators can be found in Logical Operators Package
- Decision operators can be found in Decision Operators Package
- Exceptions is examplified using mathematical operands and tested via unit tests.
- Constructors are defined. Default constructor and custom constructors are introduced.
- Classes & Objects A simple code for creating a class and and instantiating objects. (New keyword:
static
) - Object Oriented Concepts
- Aggregation concepts introduced in the Aggregation Package. (Test classes are under here)
- Inheritence concepts introduced in the Inheritance Package. (Test classes are under here) (New keywords:
extends
, andinstanceof
) - Polymorphism concepts introduced in the Polymorphism Package. (Test classes are under here) (New keywords:
@Override
,final
,this
, andsuper
) - Abstraction concepts introduced in the Abstraction Package. (Test classes are under here) (New keywords:
interface
,abstract
, andimplements
)
- Enumeration class is introduced with example cases. (New keywords:
enum
, andordinal
) - String class is introduced with example cases. (New keywords:
String
,StringBuilder
andStringBuffer
) - Pattern and Matcher class is introduced with example cases. (New keywords:
Pattern
,Matcher
,group
,compile
andregex
) - Date and Calendar class is introduced with example cases. (New keywords:
Date
,before
,after
,getDisplayname
, andGregorian Calendar
)
- Collections is introduced with its application classes.
- List concept and its application classes are in the Arrays & Lists Package. (Test classes are under here) (New keywords:
Array
,List
,LinkedList
andArrayList
) - Queue concept and its application classes are in the Queues Package. (Test classes are under here) (New keywords:
Queue
,ArrayQueue
,PriorityQueue
andStack
) - Set concept and its application classes are in the Sets Package. (Test classes are under here) (New keywords:
Set
,HashSet
, andTreeSet
) - Collections real world example cases can be found here.
- List concept and its application classes are in the Arrays & Lists Package. (Test classes are under here) (New keywords:
- Lambda is introduced. (New keywords:
@FunctionalInterface
,lambda
, andrunnable
) - Streams is introduced with its application classes. (New keywords:
Stream
,foreach
,filter
,count
,limit
,IntStream
, and much more)