Beginner Programming
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me

The Shed is going Social! Join us on FaceBook and Twitter and chime in on the conversation.

Go Back   Dev Shed ForumsOtherBeginner Programming

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
  #1  
Old May 15th, 2012, 02:00 PM
gcampbell gcampbell is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: May 2012
Posts: 1 gcampbell User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 30 m 26 sec
Reputation Power: 0
Send a message via Skype to gcampbell
Facebook
Manipulating Instance Variables

Hi Everyone,

I have been into software development for a few years now but have recently started learning the Object-Orientated Style of development. I was wondering; with this style, what is the most effective way to access an objects/classes instance variables: Via direct manipulation or through the use of methods to read/ manipulate them?

Thanks in advance
George

Reply With Quote
  #2  
Old May 15th, 2012, 05:24 PM
requinix's Avatar
requinix requinix is offline
Still alive
Click here for more information.
 
Join Date: Mar 2007
Location: Washington, USA
Posts: 12,700 requinix User rank is General 120th Grade (Above 100000 Reputation Level)requinix User rank is General 120th Grade (Above 100000 Reputation Level)requinix User rank is General 120th Grade (Above 100000 Reputation Level)requinix User rank is General 120th Grade (Above 100000 Reputation Level)requinix User rank is General 120th Grade (Above 100000 Reputation Level)requinix User rank is General 120th Grade (Above 100000 Reputation Level)requinix User rank is General 120th Grade (Above 100000 Reputation Level)requinix User rank is General 120th Grade (Above 100000 Reputation Level)requinix User rank is General 120th Grade (Above 100000 Reputation Level)requinix User rank is General 120th Grade (Above 100000 Reputation Level)requinix User rank is General 120th Grade (Above 100000 Reputation Level)requinix User rank is General 120th Grade (Above 100000 Reputation Level)requinix User rank is General 120th Grade (Above 100000 Reputation Level)requinix User rank is General 120th Grade (Above 100000 Reputation Level)requinix User rank is General 120th Grade (Above 100000 Reputation Level)requinix User rank is General 120th Grade (Above 100000 Reputation Level)  Folding Points: 417516 Folding Title: Super Ultimate Folder - Level 1Folding Points: 417516 Folding Title: Super Ultimate Folder - Level 1Folding Points: 417516 Folding Title: Super Ultimate Folder - Level 1Folding Points: 417516 Folding Title: Super Ultimate Folder - Level 1Folding Points: 417516 Folding Title: Super Ultimate Folder - Level 1Folding Points: 417516 Folding Title: Super Ultimate Folder - Level 1
Time spent in forums: 5 Months 1 Week 4 Days 5 h 25 m 44 sec
Reputation Power: 8969
Send a message via AIM to requinix Send a message via MSN to requinix Send a message via Yahoo to requinix Send a message via Google Talk to requinix
IMO there is no simple answer to that. It depends on the language, the requirements, the developer, and the audience (ie, other developers).

Two languages I'm most familiar with are PHP and C#.

C#: Supports "properties", which are member variables accessed through getter and setter methods, but those methods are hidden with syntactic sugar and it looks like you're accessing them directly. 99% of classes should use them; I personally tend to use fields (non-property variables) on structs more often.

PHP: Doesn't support properties so you'd have to write actual getter and setter methods. I don't like doing that. In my opinion external code should do due diligence to make sure it's not accessing or manipulating things in a way it shouldn't. That said there are exceptions, like when the external code can't know what's valid or not (without extra work it shouldn't have to do) and variables that it simply should not have access to.

I don't believe you should ever write getters and setters that don't have any special logic. The downside is that if there has to be logic added later then all other code has to be rewritten as a method call instead of a variable access. There might be ways around that in the language, like how C#'s properties are very simple
Code:
public string Name { get; set; }

and PHP has the magic __get() and __set() methods.


I'm best at answering these kinds of questions in the context of various situations. Is your question sparked by anything in particular?

Reply With Quote
Reply

Viewing: Dev Shed ForumsOtherBeginner Programming > Manipulating Instance Variables

Developer Shed Advertisers and Affiliates



Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump

Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 


Powered by: vBulletin Version 3.0.5
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.

© 2003-2013 by Developer Shed. All rights reserved. DS Cluster - Follow our Sitemap