我正在关注一本书,我有一个Point
类,它定义了一个点,我试图显示这些值。我一直在寻找一段时间,无论我做什么,总是显示[0,0]这是我的代码。
class Main {
public static void main(String []args) {
Point point = new Point(10, 20);
System.out.println(point.toString());
}
}
class Point {
private int x, y;
public Point(int x, int y) {
x = x;
y = y;
}
public String toString() {
return "[" + x + ", " + y + "]";
}
答案 0 :(得分:6)
您实际上从不初始化班级成员<ion-list>
<ion-item class="item-text-wrap item-thumbnail-right">
<img ng-src="{{category.photo}}" />
<h2>Name</h2>
<p>{{description}}</p>
</ion-item>
<ion-item class="item-text-wrap item-thumbnail-right">
<img ng-src="{{category.photo}}" />
<h2>Name</h2>
<p>{{description}}</p>
</ion-item>
</ion-list>
和class SomeCaseClass(val string:String) {}
val a = "123"
assertTrue( a.equals( a ) ) // Passes
assertTrue( new SomeCaseClass(a).equals( new SomeCaseClass(a) ) ) // Fails, Scala 2.10
。因此,它们会自动初始化为0,因此x
输出。
y
表示参数x =参数x,它什么都不做。
使用[0,0]
代替x = x
类成员this.x = x;
。
答案 1 :(得分:2)
在构造函数中使用它,如下所示: -
class Point {
private int x, y; // These x and y are member of Point class
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public String toString() {
return "[" + x + ", " + y + "]";
}
您没有初始化Point类的x和y。 在toString()方法中,您打印的Point类的x和y未初始化,因此默认值为0,即0是整数的默认值。
答案 2 :(得分:2)
看看你的构造函数:
$http({
url:'api/?r=page/product',
method:'post',
params:{
price:$scope.price
},
});
在您的情况下,您不初始化类字段。为此,请使用$.ajax({
url:'api/?r=page/product',
method:'post',
data:{
price:$scope.price
}
});
关键字,它应如下所示:
public Point(int x, int y) {
x = x;
y = y;
}
否则,您只处理参数this
和public Point(int x, int y) {
this.x = x;
this.y = y;
}
变量。
答案 3 :(得分:1)
使用this关键字分隔局部变量和实例变量。在参数化构造函数中,jvm无法初始化实例变量,因为它在本地变量和实例变量之间出现歧义问题。如果我们没有初始化那么你可以隐式初始化java中的实例变量,这就是你输出[0,0]的原因。
这是代码..
class Main {
public static void main(String []args) {
Point point = new Point(10, 20);
System.out.println(point.toString());
}
}
class Point {
private int x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public String toString() {
return "[" + x + ", " + y + "]";
}
答案 4 :(得分:0)
Constructor
Point
对象的 public Point(int x, int y) {
this.x = x;
this.y = y;
}
:
this.x
您需要设置Point
表示您正在设置x
对象的x
变量的值,而不是传递给 class Main {
public static void main(String []args) {
Point point = new Point(10, 20);
System.out.println(point.toString());
}
}
class Point {
private int x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public String toString() {
return "[" + x + ", " + y + "]";
}
的{{1}}参数构造
更新的功能代码如下:
var index = clients.indexOf(connection);
clients.splice(index, 1);
room.splice(index, 1);