Building up towards the end of a Java course, I've been very much teaching the spirit of Java where code is delegated to classes and leaves the main application as a few short method calls, making it readable in its own right, and allowing code that uses the same data type to be shared between programs. Here's my main program:
import java.util.*;
public class Framework {
public static void main (String [] args) {
MyStream StationSource = new MyStream("rstats2014.xyz");
HashMap NationalRail = Station.factory(StationSource);
System.out.println(NationalRail.get("LAS"));
ArrayList Codes = MyUtils.sortedList(NationalRail);
MyUtils.print(NationalRail,Codes);
}
}
Complete code for this (and the three classes used)
[here] and an earlier stage
[here].
(written 2015-02-18, updated 2015-02-19)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
Q907 - Object Orientation and General technical topics - Object Orientation: Design Techniques [80] OO - real benefits - (2004-10-09)
[236] Tapping in on resources - (2005-03-05)
[507] Introduction to Object Oriented Programming - (2005-11-27)
[534] Design - one name, one action - (2005-12-19)
[656] Think about your design even if you don't use full UML - (2006-03-24)
[747] The Fag Packet Design Methodology - (2006-06-06)
[831] Comparison of Object Oriented Philosophy - Python, Java, C++, Perl - (2006-08-13)
[836] Build on what you already have with OO - (2006-08-17)
[1047] Maintainable code - some positive advice - (2007-01-21)
[1217] What are factory and singleton classes? - (2007-06-04)
[1224] Object Relation Mapping (ORM) - (2007-06-09)
[1435] Object Oriented Programming in Perl - Course - (2007-11-18)
[1528] Object Oriented Tcl - (2008-02-02)
[1538] Teaching Object Oriented Java with Students and Ice Cream - (2008-02-12)
[2169] When should I use OO techniques? - (2009-05-11)
[2170] Designing a heirarcy of classes - getting inheritance right - (2009-05-11)
[2327] Planning! - (2009-08-08)
[2380] Object Oriented programming - a practical design example - (2009-08-27)
[2501] Simples - (2009-11-12)
[2523] Plan your application before you start - (2009-12-02)
[2717] The Multiple Inheritance Conundrum, interfaces and mixins - (2010-04-11)
[2741] What is a factory? - (2010-04-26)
[2747] Containment, Associative Objects, Inheritance, packages and modules - (2010-04-30)
[2785] The Light bulb moment when people see how Object Orientation works in real use - (2010-05-28)
[2865] Relationships between Java classes - inheritance, packaging and others - (2010-07-10)
[2878] Program for reliability and efficiency - do not duplicate, but rather share and re-use - (2010-07-19)
[2889] Should Python classes each be in their own file? - (2010-07-27)
[2953] Turning an exercise into the real thing with extreme programming - (2010-09-11)
[2977] What is a factory method and why use one? - Example in Ruby - (2010-09-30)
[3063] Comments in and on Perl - a case for extreme OO programming - (2010-11-21)
[3085] Object Oriented Programming for Structured Programmers - conversion training - (2010-12-14)
[3260] Ruby - a training example that puts many language elements together to demonstrate the whole - (2011-04-23)
[3454] Your PHP website - how to factor and refactor to reduce growing pains - (2011-09-24)
[3607] Designing your application - using UML techniques - (2012-02-11)
[3760] Why you should use objects even for short data manipulation programs in Ruby - (2012-06-10)
[3763] Spike solutions and refactoring - a Python example - (2012-06-13)
[3798] When you should use Object Orientation even in a short program - Python example - (2012-07-06)
[3844] Rooms ready for guests - each time, every time, thanks to good system design - (2012-08-20)
[3878] From Structured to Object Oriented Programming. - (2012-10-02)
[3887] Inheritance, Composition and Associated objects - when to use which - Python example - (2012-10-10)
[3928] Storing your intermediate data - what format should you you choose? - (2012-11-20)
[3978] Teaching OO - how to avoid lots of window switching early on - (2013-01-17)
[4098] Using object orientation for non-physical objects - (2013-05-22)
[4374] Test driven development, and class design, from first principles (using C++) - (2014-12-30)
[4449] Spike solution, refactoring into encapsulated object methods - good design practise - (2015-03-05)
[4628] Associative objects - one object within another. - (2016-01-20)
J715 - Putting the Java Language Together [1181] Good Programming practise - where to initialise variables - (2007-05-09)
[2735] Type checking, Java arrays and collections - (2010-04-23)
[4326] Learning to program - comments, documentation and test code - (2014-11-22)
J050 - Java - General [2087] Comparing Java Courses - what can we do? - (2009-03-17)
[2091] C, C++ and C# ... Java and JavaScript - (2009-03-20)
[2114] Which Version of Java am I running? - (2009-04-02)
[2417] Java Programming Fundamentals - (2009-09-24)
[2420] Exceptions in Java - why and how - (2009-09-24)
[2504] Learning to program in ... - (2009-11-15)
[2861] MySQL and Java - connectivity past, present, and future thoughts - (2010-07-09)
[3573] New in Java 7 - and why we are not running public Java 7 courses - (2012-01-08)
[4305] Learning to program in Java - yes, we can help. - (2014-09-26)
[4317] Java - an update of the basics - (2014-11-16)
[4412] Java -making sure you have the right versions - (2015-02-02)
Some other Articles
Public training courses - upcoming datesDifferent views of a Welsh Valley - but headed homeJava web application for teaching - now with sessions and clustering / load balancing demonstrationsA Java servlet that is also a stand alone program. And a server that is also a web client.The spirit of Java - delegating to classesWind Turbines - beauty or menace?Using the lead - passing arrays and other collections in JavaJava example - for loop and conditionals from course exerciseFileMaker Day to Unix Time conversionA Welsh valley - what the transport looks like in 2015