前提・実現したいこと
以下の図を参考にしてShape2Dという名の基底クラス,Colorクラス,個々の派生クラスを作成したい.
その際,Colorクラスのメンバ関数は
public double getR(); //赤色を返す関数
public double getG(); //緑色を返す関数
public double getB(); //青色を返す関数
のみしか指定されておらず,Shape2Dにて
public void setColor(Color c);//Color 変数に値をセットする関数
を記述することになっているが,どうすればColorのprivate変数に値を代入できるかわからない.
該当のソースコード
public abstract class Shape2D { private Color color; public void setColor(Color c) { color.r= c.getR(); /* color.rは不可視なのでここでエラーが出る */ } } public class Color { private double r,g,b; /* r(赤), g (緑), b(青), 0.0<=r,g,b <=1.0 */ public double getR() { return r; } public double getG() { return g; } public double getB() { return b; } }
試したこと
set関数をColorクラス側に追加しようと考えたが,課題の仕様上Shape2DにしかsetColor関数は追加できないようだった.
円,三角形,長方形クラスはShape2Dを継承するので,ColorクラスにはShape2Dを通してのみアクセスするものだと思わます.
補足情報(FW/ツールのバージョンなど)
eclipse2018のjava10を使用しています.
回答1件
あなたの回答
tips
プレビュー