/usr/share/doc/libstarlink-ast-doc/node35.html is in libstarlink-ast-doc 8.6.2+dfsg-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--Converted with LaTeX2HTML 2008 (1.71)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>The Object Hierarchy</TITLE>
<META NAME="description" CONTENT="The Object Hierarchy">
<META NAME="keywords" CONTENT="sun211">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2008">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="sun211.css">
<LINK REL="next" HREF="node36.html">
<LINK REL="previous" HREF="node34.html">
<LINK REL="up" HREF="node32.html">
<LINK REL="next" HREF="node36.html">
</HEAD>
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html779"
HREF="node36.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
SRC="/usr/share/latex2html/icons/next.png"></A>
<A NAME="tex2html777"
HREF="node32.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
SRC="/usr/share/latex2html/icons/up.png"></A>
<A NAME="tex2html771"
HREF="node34.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
SRC="/usr/share/latex2html/icons/prev.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html780"
HREF="node36.html">Displaying Objects</A>
<B> Up:</B> <A NAME="tex2html778"
HREF="node32.html">An AST Object Primer</A>
<B> Previous:</B> <A NAME="tex2html772"
HREF="node34.html">Object Creation and Pointers</A>
<BR>
<BR></DIV>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00043000000000000000"></A><A NAME="ss:objecthierarchy"></A>
<BR>
The Object Hierarchy
</H2>
<P>
Now that we have created our first ZoomMapZoomMap, let us examine how it
relates to other kinds of ObjectObject before investigating what we can do
with it.
<P>
We have so far indicated that a ZoomMap is a kind of Object and have
also mentioned that it is a kind of MappingMapping as well. These statements
can be represented very simply using the following hierarchy:
<P>
<SMALL CLASS="SMALL">
<BR>
<IMG
WIDTH="108" HEIGHT="53" ALIGN="BOTTOM" BORDER="0"
SRC="img35.png"
ALT="\begin{terminalv}
Object
Mapping
ZoomMap
\end{terminalv}">
<BR>
</SMALL>
<P>
which is a way of stating that a ZoomMap is a special class of
Mapping, while a Mapping, in turn, is a special class of Object. This
is exactly like saying that an Oak is a special form of Tree, while a
Tree, in turn, is a special form of Plant. This may seem almost
trivial, but before you turn to read something less dull, be assured
that it is a very important idea to keep in mind in what follows.
<P>
If we look at some of the other Objects used by the AST library, we
can see how these are all related in a similar way (don't worry about
what they do at this stage):
<A NAME="ss:mappinghierarchy"></A>
<P>
<SMALL CLASS="SMALL">
<BR>
<IMG
WIDTH="141" HEIGHT="183" ALIGN="BOTTOM" BORDER="0"
SRC="img36.png"
ALT="\begin{terminalv}
Object
Mapping
Frame
FrameSet
Plot
UnitMap
ZoomMap
Channel
FitsChan
XmlChan
\end{terminalv}">
<BR>
</SMALL>
<P>
Notice that there are several different types of Mapping available
(<SPAN CLASS="textit">i.e.</SPAN> there are classes of Object indented beneath the
``Mapping'' heading) and, in addition, other types of Object which are
not Mappings--Channels for instance (which are at the same
hierarchical level as Mappings).
<P>
The most specialised Object we have shown here is the PlotPlot (which we
will not discuss in detail until §<A HREF="node194.html#ss:plots">21</A>). As you can see, a
Plot is a FrameSetFrameSet... and a FrameFrame... and a Mapping... and,
like everything else, ultimately an Object.
<P>
What this means is that you can use a Plot not only for its own
specialised behaviour, but also whenever any of these other
less-specialised classes of Object is called for. The general rule is
that an Object of a particular class may substitute for any of the
classes appearing above it in this hierarchy. The Object is then said
to <SPAN CLASS="textit">inherit</SPAN> the behaviour of these higher classes. We can
therefore use our ZoomMap whenever a ZoomMap, a Mapping or an Object
is called for.
<P>
Sometimes, this can lead to some spectacular short-cuts by avoiding
the need to break large Objects down in order to access their
components. With some practice and a little lateral thinking you
should soon be able to spot opportunities for this.
<P>
You can find the full <SPAN CLASS="textit">class hierarchy</SPAN>, as this is called, for
the AST library in Appendix <A HREF="node214.html#ss:classhierarchy">A</A> and you may need to
refer to it occasionally until you are familiar with the classes you
need to use.
<P>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html779"
HREF="node36.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
SRC="/usr/share/latex2html/icons/next.png"></A>
<A NAME="tex2html777"
HREF="node32.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
SRC="/usr/share/latex2html/icons/up.png"></A>
<A NAME="tex2html771"
HREF="node34.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
SRC="/usr/share/latex2html/icons/prev.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html780"
HREF="node36.html">Displaying Objects</A>
<B> Up:</B> <A NAME="tex2html778"
HREF="node32.html">An AST Object Primer</A>
<B> Previous:</B> <A NAME="tex2html772"
HREF="node34.html">Object Creation and Pointers</A></DIV>
<!--End of Navigation Panel-->
</BODY>
</HTML>
|