java - 如何使 showData() 为不同的数据类型提供单独的结果?

标签 java class io

主类...

import java.io.*;
public class RecMain
{
    public static void main(String[]args)throws IOException
    {
        Rectangle rec1 = new Rectangle(5.3f,7.2f);
        Rectangle rec2 = new Rectangle();
        Rectangle rec3 = new Rectangle(12378438,37648363);



        rec1.showData();
        rec2.showData();
        rec3.showData();

    }
}

以及 Rectangle 类

import java.io.*;
class Rectangle
{

    private int len=0, bdt=0;
    private float len2=0, bdt2=0;
    public Rectangle()
    {
    }
    public Rectangle(int length, int breadth)
    {
        len=length;
        bdt=breadth;
    }
    public Rectangle(float length, float breadth)
    {
        len2=length;
        bdt2=breadth;
    }
    public void setData() throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        len2=Float.parseFloat(br.readLine());
        bdt2=Float.parseFloat(br.readLine());
    }
    public void showData()
    {
        System.out.println("Length: "+len+"\nBreadth: "+bdt);
        System.out.println("Length: "+len2+"\nBreadth: "+bdt2);
    }
}

我想要做的是,对所有对象使用相同的showData(),这样对于rec1,结果将是len2和bdt2,而对于rec3,结果将是len和bdt。有什么办法可以实现这一点吗?

最佳答案

您可以使用 if 来检查 len 是否为 0 或 len2 是否为 0,然后显示相应的结果。 因此,如果 len 为 0,则可以打印 len2 和 bdt2。否则,显示 len 和 bdt。

关于java - 如何使 showData() 为不同的数据类型提供单独的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61990081/

相关文章:

c++ - 我不明白我为这个程序得到的输出。

"cin"和 "File"的 C++ 通用接口(interface)

java - 在android中以编程方式单击切换按钮

java - 使用 iText 5 或 7 将图像层添加到 pdf

java - JaxWsDynamicClientfactory + java.lang.RuntimeException : Cannot create a secure XMLInputFactory

Java创建一个类来打印ArrayList到文件

java - 尝试从类 org.springframework.data.mapping.PropertyReferenceException 访问类 org.springframework.beans.PropertyMatches

c++ - 将类映射到字符串

python - 无法加载包含腌制数据的文件 - Python .npy I/O

java - 隐藏 SD 卡为只读