前提・実現したいこと
ここに質問の内容を詳しく書いてください。
短期間学んだことの応用で簡単なjavaプログラムを作っています。
普通に実行すれば問題ないごくごく簡単なプログラムです。
そこでファイル2にprivate修飾子を付けてもファイル3が実行できるように
アクセサメソッドを実装してみたのですが、以下のエラーメッセージが発生しました。
どこかにgetRを付ければ良いと考えているのですが、
どうすればエラーがなくなるでしょうか?
教えてください。
発生している問題・エラーメッセージ
C:\Users\hidea\Desktop\p000\pack01> javac SolidCalculation.java
SolidCalculation.java:5: エラー: シンボルを見つけられません
Solid so1 = new Sphere( getR(30.0) );
^
シンボル: メソッド getR(double)
場所: クラス SolidCalculation
エラー1個
該当のソースコード
(ファイル1)
abstract class Solid {
abstract public double getVolume();
}
(ファイル2)
class Sphere extends Solid {
final double pi = 3.14;
double r;
private Sphere(double r) {
this.r = r;
}
public double getR() {
return this.r;
}
public void setR(double r) {
this.r = r;
}
public double getVolume() {
return (4.0 / 3.0) * pi * Math.pow(r,3.0) ;
}
}
(ファイル3)
class SolidCalculation{
public static void main( String [] args ){
Solid so1 = new Sphere( getR(30.0) );
Solid so2 = new Rectangular( 10.0, 20.0, 30.0 );
System.out.println( "Sphere = "+ so1.getVolume() ); System.out.println( "Rectangular = "+ so2.getVolume() ); System.out.println( "Total = "+ ( so1.getVolume() + so2.getVolume() ) ); }
}
試したこと
ファイル2にgetterメソッドとsetterメソッドを設定し、
ファイル3で呼び出そうとgetRを入れて四苦八苦して色々試したのですが、
全て同じようなエラーが出て上手くいきません。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。