Cos'è una CLASSE ?
Una classe è l'elemento base della programmazione orientata agli oggetti e rappresenta l'elemento madre di un programma. E' un insieme di metodi e proprietà raggruppati in un singolo file di definizione allo scopo di realizzare un compito.
/* presentation/classes/Class.cls */
CLASS presentation.classes.Class:
/* data definitions */
/* method definitions */
/* constructor, destructor*/
END CLASS.
Cos'è un OGGETTO ?
Un oggetto è l'attualizzazione di una classe, contiene i suoi dati di default ed ogni azione azione che può essere eseguita dai suoi metodi.
classe = definisce come fare qualche cosa
oggetto = un'istanza della definizione
In altra parole:
• Una classe è per la programmazione ad oggetti ciò che una persistent o super procedure è per le procedure.
• Un oggetto è per la programmazione ad oggetti ciò che una procedure instance è per una persistent e super procedure.
Costruzione di un oggetto
/* presentation/examples/Class.p */
DEFINE VARIABLE oClass AS presentation.classes.Class NO-UNDO.
oClass = NEW presentation.classes.Class().
METODI
Cos'è un metodo?
Per tenere un parallelismo con la programmazione di codice 4GL, un metodo può essere paragonato ad una funzione. E' racchiuso in una classe.
/* presentation/classes/MethodClass.cls */
CLASS presentation.classes.MethodClass:
METHOD CHARACTER MethodName():
RETURN("character string").
END METHOD.
END CLASS.
/* presentation/classes/MethodClass.cls */
CLASS presentation.classes.MethodClass:
DEFINE VARIABLE ch-MethodVar AS CHARACTER NO-UNDO.
METHOD VOID SetVariable(ip-methodvar AS CHARACTER):
ch-MethodVar = ip-methodvar.
END METHOD.
METHOD CHARACTER GetVariable():
RETURN(ch-MethodVar).
END METHOD.
END CLASS.
/* presentation/examples/Method.p */
DEFINE VARIABLE oMethodClass AS presentation.classes.MethodClass NO-UNDO.
oMethodClass = NEW presentation.classes.MethodClass().
oMethodClass:SetVariable("class value").
MESSAGE oMethodClass:GetVariable() VIEW-AS ALERT-BOX.
PROPRIETA'
Cos'è una proprietà?
Una proprietà, sempre mantenendo un parallelo con la programmazione 4GL, è una variabile racchiusa in una classe che può:
• essere direttamente accessibile da oggetti e programmi
• contenere una logica.
/* presentation/classes/property/Property.cls */
CLASS presentation.classes.property.PropertyClass:
DEFINE PUBLIC PROPERTY character-property AS CHARACTER NO-UNDO
GET.
SET.
END CLASS.
/* presentation/classes/property/PropertySetterClass.cls */
CLASS presentation.classes.property.PropertySetterClass:
DEFINE PROPERTY ExampleProperty AS CHARACTER NO-UNDO
GET:
RETURN(ExampleProperty).
END GET.
SET(ip-char AS CHARACTER):
ASSIGN ExampleProperty = ip-char.
END SET.
END CLASS.
/* presentation/classes/Property.p */
DEFINE VARIABLE oProperty AS presentation.classes. property.PropertyClass NO-UNDO.
DEFINE VARIABLE oPropertySetter AS presentation.classes. property.PropertySetterClass NO-UNDO.
oProperty = NEW presentation.classes.property.PropertyClass().
oPropertySetter = NEW presentation.classes. property.PropertySetterClass().
oProperty:ExampleProperty = "class property".
oPropertySetter:ExampleProperty = "class property setter".
MESSAGE oProperty:ExampleProperty VIEW-AS ALERT-BOX.
MESSAGE oPropertySetter:ExampleProperty VIEW-AS ALERT-BOX.
/* presentation/examples/Using.p */
DEFINE VARIABLE oMethodClass AS presentation.classes.MethodClass NO-UNDO.
oMethodClass = NEW presentation.classes.MethodClass().
Oppure:
USING presentation.classes.*.
DEFINE VARIABLE oMethodClass AS MethodClass NO-UNDO.
oMethodClass = NEW MethodClass().
oMethodClass:SetCharacter("class value").
MESSAGE oMethodClass:GetCharacter() VIEW-AS ALERT-BOX.
martedì 27 gennaio 2015
Iscriviti a:
Commenti sul post (Atom)
0 commenti:
Posta un commento