编写方法和构造函数

时间:2012-09-12 02:12:11

标签: class methods constructor

好的,我需要有人向我解释从哪里开始这个项目。

首先,我需要通过向 Person 添加一个默认(no-args)构造函数来重载构造函数,该构造函数定义了一个名为“N / A”且id为-1的对象。

然后我需要添加一个名为reset的setter方法,该方法可用于将此类的两个私有实例变量重置为作为参数传入的两个值。

然后我需要添加一个名为getName和getId的getter方法,可以用来检索这两个私有变量

以下是代码:

public class Person
{
private String name;
private int    id;
private static int personCount = 0;

// constructor
public Person(String pname)
{
name = pname;
personCount++;
id = 100 + personCount;
}



public String  toString()
{
 return "name: " + name + "  id: " + id
  + "  (Person count: " + personCount + ")";
}

// static/class method
public static int getCount()
{
  return personCount;
}

/////////////////////////////////////////////// /

public class StaticTest
{
  public static void main(String args[])
{
    Person tom = new Person("Tom Jones");
    System.out.println("Person.getCount(): " + Person.getCount());
    System.out.println(tom);
    System.out.println();

    Person sue = new Person("Susan Top");
    System.out.println("Person.getCount(): " + Person.getCount());
    System.out.println(sue);
    System.out.println("sue.getCount(): " + sue.getCount());
    System.out.println();

    Person fred = new Person("Fred Shoe");
    System.out.println("Person.getCount(): " + Person.getCount());
    System.out.println(fred);
    System.out.println();

    System.out.println("tom.getCount(): " + tom.getCount());
    System.out.println("sue.getCount(): " + sue.getCount());
    System.out.println("fred.getCount(): " + fred.getCount());
}
}

我不确定从哪里开始,我不想要答案。我正在寻找有人解释清楚。

2 个答案:

答案 0 :(得分:0)

我强烈建议您咨询Java Tutorials,这在这里应该非常有用。例如,constructors上有一节详细介绍了它们的工作原理,甚至给出了一个无争论形式的例子:

  

虽然Bicycle只有一个构造函数,但它可能有其他构造函数,包括无参数构造函数:

public Bicycle() {
    gear = 1;
    cadence = 10;
    speed = 0;
}
     

Bicycle yourBike = new Bicycle();调用无参构造函数来创建一个名为Bicycle的新yourBike对象。

同样,有专门针对defining methodspassing information to them的部分。您的方法中甚至还有returning values部分。

阅读以上内容,你应该能够完成你的作业: - )

答案 1 :(得分:0)

首先,我需要通过向Person添加一个默认(no-args)构造函数来重载构造函数,该构造函数定义了一个名为“N / A”且id为-1的对象。 < / p>

阅读构造函数here

Person类已经包含一个带有1个参数的ctor。你需要做的是创建一个“默认的ctor”,它通常是一个没有任何参数的人。

示例:

class x
{
   // ctor w/ parameter
   //
   x(int a)
   {
      // logic here
   }

   // default ctor (contains no parameter)
   //
   x()
   {
     // logic here
   }
}

然后我需要添加一个名为reset的setter方法,该方法可用于将此类的两个私有实例变量重置为作为参数传入的两个值。

Setter方法用于通过公共函数“设置”它们来“封装”成员变量。请参阅here

示例:

class x
{
   private int _number;

   // Setter, used to set the value of '_number'
   //
   public void setNumber(int value)
   {
     _number = value; 
   }
}

然后我需要添加一个名为getName和getId的getter方法,可用于检索这两个私有变量

吸气者反其道而行之。它们不是“设置”私有成员变量的值,而是用于从成员变量中“获取”值。

示例:

class x
{
   private int _number;

   // Getter, used to return the value of _number
   //
   public int getNumber()
   {
      return _number;
   }
}

希望这有帮助