java - 如何将构造函数参数传递给另一个对象?

标签 java oop constructor

我希望这个插图能让我的问题清楚:

class someThread extends Thread{
        private int num;
        public Testing tobj = new Testing(num); //How can I pass the value from the constructor here? 

        public someThread(int num){ 
            this.num=num;
        }

        void someMethod(){
            someThread st = new someThread(num);
            st.tobj.print(); //so that I can do this
        }   
    }

最佳答案

一方面,从我看来,拥有一个公共(public)领域并不是一个好主意。 (你的名字也不理想...)

您需要做的就是在构造函数中初始化它而不是内联:

private int num;
private final Testing tobj;

public someThread(int num) {
    this.num = num;
    tobj = new Testing(num);
}

(你不必将其定为最终的 - 我只是更喜欢在可能的情况下将变量定为最终的...)

当然,如果您不需要 num 来执行其他任何操作,则根本不需要将其作为字段:

private final Testing tobj;

public someThread(int num) {
    tobj = new Testing(num);
}

关于java - 如何将构造函数参数传递给另一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14146402/

相关文章:

c# - 在 DB 类型对象到业务类型对象之间实现转换器的最佳模式

java - 当构造函数需要调用可重写方法时保持干燥

R 模式来修改传递给泛型函数的参数

c++ - 更改 LinkedList 以接受对象而不是 Int?

java - 导致异常的构造函数的 void 修饰符

c++在构造函数中分配对属性的引用

java - applicationContext是如何加载的?

java - 使用 JDBC 连接到 Athena 时找不到合适的驱动程序

java - Hadoop MapReduce 作业在本地无法加载库并且在 OS X 上连接失败

java - 有什么理由更喜欢数据挖掘项目的函数式编程吗?