Java 通过其他类构造函数在主方法中创建对象时访问对象属性

Java 通过其他类构造函数在主方法中创建对象时访问对象属性,java,object,constructor,main,Java,Object,Constructor,Main,我有三个类测试,工厂和电视-工厂的目的是创造电视(类包括在下面) 如何访问或操作在测试类的主方法中创建的新TV的属性(通过测试类中工厂方法调用的TV类构造函数) 你的问题是,你的工厂生产的电视,但从来没有船舶他们在任何地方 为了操纵对象,需要对其进行引用。只需让produceTV方法返回所生成的TV public TV produceTV(int a, double b){ numberOfTV++; return new TV(a,b); } 现在,您创建了一个从未使用过

我有三个类测试,工厂和电视-工厂的目的是创造电视(类包括在下面)

如何访问或操作在测试类的主方法中创建的新TV的属性(通过测试类中工厂方法调用的TV类构造函数)


你的问题是,你的工厂生产的电视,但从来没有船舶他们在任何地方

为了操纵对象,需要对其进行引用。只需让produceTV方法返回所生成的TV

public TV produceTV(int a, double b){
  numberOfTV++;
  return new TV(a,b);      
}

现在,您创建了一个从未使用过的引用;编译器很可能会消除TV对象的创建

您的
produceTv
方法应返回新创建的TV。然后你可以拥有
TV=tvFactory.produceTV(2001,399)
之后可以使用
tv
。在
tv
类中添加getter和setter函数,并使用这些方法更改它们的值
public class TV {

    private int productionYear;
    private double price;

    public TV(int productionYear, double price) {
        this.productionYear = productionYear;
        this.price = price;
    }

    public int getProductionYear() {
        return productionYear;
    }

    public void setProductionYear(int productionYear) {
        this.productionYear = productionYear;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
}

public class Factory {

    public static int numberOfTV = 0;


    public TV produceTV(int a, double b) {
        TV tv = new TV(a, b);
        numberOfTV++;
        return tv;
    }


    public void printItems() {
        System.out.println("Number of TVs is: " + numberOfTV);

    }
}

public class Test {

    public static void main(String[] args) {

        Factory tvFactory = new Factory();
        TV tv = tvFactory.produceTV(2001, 399);
        tvFactory.printItems();

        // Do manipulation with tv reference here 

    }
}
public TV produceTV(int a, double b){
  numberOfTV++;
  return new TV(a,b);      
}