如何解决为什么当我将自定义 Pair 类推入队列接口时,返回 0;
class Pair{
int a; int b;
Pair(int a,int b){
a=a;
b=b;
}
}
public class Main {
public static void main(String[] args) {
Queue<Pair> a = new LinkedList<>();
a.add(new Pair(10,20));
System.out.println(a.peek().a + " " + a.peek().b);
}
}`
为什么当我在具有参数化构造函数的队列中输入基于自定义的类 Pair 并且对象在放入队列之前初始化时,当我尝试打印它时它仍然显示 0,0。
解决方法
错误出在您的构造函数中,因为您只使用传递的参数 a
和 b
,并且没有初始化 a
和 b
变量类实例,因此它们初始化为 0
。
构造函数应该是这样的:
class Pair{
int a,b;
Pair(int a,int b){
this.a = a;
this.b = b;
}
}
,
‘this’是引用当前对象的引用变量。
当您在没有 this 关键字的情况下赋值时,它不会引用对象的变量,而是引用相同的参数化变量。
因此,
Pair(int a,int b){
a=a;
b=b;
}
实际上,不是指向类变量。
使用this关键字,将帮助您引用类变量并在类变量中赋值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。