import java.awt.Color; public abstract class TakistusKomponent{ double tegelikPinge; double tegelikVool; int x, y; int valjaX, valjaY; int klemmiraadius=3; public void joonista(java.awt.Graphics g){ if(kysiTegelikV6imsus()<=suurimLubatudV6imsus()){ g.setColor(Color.black); } else { g.setColor(Color.red); } g.drawString(kysiTegelikV6imsus()+"W/"+suurimLubatudV6imsus()+"W", x, y-15); g.drawString(kirjeldus(), x, y); g.drawString(getClass().getName(), x, y+15); g.drawOval(x-klemmiraadius, y-klemmiraadius, 2*klemmiraadius, 2*klemmiraadius); g.drawOval(valjaX-klemmiraadius, valjaY-klemmiraadius, 2*klemmiraadius, 2*klemmiraadius); } public String kirjeldus(){ return koguTakistus()+" Ohm "+kysiTegelikVool()+"A "+ kysiTegelikPinge()+"V"; } public void paiguta(int ux, int uy){ paiguta(ux, uy, ux, uy+20); } public void paiguta(int ux, int uy, int uvx, int uvy){ x=ux; y=uy; valjaX=uvx; valjaY=uvy; } public void pingesta(double v){ tegelikPinge=v; tegelikVool=v/koguTakistus(); arvutaAlamelementideAndmed(tegelikVool); } public void vooluAlla(double a){ tegelikPinge=a*koguTakistus(); tegelikVool=a; arvutaAlamelementideAndmed(a); } public double kysiTegelikV6imsus(){ return tegelikPinge*tegelikVool; } public double kysiTegelikPinge(){ return tegelikPinge;} public double kysiTegelikVool(){ return tegelikVool;} public abstract void arvutaAlamelementideAndmed(double uusVool); public abstract double koguTakistus(); public abstract double suurimLubatudPinge(); public boolean kasPingePiisavaltMadal(){ return suurimLubatudPinge()>=kysiTegelikPinge(); } double suurimLubatudVool(){ return suurimLubatudPinge()/koguTakistus(); } public double suurimLubatudV6imsus(){ return suurimLubatudPinge()*suurimLubatudVool(); } }