我是一個初學者在編程繼承,我試圖設計一個RGB顏色混合器在這裏使用繼承設計,它有3個類,RedScrollBar,GreenScrollBar和BlueScrollBar。我試着先創建一個父類,名爲ScrollBar,並試圖將其擴展到3個類。但後來我意識到每個類,我需要改變自己的變量名也是如此,例如:我將如何將繼承應用到非常類似的類,如BlueScrollBar和RedScrollBar?
class BlueScrollBar {
//establish line x1 y1 and x2 y2
float blueLX1;
float blueLY1;
float blueLX2;
float blueLY2;
//establish the box, x, y, width and height;
float blueBX;
float blueBY;
float bW = 20;
float bH = 20;
boolean blueMouseOver = false;
boolean blueBoxLocked = false;
float blueYOffset = 0.0;
BlueScrollBar(int lx1, int ly1, int lx2, int ly2) {
blueLX1 = lx1;
blueLY1 = ly1;
blueLX2 = lx2;
blueLY2 = ly2;
blueBX = lx1;
blueBY = ly2/2;
}
void draw(){
if(mouseX >=blueBX-bW/2 && mouseX <=blueBX+bW/2 && mouseY >=blueBY-bH/2 && mouseY <=blueBY+bH/2){
fill(0);
blueMouseOver = true;
} else {
fill(255);
blueMouseOver = false;
}
line(blueLX1, blueLY1, blueLX2, blueLY2);
rect(blueBX, blueBY, bW, bH);
if (blueBY <= blueLY1 || blueBY >= blueLY2) {
blueBoxLocked = false;
}
}
void mousePressed(){
if(blueMouseOver){
blueBoxLocked = true;
blueBY = mouseY - blueYOffset;
} else {
blueBoxLocked = false;
}
}
void mouseDragged(){
if(blueBoxLocked){
blueBY = mouseY - blueYOffset;
}
}
void mouseReleased(){
blueBoxLocked = false;
}
}
,爲RedScrollBar或GreenScrollBar,我可以從字面上複製粘貼相同的代碼來創建一個新的類,但我需要將包含單詞「藍色」的所有變量更改爲「紅色」或「綠色」以使其工作。什麼是更好的方法來做到這一點?任何幫助,將不勝感激。
變量名不以階級關係。如果需要,可以創建一個紅色的BlueScrollBar。如果你需要傳入十六進制顏色代碼,那也沒關係。 – Ryan