orange basket +weightfloat +locationstring +orchardstring +orangeslist +date_pickeddate +basketbasket go in go in apple barrel +colorstring +weightfloat +barrelbarrel +sizeint +appleslist depending on how detailed our design needs to bewe can also specify the type for each attribute attribute types are often primitives that are standard to most programming languagessuch as integerfloating-point numberstringbyteor boolean howeverthey can also represent data structures such as liststreesor graphsor most notablyother classes this is one area where the design stage can overlap with the programming stage the various primitives or objects available in one programming language may be somewhat different from what is available in other languages usuallywe don' need to be overly concerned with data types at the design stageas implementation-specific details are chosen during the programming stage generic names are normally sufficient for design if our design calls for list container typethe java programmers can choose to use linkedlist or an arraylist when implementing itwhile the python programmers (that' us!can choose between the list built-in and tuple in our fruit-farming example so farour attributes are all basic primitives howeverthere are some implicit attributes that we can make explicit--the associations for given orangewe might have an attribute containing the basket that holds that orange behaviors are actions nowwe know what data isbut what are behaviorsbehaviors are actions that can occur on an object the behaviors that can be performed on specific class of objects are called methods at the programming levelmethods are like functions in structured programmingbut they magically have access to all the data associated with this object like functionsmethods can also accept parameters and return values [