[英]returning a value with a constructor in java
好了,这是一个分配,所以不要帮我太多...我只需要返回一个DnaSequence对象。 就是这样。 嗯,继承人
import java.io.File;
import java.lang.String;
public class DnaSequence {
public char[] dna;
public DnaSequence(char[] dna) {
String str = String.valueOf(dna);
str.replaceAll("[^ATCG]", "");
dna = str.toCharArray();
for (int i = 0; i < dna.length; i++) {
this.dna[i] = dna[i];
}
return dna;
}
}
稍后我将使用io.file和lang.string。
这是Main(用于测试)
public class DnaSequencetEST {
public static void main(String[] args) {
char[] bases = { 'G', 'A', 'T', 'T', 'A', 'C', 'A' };
DnaSequence seq = new DnaSequence(bases);
System.out.println(seq);//Should print "GATTACA"
}
}
下面是我的最终结果应该做的和/或看起来的链接。(如果您想看看,这很有趣) http://jeff.cis.cabrillo.edu/datasets/12j_dnasequence/DnaSequence.html
所以DnaSequence.java:14错误:不兼容的类型:意外的返回值返回dna:^是的,那是我一直在盯着看5个小时的东西,任何帮助将不胜感激
好的,两个提示给您:
构造函数用于初始化对象的内部状态。 在逻辑上,这里是char[] dna
字段(并且不要因为“因为”而将字段设为public
)。 接下来, String
是不可变的; 所以str.replaceAll("[^ATCG]", "");
没有分配是没有意义的(但是您可以在调用toCharArray()
之前将其toCharArray()
)。 您需要重写toString()
以实现所需的行为。 您可以简单地将char[]
传递给String
构造函数。 喜欢,
public class DnaSequence {
private char[] dna;
public DnaSequence(char[] dna) {
this.dna = new String(dna).replaceAll("[^ATCG]", "").toCharArray();
}
@Override
public String toString() {
return new String(dna);
}
}
我不知道所有要求,但要通过该测试,您只需要在DnaSequence
上实现toString()
并返回DNA序列即可。 注意,如果传递的对象是Object
则System.out.println
将始终调用toString
。
解:
public class DnaSequence {
public final String dna;
public DnaSequence(char[] dna) {
this.dna = String.valueOf(dna).replaceAll("[^ATCG]", "");
}
@Override
public String toString() {
return this.dna;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.