用java中的构造函数返回值
好吧,这是一个作业,所以不要帮我太多。。。我只需要返回一个DnaSequence对象。就这样。嗯,这是构造器用java中的构造函数返回值,java,object,constructor,Java,Object,Constructor,好吧,这是一个作业,所以不要帮我太多。。。我只需要返回一个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("[^ATC
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;
}
}
下面是我的完成结果应该是什么样子的链接。(如果你想看的话,只是为了好玩)
So DnaSequence.java:14错误:不兼容类型:意外返回值
返回dna:
^
是的,这就是我盯着看了5个小时的东西,任何帮助都将不胜感激好的,给你两个提示:
- 构造函数不返回值。它们创建对象
- 如果要打印自定义对象,应该定义一个specfic-toString方法来指示Java如何显示该对象。举个例子
- 构造函数不返回值。它们创建对象
- 如果要打印自定义对象,应该定义一个specfic-toString方法来指示Java如何显示该对象。举个例子
- 好的,给你两个提示:
char[]dna
字段(不要将字段public
仅仅“因为”)。接下来,字符串
是不可变的;所以str.replaceAll(“[^ATCG]”,“)没有赋值的代码>是没有意义的(但您可以在调用tocharray()
之前将其链接起来)。您需要覆盖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);
}
}
构造函数用于初始化对象内部状态。这里逻辑上是char[]dna
字段(不要将字段public
仅仅“因为”)。接下来,字符串
是不可变的;所以str.replaceAll(“[^ATCG]”,“)没有赋值的代码>是没有意义的(但您可以在调用tocharray()
之前将其链接起来)。您需要覆盖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序列。
请注意,如果传递的对象是对象,则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;
}
}
我不知道所有的要求,但要通过测试,您只需要在DnaSequence
上实现toString()
,然后返回DNA序列。
请注意,如果传递的对象是对象,则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;
}
}
构造器不应该返回任何东西。我看不出任何反对票的理由。这个问题很清楚,有例子,很容易回答。发帖人不知道Java的基本概念这一事实并不是投反对票的理由,而是他来这里的原因。构造函数不应该返回什么。我看不出投反对票的任何理由。这个问题很清楚,有例子,很容易回答。发帖人不知道Java的基本概念这一事实并不是反对的理由,这也是他来这里的原因。jvm就是这样做的。然后调用构造函数来初始化新创建的对象。非常感谢,工作得很好:)稍微更正一下:构造函数不创建对象。jvm就是这样做的。然后调用构造函数来初始化新创建的对象。非常感谢,工作得很好:)谢谢,哈哈,这是一行很好的代码,我不知道我可以在一行中调用这么多方法。@jacobburges。谢谢,哈哈,这是一行很好的代码,我不知道我可以在一行中调用这么多方法。@jacobburges。