Java Training Course/Example Programs: Difference between revisions

From tehowiki
Jump to navigation Jump to search
imported>Gfis
Shape
imported>Gfis
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
All example Java programs can be obtained from a Git repository:
During the training course we developped about 60 Java example programs which use the Java language features to be learned. These programs can all be obtained from the '''Git repository''' for the training course by the command:
  git clone https://github.com/gfis/jtc
  git clone https://github.com/gfis/jtc
===Start with a greeting===
===Start with a greeting===
Line 53: Line 53:
* '''WalkFileTree''' - run through a file directory with a subclass of ''FileVisitor'' and print the entries
* '''WalkFileTree''' - run through a file directory with a subclass of ''FileVisitor'' and print the entries
===Developper Information===
===Developper Information===
* '''SystemProps''' - show the Java sysstem properties, the environment variables with their values, and the components of the system path
* '''SystemProps''' - show the Java system properties, the environment variables with their values, and the components of the system path
* '''TestRegex''' - input a Java regular expression and try to match test texts in a loop
* '''TestRegex''' - input a Java regular expression and try to match test texts in a loop
** '''TestRegexSwing, AboutTestRegex''' - Swing GUI version thereof
** '''TestRegexSwing, AboutTestRegex''' - Swing GUI version thereof
===Subclasses and Factories===
===Subclasses and Factories===
* '''Shape''' - class defining common properties and methods for geometrical forms, with output as an SVG (scalable vector graphics) file
* '''Shape''' - class defining common properties and methods for geometrical forms, with output as an SVG (scalable vector graphics) file
* '''ShapeFactory''' - Factory pattern returning an instance of a ''Shape''
* '''ShapeFactory''' - Factory pattern returning an instance of a ''Shape''
* '''Circle, Square, Triangle, Hexagon''' - implementation of specific ''Shape''s and their SVG representation
* '''Circle, Square, Triangle, Hexagon''' - implementation of specific ''Shape''s and their SVG representation
===Team collaboration===
* '''CheckIBAN''' - compute and check the checkdigits of an International Bank Account Number,
** '''CheckIBANFilter''' - check a text file with many IBANs
** '''CheckIBANSwing''' - GUI for checking a single IBAN

Latest revision as of 20:41, 11 February 2018

During the training course we developped about 60 Java example programs which use the Java language features to be learned. These programs can all be obtained from the Git repository for the training course by the command:

git clone https://github.com/gfis/jtc

Start with a greeting

  • HelloWorld - one-liner: output a greeting

Arguments, assignment, elementary String and arithmetic operations

  • StringAdd - concatenate argument strings 4 times and print them out
  • IntAdd - add 4 integers 4 times and print them
    • IntMultiply - multiply 4 integers 4 times and print the product
    • LongMultiply - multiply 4 long numbers

Loops (while, for) and conditions (if), arrays ([])

  • PowersOf2 - print the powers of 2
    • PowersOf2Check - check for increasing sequence
    • PowersOf2Backwards - print sequence backwards
    • PowersOf2Array - print sequence from an array

Sequences of conditions with switch, if - then - else if ...

  • Selamat - print a greeting depending on the hour
    • SelamatSwitch - same with switch ... case ... default
  • Number10 - print the numbers 1..10
    • Number10Method - print the numbers using a class method
  • Month - print the indonese name of a month
  • Weekday - print the indonese name of a weekday

Sequences of words

  • Word1 - print all words with 1 letter
    • Word2 - print all words with 2 letters by 2 nested loops
    • Word3 - print all words with 3 letters
  • Word3Cond1 - print words with 3 letters and vowel/consonant conditions, first version
    • Word3Cond2 - same, using a method, 2nd version
    • Word3Cond3 - same, output on a single line, 3rd version

Filtering files

A filter program reads a file, modifies all lines somehow, and writes them to another file.

  • Filter1 - read a file and replace the vowels in each line
  • FilterNumber - read a file and replace all digits by their indonese number words
  • FilterMulti3 - read the modified output of Word3Cond3 and colorize the known words

Date and Calendars

  • Age - enter a birthday and compute the elapsed years, months ... seconds up to now

Fractional arithmetic

  • GreatestCommonDivisor - the first real algorithm
  • Ratio - introduction to object oriented programming (static version)
    • Rational - object with methods for mathematical operators for exact fractions
    • RationalTestSwing, AboutRationalTest - GUI for the addition, subtraction, multiplication of two Rationals

Games

  • PlayNim - play the Nim game with some number of sticks to be taken
    • PlayNimState - improve clarity of program logic by using a Discrete Finite State Automaton (DFSA)
    • PlayNimSwing, AboutPlayNim GUI for the Nim game
  • ChessGame, ChessPlayer, ChessField, ChessPiece - interconnected set of classes for the display of a chess game using Unicode characters for the pieces

File Handling and Collections

  • HexDump - hexadecimal dump of a file, maybe binary
  • FilterURL - filter a file read from an URL (http://..., ftp://..., file://...)
  • FilterTowns - read jtc/test/id_kota.lst with a list of indonesian towns, and extract the names and the number of inhabitants only
  • SearchTown - store the town data in a HashMap, and look one up there
  • SortTowns - store the town data in a TreeMap, and print a list sorted alphabetically by town name
  • SearchAlice - read a text from an URL, for example Alice in Wonderland, collect and count the names therein, and print a sorted list
  • WalkFileTree - run through a file directory with a subclass of FileVisitor and print the entries

Developper Information

  • SystemProps - show the Java system properties, the environment variables with their values, and the components of the system path
  • TestRegex - input a Java regular expression and try to match test texts in a loop
    • TestRegexSwing, AboutTestRegex - Swing GUI version thereof

Subclasses and Factories

  • Shape - class defining common properties and methods for geometrical forms, with output as an SVG (scalable vector graphics) file
  • ShapeFactory - Factory pattern returning an instance of a Shape
  • Circle, Square, Triangle, Hexagon - implementation of specific Shapes and their SVG representation

Team collaboration

  • CheckIBAN - compute and check the checkdigits of an International Bank Account Number,
    • CheckIBANFilter - check a text file with many IBANs
    • CheckIBANSwing - GUI for checking a single IBAN