java boolean重载set方法

时间:2014-07-08 19:05:27

标签: java methods set boolean

我的老师给了我这个任务,我让整个程序运行得很完美,但是我不理解第4步中他希望我重载set方法来设置声明值的部分。在程序中,我问的是错误的问题,并使用Cat类中的set方法来设置布尔值。为什么我需要一个重载方法呢?如果有人可以提供一些关于这个主题的想法,那就太棒了。谢谢!

1.Create a new class called Cat that includes the functionality below

2.The new class has the attributes of:
name – type String
age – type integer
weight – type double
breed - type String
declawed - type boolean - true for has no claws, false for has claws

3.  Be sure your classes have a reasonable complement of constructor, accessor and 
mutator methods. Every member variable must have at least one independent accessor and 
one independent mutator.

 4. Example:
    public void setName(String name) mutator used to set name
    public void setBreed(String breed) mutator used to set the breed
    public void set(Boolean declawed) used to set claws or not
    ***(You must overload the set method to set deClawed value)**** 
    public String getName() accessor used to get name
    public String getBreed() accessor used to get breed
    public boolean getBoolean() access used to get the value of declawed

这是正确的输出。

示例运行: 输入Cat 1:Sam

的名称

输入Cat 1:1的年龄

输入Cat 1:5的重量

输入Cat 1品种:fluffy1

猫有爪子吗?对还是错?:正确

2 个答案:

答案 0 :(得分:0)

你是对的,这毫无意义。

在Java中,overloading方法意味着使用相同的名称多次定义它,但使用不同的方法签名

重载set()方法的示例如下所示:

public void set(int age) {
    this.age = age;
}
public void set(Boolean declawed) {
    this.declawed = declawed;
}

您似乎没有任何此类要求,在任何情况下,重载mutator方法都没有意义,因为Java有一个命名约定,您可以调用方法setFoo()和{{1}设置名为setBar()foo的变量的值。

也许你的教授意味着你必须实施 set方法?

在任何情况下,即使您的计划正常运作,也值得花时间与老师交谈,要求他们澄清计划要求。

答案 1 :(得分:0)

我想这只是为了练习。

但技术上是boolean!= Boolean

没有太大的区别,但是包装类型接受空值,因此布尔值很方便。如果您正在使用set方法从数据库读取数据,该列允许空值。

原始布尔值使用较少的内存。

试试这段代码:

public class Cat {
boolean declawed;
public void set(boolean declawed){
    System.out.println("boolean called");
    this.declawed=declawed;
}
public void set(Boolean declawed){
    System.out.println("Boolean called");
 //   if(declawed==null){declawed=false;}
    this.declawed=declawed;
}
    public static void main(String[] args) {
        Cat c=new Cat();
        c.set(Boolean.TRUE);
        c.set(true);
        c.set(null);
    }
}