우선, 내가 아는 this 질문을 읽었습니다. 제가 알고있는 것과 같은 근본적인 문제를 다루고 있습니다.Java에서 다른 생성자를 호출하는 방법은 무엇입니까? (초보자 용 예)
그럼에도 불구하고 나는 내 자신의 특정 문제에 대한 해결책을 적용 할 수 없습니다.
다음 예제에서는 몇 가지 오버로드 된 Clock 생성자가 있습니다. 오류는 문자열 입력에서 Clock을 만들려고 할 때 발생합니다.
누구나 생성자 호출의 올바른 구현을위한 조언이 있습니까?
코드 :
public class Clock
{
public static void main(String[] args)
{
Clock testClock = new Clock(153, 26);
System.out.println("Input: Clock(153, 26)");
System.out.println(testClock.toString());
Clock testClock2 = new Clock(9000);
System.out.println("Input: Clock(9000)");
System.out.println(testClock2.toString());
Clock testClock3 = new Clock(23:59);
System.out.println("Input: Clock(23:59)");
System.out.println(testClock3.toString());
System.out.println("Input: testClock2.add(20)");
System.out.println(testClock2.add(20));
System.out.println("input: testClock.add(testClock2)");
System.out.println(testClock.add(testClock2).toString());
}
// Constructors
public Clock(int min, int h)
{
this.min += min%60;
h += min/60;
this.h += h%24;
}
public Clock(int min)
{
this.min += min%60;
this.h += (min/60)%24;
}
public Clock (String theTime)
{
int minutes = Integer.parseInt(theTime.substring(0,1));
int hours = Integer.parseInt(theTime.substring(3,4));
Clock stringClock = new Clock(minutes, hours);
return stringClock; //error occurs *********************
}
private int h;
private int min;
public int getMin() {
return min;
}
public int getH() {
return h;
}
public Clock add(int min)
{
int newMin = this.min + min;
int newH = this.h;
Clock newClock = new Clock(newMin, newH);
return newClock;
}
public Clock add(Clock c)
{
int newMin = this.min + c.min;
int newH = this.h + c.h;
Clock newClock = new Clock(newMin, newH);
return newClock;
}
public String toString()
{
String theTime = "";
if (this.h < 10)
{
theTime += "0" + this.h;
}
else
{
theTime += this.h;
}
theTime += ":";
if (this.min < 10)
{
theTime += "0" + this.min;
}
else
{
theTime += this.min;
}
return theTime;
}
}
당신이 다른 질문에서 제안 된 솔루션를 시도하는 데 도움이
희망 살펴보세요? 대신'this (minutes, hours)'를 사용하면 생성자가 객체를 반환하지 않습니다. – NickL
당신은 생성자에서 반환하지 않습니다. –
오류가 있습니까? 그렇다면 어디에서? – notyou