インストラクターが私に与えたコードを変更することができますが、これはオプションではない場合、この問題を解決する方法を知っています。私は、Javaでの経験があまりないことを強調する必要があります。Javaクラスは文字列の代わりにポインタを返します
私はスケルトンコードが提供されているプロジェクトを完成させるためにこの課題が与えられています。これは私がそれを実行しているから取得しています出力されます:あなたが見ることができるように、「ゲノム配列」フィールドではなく、より多くのようになります。有効なデータのポインタ「AAAGGTTATTA ...」
を印刷しているGenomic sequence: [[email protected]
Sequence length: 25
Array of exon positions: [1, 5, 8, 10, 13, 16]
情報がプリントアウトされた場所です:私はポインタがに代わりのポインタ自体を指しているものをプリントアウトするために割り当てでこのクラスを変更することができれば、私は、
public class BioSeqData
{
public static void main(String[] args)
{
String demodna = new String("AATGCCAGTCAGCATAGCGTAGACT");
int[] ardemo = {1, 5, 8, 10, 13, 16};
GenomicDNASequence gdemo = new GenomicDNASequence(demodna.toCharArray());
System.out.println("Genomic sequence: " + gdemo);
...
だろうが、それはありませんオプション。 GenomicDNASequenceをポインタの代わりにchar配列を返すように変更するにはどうすればよいですか?
public class GenomicDNASequence extends DNASequence
{
public boolean[] iscoding; // made public instead of private for grading.
public GenomicDNASequence(char[] gdnaarr)
{
super(gdnaarr);
}
...
そして、それが拡張するクラス:
public class DNASequence extends Sequence
{
public DNASequence(char[] dnaarr)
{
super(dnaarr);
}
...
とクラスをそれが延びていること:
public class Sequence
{
public char[] seqarr; // made public instead of protected for grading.
public Sequence(char[] sarr)
{
for(int i=0;i<sarr.length;i++){
if (!isValidLetter(sarr[i])){
throw new IllegalArgumentException("Invalid sequence of letters for class edu.iastate.cs228.hw1.Sequence");
}
}
seqarr=sarr;
...
を生成します。それはあなたを始めさせるのに十分なはずです。 –
質問の冒頭の太字のテキストを参照してください。 – sam
そして、私は、データが何であるか知っているので、そのデータを取り、あなたが望む出力を得るのに十分な情報があると言います。それは授業のため、学ぶチャンスです(これはあなたから取られましたが、それはあなたのせいではありません)。 –