pctechguide.com

  • Home
  • Guides
  • Tutorials
  • Articles
  • Reviews
  • Glossary
  • Contact

Object Oriented Programming 2

Imagine creating a blueprint for an intelligent robot. The robot’s purpose is very simple: to open the curtains in the morning, and to close them at night. You call them CurtainBots, build three of them, and install them in your home. Great…

Now, if you consider the blueprint as a class, then what you have done is to create three objects of the class CurtainBot, and you might call them CurtainBot1, CurtainBot2, and CurtainBot3. These objects have a particular set of features, and also have tasks defined which depend on certain events: dawn and dusk. In other words, they’re event driven.

It’s a little more complex than that, of course. You have three of the robots, and you may have a dozen or more windows with curtains. So, which robot does which window? Has this been pre-decided in the code? As an approach this is poor, as it would be better to have the robots know what a window is, to search for them, and to deal appropriately with any it encounters. It would be better still if the robots could cooperate with each other, so that they can between them decide that their task is completed, rather than all three having to circuit the entire house.

This, it turns out, is the basis of object oriented thinking: to create classes of objects that are similar and well defined in terms of their features and tasks. These objects need to communicate with each other and to cooperate in order to achieve tasks efficiently.

Maybe not so simple, but powerful. In fact so powerful that object oriented (OO) capabilities are now included in many modern programming languages. This introduction will look at the class, the fundamental concept in all languages that use OO.

The Class

In object oriented programming (OOP), a class is short for classification. According to dictionary.com, classification is the act, process, or result of classifying. It’s the basic process of grouping similar objects, and this is a useful concept in programming, because it’s what we do in our everyday life. It’s how we learn to understand the world, and develop thought, language and so on.

The OOP class, then, is a formal programming construction that mirrors this natural process of grouping similar things.

Abstract Data

Often a computer program’s job is to try and emulate in some way a real world situation, but it clearly can’t handle every single detail. Thankfully, it doesn’t need to; for instance, you really don’t need a person’s hair colour to get their bank balance.

To a computer program this is important. Efficient software requires everything superfluous to be filtered out while keeping the quality data that’s needed – in other words, to abstract the necessary data, and create variables for only those data.

As an example, take horses. With horses, you can make certain assumptions about them, because without certain basic things it wouldn’t be a horse. For instance, when someone is talking about a horse, you don’t need to be told that it has four legs, two eyes and it says neigh. They just say horse, and you know those things. But, you might want to know its breed, hands high and colouring, because these are the things that vary from horse to horse.

We know that if we were constructing a class for horses, we’d only concentrate on the information that’s relevant. In other words, we’d abstract what we needed, and the rest would be quietly ignored. So in our class, we’d likely have variables for breed, hands high, and colouring.

And with all this abstracting, guess what? Yup, a class is referred to as an abstract data type, or ADT.

But, we can’t stop just there…

Methods

Many languages provide abstract data types, like C’s structure. But this would be where a discussion of the C structure stops, because the structure is only able to hold data. The class, however, takes things a step further, and this is really where object-orientation begins to kick in.

Continuing with the horse analogy, if you imagine not only all the things that you would measure to define a horse, but also all the things that you would do with a horse, doesn’t it makes sense to describe the tasks together with the data? After all, riding, grooming and carting are as much a part of your general horsing as are its height and colour. So, if you’re going to have to write these methods anyway, why not keep them together with the horsey data?

In the OO class, this is exactly what happens, and it is the basic form of encapsulation which we’ll look at next

  • Object Oriented Programming 2
  • Object Oriented Programming 3
  • Object Oriented Programming 4
  • Object Oriented Programming 5
  • Object Oriented Programming 6
  • Object Oriented Programming 7
  • Object Oriented Programming 8

Share this:

  • Click to share on Twitter (Opens in new window)
  • Click to share on Facebook (Opens in new window)

Related

Filed Under: Object Oriented Programming

Latest Articles

On the Go With Microsoft Office

If you have a tablet with Windows 10 installed, you are in for an extra bonus. Microsoft unveiled its new Office Mobile applications. These include the mobile versions of popular Office applications like Excel, Word, Powerpoint and OneNote. Users will now be able to easily edit documents with the … [Read More...]

ADSL Implimentation

In the UK, BT (British Telecom) commenced pilot trials of its ADSL technology - in north and west London - in late 1998. Early the following year, the company announced that it planned to spend £250m upgrading 400 local exchanges - out of … [Read More...]

AMD Radeon R9 285 Graphics

The AMD Radeon R9 285, is the graphic card designed to meet the demand on maximum playing PC games better and faster like no other card.   Features: • This graphic card is charged with the most recent Graphic Core Next (GCN) architecture. • It also has the mixed screen resolution and … [Read More...]

2021 PC Hardware Releases to Bolster Your Gaming

If you are a PC gamer, then chances are you are looking to upgrade your kit over the coming year. However, a lot of money can go into building the … [Read More...]

New Transfer Feature in Dropbox Enable Sharing files with Third Parties

Dropbox has been a popular P2P sharing platform for many years. They don't announce new features as often as other applications, since they have a … [Read More...]

Ransomware Operators Find Data Theft Profitable

How valuable is your data? That’s not a question that organizations or individuals have to ask themselves all that often. You might know the market … [Read More...]

Engineers Encounter the Quantum Challenge with Computers Running a Hundred Million Times Faster

Quantum computers have been a subject of discussion for many years. They have probably been something that philosophers and technology pundits have … [Read More...]

Transferring Image Files from Your Cell Phone Without Cables or Email

You don't have a cable available to transfer the photos from your cell phone to your computer? You don't feel comfortable sending them through your … [Read More...]

Why Drupal Accessibility is Vital for Your Website

Drupal may not be as popular as WordPress, but it is still used in over 1 million websites. The Internet might be more conducive to our needs if more … [Read More...]

Guides

  • Computer Communications
  • Mobile Computing
  • PC Components
  • PC Data Storage
  • PC Input-Output
  • PC Multimedia
  • Processors (CPUs)

Recent Posts

AMD’s Mobile Duron technology guide

Until 2001 all of AMD's mobile CPUs had been based on the K6 design. The company's Athlon/Duron family of processors had … [Read More...]

PC Security Guardian

PC Security Guardian is a malware program.  Programs like this are made to trick and scare users into purchasing.  This particular malware program … [Read More...]

Laser Printer Operation

Where the image to be printed is communicated to it via a page description language, the printer's first job is to convert … [Read More...]

[footer_backtotop]

Copyright © 2021 About | Privacy | Contact Information | Wrtie For Us | Disclaimer | Copyright License | Authors