Do you need getters and setters for C types?

Say, I have class declaration like so:
@interface MyClass : NSObject
int nValue;
-(void)someMethod:(int)v;
@end
and then the implementation:
#import "MyClass.h"
@implementation MyClass
-(id)init
//Initialization
if(self = [super init])
nValue = 0;
return self;
-(void)dealloc
[super dealloc];
-(void)someMethod:(int)v
int r = nValue;
nValue += r + v;
@end
Do I need a getter and a setter for the 'nValue' variable?

Den B. wrote:
Do I need a getter and a setter for the 'nValue' variable?
No more so than you would in C++.
In Objective-C, if you really need to provide access to an objects internal values, you should you properties. If you don't need properties, then getters and setters are just as bad as they are anywhere.

Similar Messages

  • Overloaded constructors & getters and setters problem

    I'm writing a driver class that generates two cylinders and displays some data. Problem is I don't understand the concept on overloaded constructors very well and seem to be stuck. What I'm trying to do is use an overloaded constructor for cylinder2 and getters and setters for cylinder1. Right now both are using getters and setters. Help would be appreciated.
    Instantiable class
    public class Silo2
        private double radius = 0;
        private double height = 0;
        private final double PI = 3.14159265;
        public Silo2 ()
            radius = 0;
            height = 0;       
       // Overloaded Constructor?
       public Silo2(double radius, double height) {     
          this.radius = radius;
          this.height = height;
       // Getters and Setters
       public double getRadius() {
          return radius;
       public void setRadius(double radius) {
          this.radius = radius;
       public double getHeight() {
          return height;
       public void setHeight(double height) {
          this.height = height;
       public double calcVolume()
           return PI * radius * radius * height;
       public double getSurfaceArea()
           return 2 * PI * radius * radius + 2 * PI * radius * height;
    Driver class I'm not going to show all the code as it's rather long. Here's snippets of what I have so far
    So here's input one using setters
    validateDouble reads from a public double method that validates the inputs, which is working fine.
    public static void main (String [ ]  args)
                Silo2 cylinder1 = new Silo2(); 
                Silo2 cylinder2 = new Silo2();
                //Silo inputs           
                double radSilo1 = validateDouble("Enter radius of Silo 1:", "Silo1 Radius");
                cylinder1.setRadius(radSilo1);
                double heiSilo1 = validateDouble("Enter height of Silo 1:", "Silo1 Height");
                cylinder1.setHeight(heiSilo1);
    Output using getters
    //Silo1 output
                JOptionPane.showMessageDialog(null,"Silo Dimensions 1 "   +
                    '\n' + "Radius = " + formatter.format(cylinder1.getRadius()) +
                    '\n' + "Height = " + formatter.format(cylinder1.getHeight()) +
                    '\n' + "Volume = " + formatter.format(cylinder1.calcVolume()) +
                    '\n' + "Surface Area = " + formatter.format(cylinder1.getSurfaceArea()));How can I apply an overloaded constructor to cylinder2?
    Edited by: DeafBox on May 2, 2009 12:29 AM

    DeafBox wrote:
    Hey man,
    My problem is that I don't now how to use an overloaded constructor. I'm new to this concept and want to use an overloaded contructor to display data for cylinder2, and getters and setters to display data for cylinder1.So, again, what in particular is your problem?
    Do you not know how to write a c'tor?
    Do you not know how to use a c'tor to intialize an object?
    Do you not understand overloading?
    Do you not realize that overloading c'tors is for all intents and purposes identical to overloading methods?

  • ValueRef'ing array elements, getters and setters

    Hi,
    I was wondering what the appropriate way to have the getters and setters for an array to be in the Model object.
    For example, what should the getter/setter for stuff in Stuff.java be?
    In the jsp page:
    <input_text .... valueRef="Stuff.stuff[0].property">
    In Stuff.java:
    private Blah[] stuff = new Blah[25];
    In Blah.java
    private String property;

    At a minimum,
    public Blah[] getStuff() { ... };Array accessors are always dangerous in Java, since they're necessarily mutable; if you don't want mutating, you have to clone the array every time you return it. Lists are preferable in this regard. OTOH, Lists aren't at all typesafe.
    -- Adam Winer

  • Duplicate getters and setters

    Hi,
    Can any one tell me why do we need getters and setters both in class and backing bean? Is not a duplication?
    Here is an example
    In my class Dept I have getDept_Code,getDept_Name and setDept_Code,set_DeptName.
    and in my backing bean(DeptBean) I have same getters and setters.
    please note that in my Dept.jsp I use these as follows
    value="#{DeptBean.dept_code}".
    value="#{DeptBean.dept_name}"
    My question is why dont we use getters and setters in Dept class. and do we need to have getters and setters in backing bean?
    plz explain.

    You just can use the getters in Dept? You don't need to "flatten out the objects".
    MyDto:public class MyDto {
       private String field1;
       private String field2;
       // + getters + setters
    }MyBean:public class MyBean {
        private MyDto myDto;
        // + getter + setter
    }JSF<h:outputText value="#{myBean.myDto.field1}" />

  • Hello Forum, you need a serial ports for software icprog to program EPROM and Pic

    Hello Forum, you need a serial ports for software icprog to program EPROM and Pic.I was wondering if this or a similar card is compatible with my Lenovo Desktop h50-50 -->  -> PCI-E 2 serial ports and 1 parallel port PCI-Controller Card 3 Port ► http://fli.zz.mu/cut/scheda-pci-e-2-porte-seriali-1-porta-parallela .
    My my Lenovo Desktop h50-50 upgrade to win 10,  If it is not compatible to win 10. I could use it too virtualizing win Xp? Thank since TIME FOR ANSWERS, I apologize for my bad English.
    THANK Joe  

    Unfortunately, no Sanyo phones are iSync compatible so you will not be able to synchronize your Contacts and Calendars with the phone.
    Also, you may have problems with the Bluetooth adapter you purchased, as the only one officially supported by Apple for use with Macs is the D-Link DBT-120.
    The Official Apple list of iSync compatible devices is here:
    http://www.apple.com/macosx/features/isync/devices.html
    It's always a good idea to check this list before purchasing a new phone.
    Other phones are supported by third party plugins from here and here. But still no Samsung, Sanyo, LG etc. who all use thier own proprietary syncing protocols rather than the industry standard SyncML. These manufacturers also don't provide Mac software with their phones like the do for Windows users.
    I'm afraid you're not going to have much luck if you stick with the Sanyo. I would seriously consider taking it back and swapping it for one of the handsets on the above linked pages. Personally I would recommend a Sony Ericsson model. I've always had excellent Mac compatibility with those.

  • EJB newbie: Why getters and setters when I don't use them?

    I'd like to know why I have to write getters and setters in my bean implementaion class when I don't use them. I have SQL statements in my entity bean class that does querying and updates and I don't need to get or set individual fields of my databse.
    This must be a very trivial question for many, but I really dont know the answer to this one.
    Thanks.

    You can't get rid of them because they are built into iOS. It's annoying I know.

  • Project Lombok - easier getters and setters

    I came across [Project Lombok|http://projectlombok.org/] recently and I think it greatly simplifies common Java patterns. All those getters and setters needed to satisfy JPA, JSF, and CDI make conceptually trivial classes become hundred-line monsters. If you need to change a type (e.g. int to long) or a name, then you need to do the same thing three or more times, or you can delete and generate everything again, but this can be risky: you might delete and regenerate a method that contained some little but necessary extra logic (a null check with ?:, for example), which could be indistinguishable from boilerplate code at first sight.
    I know this will be met with resistance, but I think a Lombok-like project should be incorporated into Java SE 8 or 9. Look at the great productivity improvements we had with Java 5 and Java 7 (specifically Project Coin). Look how easy it is to create an EJB in Java EE 6. People that would never consider EJBs in the past are now using them (me included) and enjoying!
    Maybe Java tools could at least provide official tools to support Lombok, because it currently uses unsupported interfaces to do its work.
    I think this post, if taken as an official feature request, would be off-topic here, but hey, I already have an account here and the conversation must start somewhere :-)

    MarcusF. wrote:
    All those getters and setters needed to satisfy JPA, JSF, and CDI make conceptually trivial classes become hundred-line monsters. Only when you're doing something very wrong design-wise. Getters and setters are no problem, you generate them anyway. But go ahead, keep believing the incredibly trivial is what is keeping you from being productive.
    Look how easy it is to create an EJB in Java EE 6.Yes its easier to CREATE an EJB. But it is still as hard as ever to understand the nuances of the technology and properly apply it without cutting into your own fingers. You still need to properly understand transaction management for example. But also stateless design, remote invocation, messaging, concurrency, etc. etc. Its still very, very hard. But yeah, annotations in stead of XML crud. That made -all- the difference right?
    It isn't code that makes things easier. It never was and it never will be. But people keep focusing on simplifying the actual programming by spitting out API after API and framework after framework and in the mean time the technology never gets any easier, or better. Because the code is not where the problem is.
    IMO of course.

  • Question about getters and setters

    I want to ask you a bit simple question. I know, you can show me google but i know to understand this by my example. My program code:
    class Readers {
         int age;
    public Readers(){
         age = 45;
    public int getAge() {
         return age;
    public void setAge(int age) {
         this.age = age;
    public void print_age(){
         System.out.println(+age);
    class Main {
         public static void main(String[] Args) {
         Readers john = new Readers();
         john.print_age();
    Why do i need use getters and setters? Because without these methods I get the same result. My program works correctly. Can you explain the benefit of using getters and setters?
    Thanks in advance ;)

    First, nobody said that you should use getters and setters in the first place. The only thing that's worse than dumb mutators/accessors would be the exposure of the attribute itself.
    Second, you certainly don't need mutators "internally".
    Third: consider you redesigning your class to store a person's birthdate instead of its age - makes sense if one thinks about it, doesn't it? If you have coded your entire program to access the "age" attribute of the object, you know have a problem because it was replaced by "birthday". The getter at least could calculate the current age from the birthdate - so no rewriting of the rest of your program would be necessary, just a small change in your getter.

  • [svn:osmf:] 10676: Removing JavaScript getters and setters: Wei found out that these are not supported by Internet Explorer.

    Revision: 10676
    Author:   [email protected]
    Date:     2009-09-29 07:06:03 -0700 (Tue, 29 Sep 2009)
    Log Message:
    Removing JavaScript getters and setters: Wei found out that these are not supported by Internet Explorer.
    Modified Paths:
        osmf/trunk/apps/samples/framework/HTMLGatewaySample/html-template/index.template.html
        osmf/trunk/framework/MediaFramework/org/openvideoplayer/gateways/HTMLGateway.as

    Hello ZeroThirtySeven,
    Do you mean that you want to use group policy to make users can visit the web application in Internet Explorer version 7?
    Enterprise Mode, a compatibility mode that runs on Internet Explorer 11 on Windows 8.1 Update and Windows 7 devices, lets websites render using a modified browser configuration that’s designed to emulate Internet Explorer 8.
    We could check if the web application can run in the Enterprise mode.
    If it can, please take a look at the following article to use group policy to turn on Enterprise Mode.
    http://msdn.microsoft.com/en-us/library/dn640699.aspx
    Please take a look at the following thread about set IE compatibility mode by group policy.
    https://social.technet.microsoft.com/Forums/windowsserver/en-US/95c0b8e6-72b5-472f-a5cb-07b17a8294a1/ie-compatibility-mode-not-applying-via-group-policy
    Best regards,
    Fangzhou CHEN
    Fangzhou CHEN
    TechNet Community Support

  • Do you need a screen protector for iphone4s

    Do you need a screen protector for iphone 4s ?

    It depends on how you handle and use the phone.  If you put it in a pocket or bag with loose change, keys, grit, etc, the oleophobic coating will likely scratch and sometimes the glass will scratch as well.

  • How struts invoking form getters and setters of a property

    hi,
    can anyone explain me how struts framework was calling the form properties getters and setters
    i have an idea like preparing a string such that
    if propert of text box is propertName, preparring a string with get and set making first letter capital
    setPropertyName
    getPropertyName
    and invoking that method in form property
    but i dont think this is the exact way struts follow , there could be a prcise and direct way to invoke propert methods
    i have another idea
    getting the declared method of the form class and search for the string propertyname in the methods name, and sure this is also not perfect way
    with regards
    satya

    can anyone tell where i can find libraries for access/manipulate beans.
    and sample example to invoke getters and setter of the property but not like preparing String "setPropertyName" or "getPropertyName" and invoking the method i beleive there should be standard way
    and also setPropertyName may take different type parameters i cannot keep number of if conditions to check for different datatypes
    with regards
    satya

  • Getters and Setters in ActionScript and ECMAScript

    Hi ,
    This line is taken from a book , here the Author mentions that
    In ActionScript , getters and setters is not necessary , they are a part of of the core ECMAScript language.
    Can anybody please let me know what is meant by ECMAScript language ??
    Thanks in advance .

    ECMAScript is an ECMA standard.
    Getters and setters are not mandatory (that's what they mean).
    However, they can be useful in many cases.
    - You can check the value in a setter before assigning (e.g checking if it's null)
    - You cannot override properties of a superclass but you can getters/setters just as you can methods
    - You can take some action when the value of the property is changed. There are many examples in UIComponent classes of the Flex framework.
    - You can put a breakpoint in a setter in order to debug data binding (see if it triggers)
    - In order to optimize data binding, you can write [Bindable event="YourCustomEventNameHere")] before the getter/setter and dispatch this event when the value is set so as to enhance performance of data binding (if you just write [Bindable], your properties will be processed by the framework even if their value does not change).
    Also, note how the synthax is different than Java.
    // ActionScript
    private var _myProperty:uint;
    public function get myProperty():uint
      return _myProperty;
    public function set myProperty(value:uint):void
      _myProperty = value;
    // Java
    private Integer myProperty;
    public Integer getMyProperty():
      return myProperty;
    public void setMyProperty(value:Integer):
      myProperty = value;
    Avoid creating getters/setters a la Java in ActionScript (i.e not using the get/set keywords). This is something I have seen in some implementations or auto-generated code from UML.

  • How to generater automatically getters and setters???

    Hi!!!
    Boys and Girls, how to generate automatically getters and setters like eclipse dialog or shortcut, using bea workshop(jpf file)?
    Best Regards,
    Pablo

    can anyone tell where i can find libraries for access/manipulate beans.
    and sample example to invoke getters and setter of the property but not like preparing String "setPropertyName" or "getPropertyName" and invoking the method i beleive there should be standard way
    and also setPropertyName may take different type parameters i cannot keep number of if conditions to check for different datatypes
    with regards
    satya

  • I need indesign and Photoshop for my final year of university

    I need indesign and Photoshop for my final year of university and possible after when i have graduated. Are there are any monthly pay plans available instead of the upfront payment of hundreds of pounds as i simply cannot afford that as a student.
    Any help would be great thank you , as i am a little confused with all of the plans and options online.
    I want to buy photoshop and indesign so that they will permanently be on my laptop not only for a period of time.

    Creative Suite 6
    Beyond that there is no way to selectively just get ID and PS for student pricing, but you could of course get them on separate commercial single-app plans. Either way, it's a catch 22...
    Mylenium

  • WHAT ABOUT FACE TIME?  I'D LIKE TO KNOW IF YOU NEED A PHONE NUMBER FOR YOURSELF TO USE IT TO CALL FROM YOUR COMPUTER

    WHAT ABOUT FACE TIME?  I'D LIKE TO KNOW IF YOU NEED A PHONE NUMBER FOR YOURSELF TO USE IT TO CALL FROM YOUR COMPUTER

    Do you have iMessage? I think as long as that person has iMessage you can use Face Time to call each other.

Maybe you are looking for

  • Changing from G5 to new Mac Pro system

    Hello Mac users, I did search the forum for answers to my question, did not find any right away. I have been using a Mac PPC G5 since 2004 or so. I am running Leopard 10.xx on this PPC. Due to requirements in software (seems more new software is for

  • Function Module to retrieve Campaign details.

    Hi All, Please tell me the name of the Function module to fetch the details of Campaign according to external id. I need to fetch 2 fields :- 1. Planned Start Date 2. Planned End Date Regards, Raman.

  • Creating directory under specific schema

    What is the syntax to create a directory under a specific schema? Here is what I've tried and I get an error: CREATE OR REPLACE DIRECTORY test.utl_dir AS 'D:/utl_dir' ; Here is the error: Error starting at line 1 in command: CREATE OR REPLACE DIRECTO

  • RAW Photo Processing in Different Programs

    It "Seems" to me that Aperture does not recognize RAW photo processing from another program. I use Canon Digital Photo Professional for downloading and initial processing of my RAW photo's. Again, it seems that when I want to do additional processing

  • "Zoom" Accessibility and Word issue

    When using "zoom" accessibility with Microsoft Word on my new MacBook Pro with Retina Display, Zoom does not "follow the keyboard focus". Does anyone know a way to fix this? This feature of Zoom works for all other applications. I am in graduate scho