#[環境]
Java version 16.0.1
VS Code
Mac OS Big Surの環境です。
java -version
java version "16.0.1" 2021-04-20
Java(TM) SE Runtime Environment (build 16.0.1+9-24)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.1+9-24, mixed mode, sharing)
MacBook:09_MinutesToYearsandDayCalculator $
パソコン MacBook(Retina, 12-inch,2017), memory 8GB
#[エラー]
##1つ目のエラー
Main.java:4: エラー: クラス Pointのコンストラクタ Pointは指定された型に適用できません。
Point first = new Point(6 , 5);
^
期待値: 引数がありません
検出値: int,int
理由: 実引数リストと仮引数リストの長さが異なります
##2つ目のエラー
Main.java:5: エラー: クラス Pointのコンストラクタ Pointは指定された型に適用できません。
Point second = new Point(3 , 1);
^
期待値: 引数がありません
検出値: int,int
理由: 実引数リストと仮引数リストの長さが異なります
##3つ目のエラー
Main.java:7: エラー: シンボルを見つけられません
System.out.println(first.distance());
^
シンボル: メソッド distance()
場所: タイプPointの変数 first
エラー3個
[学習状況]
2021年5月中旬から独学でJavaを学習しはじめました。
progateを3巡、ドットインストール1巡、スッキリJavaの本を8割読みました。現在、UdemyのJava Programming Masterclass for Software Developersというコースで動画を見たり、演習問題に取り組んでいます。
この問題はUdemyでの演習18番目なので、まったくの初めてというわけではありません。
まだまだ初心者ですが真面目に取り組んでいるので、何卒、よろしくお願いします。
#[演習問題の内容]
Pointというクラスを作りましょう。
このクラスにはx,yの二つのフィールドがあります。それぞれintです。
コンストラクターを作りましょう。
一つ目のコンストラクターは引数なしです。
二つ目のコンストラクターはx、yを引数に持ちます。
distanceというメソッドを作りましょう。
引数がない時は、(x、y)から(0、0)の距離を求めます。
引数がある時は(x、y)からその引数の距離を求めます。
#[わからない事]
エラーの1番目と2番目は、引数の数がおかしいと言っているように思うのですが、何度みても問題が内容に思えます。
何が、もんだいなのでしょうか?
エラー3番目は『シンボルがみつけられません』です。この時は、スペルミスが疑われるのでスペルを確認したのですが、問題内容に思います。
#[自分コード]
java
1public class Pointx{ 2 private int x; 3 private int y; 4 5 public Pointx(){ 6 } 7 8 public Pointx(int x, int y){ 9 this.x=x; 10 this.y=y; 11 } 12 13 public double distnce(){ 14 return Math.sqrt(this.x*this.x-this.y*this.y); 15 } 16 17// public double distnce(){ 18// return Math.sqrt(getX()*getX()-getY()*getY()); 19// } 20// こっちのコードでも書いてみたのですが、エラーは消えませんでした。 21 22 23 public double distnce(int a, int b){ 24 return Math.sqrt((this.x-a)*(this.x-a)-(this.y-b)*(this.y-b)); 25 } 26 27 28 public int getX(){ 29 return x; 30 } 31 public int getY(){ 32 return y; 33 } 34 public void setX(int x){ 35 this.x=x; 36 } 37 public void setY(int y){ 38 this.y=y; 39 } 40 41}
java
1public class Main { 2 public static void main(String[] args) { 3 4 Pointx first = new Pointx(6 , 5); 5 Pointx second = new Pointx(3 , 1); 6 7 System.out.println(first.distance()); 8 } 9 10} 11
#[ネットで見つけた模範回答コード]
java
1public class Point { 2 private int x; 3 private int y; 4 5 public Point() { 6 } 7 8 public Point(int x, int y) { 9 this.x = x; 10 this.y = y; 11 } 12 13 public int getX() { 14 return this.x; 15 } 16 17 public void setX(int x) { 18 this.x = x; 19 } 20 21 public int getY() { 22 return this.y; 23 } 24 25 public void setY(int y) { 26 this.y = y; 27 } 28 29 public double distance() { 30 return Math.sqrt((getX()*getX()) + (getY()*getY())); 31 } 32 33 public double distance(int x, int y) { 34 return Math.sqrt((x-getX())*(x-getX()) + (y-getY())*(y-getY())); 35 } 36 37 public double distance(Point point) { 38 return distance(point.x, point.y); 39 } 40}
回答3件
あなたの回答
tips
プレビュー