【问题标题】:java boolean overloaded set methodjava布尔重载set方法
【发布时间】:2014-07-08 19:05:27
【问题描述】:

我的老师给了我这个任务,我让整个程序完美运行,但我不明白第 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

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

【问题讨论】:

    标签: java methods set boolean


    【解决方案1】:

    你是对的,这没有任何意义。

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

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

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

    您似乎没有任何此类要求,并且在任何情况下重载 mutator 方法都是没有意义的,因为 Java 有一个命名约定,您可以将方法称为 setFoo()setBar() 来设置变量名为 foobar

    也许你的教授的意思是你必须实现 set 方法?

    无论如何,即使您的程序正常运行,也值得您花时间与您的老师交谈,让他们澄清程序要求。

    【讨论】:

    • 我假设在他的骨架代码中的某个地方还有另一个我们没有显示的 set 方法。那个,或者一个愚蠢的教授(当然没有不尊重)。
    【解决方案2】:

    我猜它只是为了练习。

    但技术上是布尔值!=布尔值

    没有太大区别,但包装器类型接受空值,所以布尔值很方便,即。如果您正在使用您的 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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 2021-09-28
      • 1970-01-01
      • 2015-10-01
      相关资源
      最近更新 更多