Java Training Course/Example Programs: Difference between revisions
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 | ** '''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 | ** '''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
- SelamatSwitch - same with
- 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