У меня есть очень простой класс:Понимание вывода javap
package MyDev;
public class Point3D {
public Point3D(){x = 0; y = 0;z = 0;}
public float x, y, z;
public Point3D(float X, float Y, float Z)
{
x = X; y = Y; z = Z;
}
}
Когда я бегу javap -c
на этом классе, то есть то, что я получаю:
C:\Projects\Development\MyJava\bin\MyDev>"C:\Program Files (x86)\Java\jdk1.7.0_55\bin\javap" -c Point3D.class
Compiled from "Point3D.java"
public class MyDev.Point3D {
public float x;
public float y;
public float z;
public MyDev.Point3D();
Code:
0: aload_0
1: invokespecial #12 // Method java/lang/Object."<init>":()V
4: aload_0
5: fconst_0
6: putfield #14 // Field x:F
9: aload_0
10: fconst_0
11: putfield #16 // Field y:F
14: aload_0
15: fconst_0
16: putfield #18 // Field z:F
19: return
public MyDev.Point3D(float, float, float);
Code:
0: aload_0
1: invokespecial #12 // Method java/lang/Object."<init>":()V
4: aload_0
5: fload_1
6: putfield #14 // Field x:F
9: aload_0
10: fload_2
11: putfield #16 // Field y:F
14: aload_0
15: fload_3
16: putfield #18 // Field z:F
19: return
}
Почему? Почему у второго конструктора есть подпись() V, а не (FFF) V? За жизнь меня я не могу этого понять!
Нет конструктора '(float, float, float)' Object. –