into an object-oriented java programmerbut it should make it possible for you to follow the example programs if after reading this section and examining some of the sample code in the following you still find the whole oop business as alien as quantum physicsthen you may need more thorough exposure to oop see the reading list in appendix "further reading,for suggestions problems with procedural languages oop was invented because procedural languagessuch as cpascaland basicwere found to be inadequate for large and complex programs why was thisthe problems have to do with the overall organization of the program procedural programs are organized by dividing the code into functions (called procedures or subroutines in some languagesgroups of functions could form larger units called modules or files crude organizational units one difficulty with this kind of function-based organization was that it focused on functions at the expense of data there weren' many options when it came to data to simplify slightlydata could be local to particular function or it could be global-accessible to all functions there was no way (at least not flexible wayto specify that some functions could access variable and others couldn' this caused problems when several functions needed to access the same data to be available to more than one functionsuch variables had to be globalbut global data could be accessed inadvertently by any function in the program this lead to frequent programming errors what was needed was way to fine-tune data accessibilityallowing variables to be available to functions with need to access itbut hiding it from others poor modeling of the real world it is also hard to conceptualize real-world problem using procedural languages functions carry out taskwhile data stores informationbut most real-world objects do both these things the thermostat on your furnacefor examplecarries out tasks (turning the furnace on and offbut also stores information (the actual current temperature and the desired temperatureif you wrote thermostat control programyou might end up with two functionsfurnace_on(and furnace_off()but also two global variablescurrenttemp (supplied by thermometerand desiredtemp (set by the userhoweverthese functions and variables wouldn' form any sort of programming unitthere would be no unit in the program you could call thermostat the only such unit would be in the programmer' mind for large programswhich might contain hundreds of entities like thermostatsthis procedural approach made things chaoticerror-proneand sometimes impossible to implement at all objects in nutshell the idea of objects arose in the programming community as solution to the problems with procedural languages objects