Java Training Course/Example Programs: Difference between revisions

From tehowiki
Jump to navigation Jump to search
imported>Gfis
Collections
imported>Gfis
Shape
Line 6: Line 6:
* '''StringAdd''' - concatenate argument strings 4 times and print them out
* '''StringAdd''' - concatenate argument strings 4 times and print them out
* '''IntAdd''' - add 4 integers 4 times and print them
* '''IntAdd''' - add 4 integers 4 times and print them
* '''IntMultiply''' - multiply 4 integers 4 times and print the product
** '''IntMultiply''' - multiply 4 integers 4 times and print the product
* '''LongMultiply''' - multiply 4 long numbers
** '''LongMultiply''' - multiply 4 long numbers
===Loops (<code>while, for</code>) and conditions (<code>if</code>), arrays (<code>[]</code>)===
===Loops (<code>while, for</code>) and conditions (<code>if</code>), arrays (<code>[]</code>)===
* '''PowersOf2''' - print the powers of 2
* '''PowersOf2''' - print the powers of 2
Line 15: Line 15:
===Sequences of conditions with <code>switch, if - then - else if ...</code>===
===Sequences of conditions with <code>switch, if - then - else if ...</code>===
* '''Selamat''' - print a greeting depending on the hour
* '''Selamat''' - print a greeting depending on the hour
* '''SelamatSwitch''' - same with <code>switch ... case ... default</code>
** '''SelamatSwitch''' - same with <code>switch ... case ... default</code>
* '''Number10''' - print the numbers 1..10
* '''Number10''' - print the numbers 1..10
* '''Number10Method''' - print the numbers using a class method
** '''Number10Method''' - print the numbers using a class method
* '''Month''' - print the indonese name of a month
* '''Month''' - print the indonese name of a month
* '''Weekday''' - print the indonese name of a weekday
* '''Weekday''' - print the indonese name of a weekday
===Sequences of words===
===Sequences of words===
* '''Word1''' - print all words with 1 letter
* '''Word1''' - print all words with 1 letter
* '''Word2''' - print all words with 2 letters by 2 nested loops
** '''Word2''' - print all words with 2 letters by 2 nested loops
* '''Word3''' - print all words with 3 letters by 3 nested loops
** '''Word3''' - print all words with 3 letters
** '''Word3Cond1''' - print words with 3 letters and vowel/consonant conditions, first version
* '''Word3Cond1''' - print words with 3 letters and vowel/consonant conditions, first version
** '''Word3Cond2''' - same, using a method, 2nd version
** '''Word3Cond2''' - same, using a method, 2nd version
** '''Word3Cond3''' - same, output on a single line, 3rd version
** '''Word3Cond3''' - same, output on a single line, 3rd version
Line 52: Line 52:
* '''SearchAlice''' - read a text from an URL, for example [https://www.gutenberg.org/files/11/11-0.txt Alice in Wonderland], collect and count the names therein, and print a sorted list  
* '''SearchAlice''' - read a text from an URL, for example [https://www.gutenberg.org/files/11/11-0.txt 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
* '''WalkFileTree''' - run through a file directory with a subclass of ''FileVisitor'' and print the entries
===Developper Information===
* '''SystemProps''' - show the Java sysstem 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 ''Shape''s and their SVG representation

Revision as of 07:08, 28 November 2017

All example Java programs can be obtained from a Git repository:

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 sysstem 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