public class Alkuelain {
private static int otuslaskuri = 0;
private final int YKSILOLLISYYS;
private static char[] perusemas = {'A','C','G','T'}; // koska tämä taulukko ei ole oliokohtainen, might as well be static
private static final int perimanKoko = 30;
private String perimataulu;
private char[] perima; // esitellään ne oliomuuttujat mielellään täällä (tai sit konstruktorissa, muttei ainakaan sekasin)
public Alkuelain(){ //luo alkueläimen, jolle arvotaan perimä.
this.YKSILOLLISYYS = otuslaskuri;
++Alkuelain.otuslaskuri; //tähän kelpais ihan pelkästään ++otuslaskuri, mutta käy se näinkin
this.perima = new char[perimanKoko]; // this. oliomuuttujien edessä on (lähes) aina jees
for (int i=0; i < this.perima.length; ++i){
this.perima[i] = perusemas[(int) Math.random()*4];
}
perimataulu = new String(this.perima);
}
public Alkuelain(char[] perima){ //luo alkueläimen annetulla perimällä. Määrittele mitä tehdään, jos perimä ei ole kelvollinen.
//char[] toCharArray()
}
public void mutaatio(){ //aikaansaa aidon mutaation alkueläimen perimään, so. jokin arvottu nukleotidi muuttuu arvotulla tavalla.
}
public Alkuelain jakaudu(){ //palauttaa arvonaan jakautumalla syntyneen alkueläimen. Huomaa että myös perimätaulukon sisältö on kopioitava! Miksi?
}
public Alkuelain pariudu(Alkuelain toinen){ //tuottaa this-alkueläimen ja parametrina annetun alkueläimen jälkeläisen.
}
public String toString(){ //tuottaa merkkiesityksen alkueläimestä
return "Alkueläin "+this.YKSILOLLISYYS+".: "+this.perimataulu; //ei tartte sulkuja palauttaakseen yhden stringin
//vähensin tästä vähän sulkuja ja asettelin järkevämmin noi konkatenaatiot
}
}