A Hypervista of the Java Landscape [Secure eReader]
Click on image to enlarge.
eBook by John Landahl
eBook Category: Technology/Science
eBook Description: As one author has insightfully declared, Java suffers from the "surfeit of Zen" problem: it is difficult to understand any part without first understanding all, or at least many, of the others. This "hypervista"--in essence a hyperlinked glossary--is intended to make it easier to grasp the relationships among parts.
eBook Publisher: InfoStrategist.com/InfoStrategist.com
Fictionwise Release Date: April 2005
As one author has insightfully declared, Java suffers from the "surfeit of Zen" problem: it is difficult to understand any part without first understanding all, or at least many, of the others. This "hypervista" – in essence a hyperlinked glossary – is intended to make it easier to grasp the relationships among parts.
Java is a trademark of Sun Microsystems, Inc.
Java and the "Surfeit of Zen" Problem
Peter van der Linden (1996) has diagnosed the Java computer programming language as suffering from the "surfeit of Zen" problem: it is difficult to understand any one part without first understanding all, or at least many, of the numerous others: object, class, inheritance, . . . .
This "hypervista" – in essence a hyperlinked glossary – is intended to make it easier to grasp the relationships among parts.
Java – An Embarrassment of Riches
As a search of Amazon.com or a visit to the computer books section at Barnes and Noble or Borders will confirm, a great many books have been written about Java in the past decade. Significantly, those that are comprehensive are typically very thick, and those few that are thin generally cover only one facet of this complex and important programming language (threads, for example, or networking).
The Hypervista and How to Use It
There is a great deal to be said for logical organization and presentation of technical material. However, an electronic book (eBook) like this one also makes possible the interlinking of information in ways not previously possible. This "hyperglossary" is an experiment in the interlinking of topics, concepts, and terms. It is basically a reference work. My idea is that this eBook will be used in different ways by readers depending on their individual technical backgrounds. My suggestion is that when first reading it or just browsing through it, you begin by scanning for a term or concept you are already familiar with and then explore the hyperlinks associated with it to see where they lead.
Later, if you want information on a particular technical term, use the electronic search function of your eBook reader software to find an explanation of it and then follow any unfamiliar hyperlinks to expand your understanding. Keep in mind that, depending on your eBoo reader software, you can bookmark, underline, or highlight particularly helpful passages to locate them easily later on.
Using your eBook reading device's "Find" command to search for a term you are curious about is another good way to begin. And, of course, you can also skim or read through this eBook from beginning to end.
CENTRAL CONCEPTS OF JAVA
A core of concepts, many of them common to object-oriented programming languages in general, is central to the Java programming language. These include class, object, and inheritance.
One simple definition is a variable of some class type that's " . . . pretty much the same as a variable of an ordinary type, except that the valid functions that can be invoked for it are tied to it." (van der Linden, 1996).
A more formal definition is a software unit that combines a structured set of data with a set of operations for inspecting and manipulating that data, abstracting a particular entity or function.
It can also be said that an object is a specific instance of a class created for the purpose of maintaining data and providing access to behavior. Each object maintains data that make it unique.
The collective term for "datatype and operations bundled together, with access restrictions" (van der Linden, 1996), and basic building block of object-oriented programming.
A more formal definition is a blueprint or template for a particular object specifying the data the object can hold and the operations it can perform.
Classes can inherit the behavior and variables of other classes, allowing them to be arranged in hierarchies. All objects that belong to the same class store the same basic types of data and have access to the same types of behavior.
An object created using a class as a template.
To create and initialize an object using a class as a template by invoking an object constructor method.
A variable belonging to an object (as opposed to one belonging to a class, which is termed a static variable).
A method belonging to an object (as opposed one belonging to a class, which is termed a static method).
" . . . a specialized kind of method that initializes a newly-created object. 'Create_and_Initialize' would be a good, though long, name for it. . . . constructor functions always have the same name as the class . . . In some senses, the constructor name is the return type." van der Linden (1996)
Each class needs its own object constructor because all private data in a class is shielded from access outside the class. A class can have more than one constructor, but each constructor must have a different method signature.
Constructors are not inherited from the base class in Java, so each derived class must have its own constructor.
Copyright © 2005