实例化一个类的两个实例

时间:2016-02-13 21:15:15

标签: java

我有一个简单的问题

假设我要创建一个名为Campaign

的数据定义类

然后我想创建一个实现类

让我们在这个实现类中说我有一些变量(campaignName,campaignType,campaignGoal)和一些方法(getCampName,getCampType,getCampGoal)。

我想创建两个不同的广告系列类,然后将程序末尾的信息与打印方法进行比较。

这是宣布第一个广告系列信息的正确方法吗?

Campaign campaign1 = new Campaign();

这是主要的方法,然后让我们说我想得到第一个广告系列的名称,现在只是硬编码

public static String campaign1.getCampName(){
  campaign1.setCampName("IT Student Scholarship Fund");
}

我只是想知道如何做到这一点。谢谢。

2 个答案:

答案 0 :(得分:2)

getCampName()应该类似于:

public String getCampName() { return this.campaignName; }

然后简单地

campaign1.getName();

答案 1 :(得分:1)

您应该停止将所有代码放在main方法中的做法。而是使用主类中的驱动程序方法实例化Campaign实例并在每个实例上调用方法。此外,您可以覆盖equals()方法来进行比较(或实现Comparator)。

public class CampaignTest{
    public void runTest(){
        Campaign c1 = new Campaign("First Campaign");
        Campaign c2 = new Campaign("Second Campaign");
        Campaign c11 = new Campaign("First Campaign");

        System.out.println("c1==c2: " + c1.equals(c2));
        System.out.println("c2==c11: " + c2.equals(c11));
        System.out.println("c1==c11: " + c1.equals(c11));
    }

    public static void main(String... args){
        CampaignTest test = new CampaignTest();
        test.runTest();
    }

    private class Campaign{
        private String name;

        public Campaign(String n){
            this.name = n;
        }

        public String getName(){
            return name;
        }

        @Override
        public boolean equals(Object other){
            if(other instanceof Campaign && ((Campaign)other).getName().equals(name)){
                return true;
            }
            return false;
        }
    }
}