Re: c.d.theory glossary -- definition of "class"

From: mAsterdam <mAsterdam_at_vrijdag.org>
Date: Wed, 23 Jun 2004 01:23:14 +0200
Message-ID: <40d8bf62$0$563$e4fe514c_at_news.xs4all.nl>


Dawn M. Wolthuis wrote:
> mAsterdam wrote:

>>Glossary 0.0.4:
<snip>

>>[Class]
>>A class is what provides a name and a place for
>>the abstract behavior of a set of objects
>>said to belong to the class. (Larry Wall, Apocalypse 12)
>>
>>note:
>>Other definitons welcome, this goes for the rest as well,
>>of course.
>>
>>Some use 'class' as having exposed data.
>>Please be explicit about this if you do so.

>
> I really don't like the "A class is what ..." definition,
> especially since folks like Date keep asking why the OO
> folks are so confused on what a class is -- is
> it a variable, for example?

I don't like it either, but it is the best I've seen yet. There are two things I like about this definition: 1. the focus on dynamics: behavior.
2. the blackbox character: we are not supposed to look inside.

> I would like to make it clear that it is metadata.

Why?

> I don't just mean that the source code for the class is
> metadata -- the class is metadata.

metadata: data about data.
A class is about behavior. Is it about data? An object, instance of the class, may have some data, but to get that data we'll have to ask it (by means of what the class told us about how to ask objects of this class questions) to give us that (and maybe other) data.

> Here is a definition I just read in
> Systems Analysis & Design: An Object-Oriented Approach with UML
> by Dennis, Wixom, and Tegarden
>
> "A class is the template we use to define objects."

This says something about the structural relation between two concepts, but it does not define either of them. Analogies:
A skeleton is the template we use to define a shape. A grammar is the template we use to define sentences. A formula is the template we use to define calculations. A table is the template we use to define rows. A problem is the template we use to define solutions.

> This leaves the meatier definition to "objects" but at
> least it states more clearly what a class is.

Trying to find out what a class is from this definition it doesn't give me anything but: go understand 'object' and come back later. How do these authors define object?

> Additionally, what are the biggest issues with identifying
> a class as a type specification?
> Putting it together, I'd say:
>
> [Class]
> Metadata that provides a template for software objects.
> Object Type specification
>
> Then an objection might be -- "is it a template or a specification" and I
> think those are close enough that it is both. --dawn

My objection is: it isn't doing a good job at defining. This *does* define:

 >>A class is what provides a name and a place for
 >>the abstract behavior of a set of objects
 >>said to belong to the class.

I would really like another one so thank you for trying - but I don't like it, sorry. Received on Wed Jun 23 2004 - 01:23:14 CEST

Original text of this message