Dart WebサイトのPointプログラムをJavaに変換しようとすると、いくつか問題が発生しています。ダートプログラムは、下に表示されます。DartプログラムをJavaに変換しようとしています
class Point {
num x, y;
Point(num this.x, num this.y);
Point scale(num factor) => new Point(x*factor, y*factor);
num distance() => Math.sqrt(x*x + y*y);
}
void main() {
Point a = new Point(2,3).scale(10);
print(a.distance());
}
は、ここで私は、これまでに作ってみたものです:
public class PointJava {
int x, y;
public PointJava(int x, int y){
int a = x;
int b = y;
}
public PointJava scale(int factor){
PointJava j = new PointJava(factor*x, factor*y);
return j;
}
public double distance(){
double result = Math.sqrt(x*x+y*y);
return result;
}
public static void main(String[] args) {
PointJava a = new PointJava(2, 3).scale(10);
System.out.println(a.distance());
}
}
それはdouble型の数0.0
を出力しますが、ダートでのポイントプログラムは36.05551275463989
を出力します。
:
Point scale(num factor) => new Point(x*factor, y*factor);
num distance() => Math.sqrt(x*x + y*y);
私はときに私停止(私は実際にそれを研究してきました少し少なくとも何、C++の構文のこの種のを見てきましたポインタと参照に導入されました)。しかし、私は他の人に尋ねました。彼らは、これらの記述が関数を定義するために実際に使われたと私に言ったのです。私はこの人が正しいかどうか、これらのステートメントがJavaの意味で何を意味するかを理解するためにここに来ました。
助けが役に立ちます。ありがとう。
新しいコンストラクタコードを実装した後で動作しています。しかし、グローバル変数をintに変換してコンストラクタでdoubleに変換できるかどうかを確認したいと考えました。私はまれに "this"キーワードを使用することはほとんどありませんが、コンストラクタでそのキーワードを使用すると、そこで使用するためのメソッドで以前に定義されたグローバル変数を呼び出すようです。それを助けてくれれば幸いです。 – Rxanadu
もう一度お手伝いしてくれてありがとう。あなたの説明は私には意味があります。これは、コード例の多くの説明についてオンラインで言える以上のものです。私はまた、 "メソッドの外の整数"(あなたが実際にグローバルではないと言ったので、実際に何を呼び出すべきかわからない)と、コンストラクタのパラメータと同様の結果を得ました。私は、 "距離"メソッドがMath.sqrt()メソッド呼び出しによって整数をdouble型に簡単に変換できると仮定します。 – Rxanadu
これらはクラス変数です(属性と呼ばれることもあります)。 'Math.sqrt()'は暗黙的にその整数パラメータをdoubleにキャストします。 – rotsch