Java - Using Accessor and Mutator methods

前端 未结 2 1585
抹茶落季
抹茶落季 2020-11-27 05:34

I am working on a homework assignment. I am confused on how it should be done.

The question is:

Create a class called IDCard that contains a

相关标签:
2条回答
  • 2020-11-27 06:13

    You need to remove the static from your accessor methods - these methods need to be instance methods and access the instance variables

    public class IDCard {
        public String name, fileName;
        public int id;
    
        public IDCard(final String name, final String fileName, final int id) {
            this.name = name;
            this.fileName = fileName
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    }
    

    You can the create an IDCard and use the accessor like this:

    final IDCard card = new IDCard();
    card.getName();
    

    Each time you call new a new instance of the IDCard will be created and it will have it's own copies of the 3 variables.

    If you use the static keyword then those variables are common across every instance of IDCard.

    A couple of things to bear in mind:

    1. don't add useless comments - they add code clutter and nothing else.
    2. conform to naming conventions, use lower case of variable names - name not Name.
    0 讨论(0)
  • 2020-11-27 06:19

    Let's go over the basics: "Accessor" and "Mutator" are just fancy names fot a getter and a setter. A getter, "Accessor", returns a class's variable or its value. A setter, "Mutator", sets a class variable pointer or its value.

    So first you need to set up a class with some variables to get/set:

    public class IDCard
    {
        private String mName;
        private String mFileName;
        private int mID;
    
    }
    

    But oh no! If you instantiate this class the default values for these variables will be meaningless. B.T.W. "instantiate" is a fancy word for doing:

    IDCard test = new IDCard();
    

    So - let's set up a default constructor, this is the method being called when you "instantiate" a class.

    public IDCard()
    {
        mName = "";
        mFileName = "";
        mID = -1;
    }
    

    But what if we do know the values we wanna give our variables? So let's make another constructor, one that takes parameters:

    public IDCard(String name, int ID, String filename)
    {
        mName = name;
        mID = ID;
        mFileName = filename;
    }
    

    Wow - this is nice. But stupid. Because we have no way of accessing (=reading) the values of our variables. So let's add a getter, and while we're at it, add a setter as well:

    public String getName()
    {
        return mName;
    }
    
    public void setName( String name )
    {
        mName = name;
    }
    

    Nice. Now we can access mName. Add the rest of the accessors and mutators and you're now a certified Java newbie. Good luck.

    0 讨论(0)
提交回复
热议问题