Basics
An object is an instance of a class. A class is a blueprint or template that describes the properties and behaviors of a particular type of object, while an object is a specific instance of that class with its own unique state and behavior.
Objects are used to represent real-world entities or concepts in software. They contain data and methods that allow them to perform actions and interact with other objects in a program. For example, if we have a class called "Person" with attributes such as "name," "age," and "gender," and methods such as "speak" and "walk," we can create objects of that class to represent individual people. Each person object will have its own unique values for the attributes and will be able to perform the methods defined in the class.
Objects can be created, used, and discarded as needed, and they can be easily combined with other objects to create complex systems and applications.
In summary, an object is a specific instance of a class with its own unique state and behavior. It is a fundamental concept in object-oriented programming and is used to represent real-world entities or concepts in software.
The Difference Between Object Types and Value Types
An object and a value are two distinct concepts often used interchangeably but they have different meanings.
A value is a piece of data that represents a specific quantity or state. Values can be of different types, such as numbers, strings, boolean values, or complex data structures like arrays and dictionaries. Values are generally immutable, meaning that they cannot be changed once they are created. When we assign a value to a variable, we are assigning a copy of the value to that variable.
An object, on the other hand, is a collection of data (and methods) that represent a specific entity or concept. Objects are instances of classes, which are blueprints that define the structure and behavior of the object. Objects are generally mutable, meaning that their properties and values can be changed during the execution of a program. When we assign an object to a variable, we are assigning a reference to that object, rather than a copy of the object itself.
The main difference between an object and a value is that objects are more complex and have more functionality than simple values. Objects can be used to represent complex data structures, perform operations on data, and interact with other objects in a program. Values, on the other hand, are typically used to represent simple data types and perform basic arithmetic and logical operations.
In summary, values are simple data types that represent specific quantities or states, while objects are complex entities that have data and methods that can be used to perform operations and interact with other objects.
MDriven's OCL Implementation
The String type is not an object in OCL. In most operators that have "an object" as a parameter, a String is not considered a valid parameter.
Read more here: https://learn.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/objects-and-classes/
Or watch a Video: Introduction to Classes and Objects - Part 1