Java
init
//code.oa.gg/java8/938
// 문제 : 아래와 같이 출력되도록 해주세요. init() 메세드에 의해서 출력되어야 합니다.
// 조건 : 사람 클래스의 생성자는 사용할 수 없습니다.
// 힌트 : 모든 생성자는 자신의 일을 하기 전에 super(); 부터 실행합니다.
// 힌트 : 모든 생성자는 자신의 일을 하기 전에 부모클래스의 생성자 부터 실행합니다.
class Main {
public static void main(String[] args) {
new 사람();
// 출력 : 사람이 초기화 됩니다.
}
}
class 동물 {
}
class 사람 extends 동물 {
void init() {
System.out.println("사람이 초기화 됩니다.");
}
}
Java
복사
상속 → 부모 클래스 생성자를 포함한 함수를 자식 클래스로 가져옴
new 사람();을 했을 때 동물 생성자가 실행되고 init()함수가 실행됨. 사람 객체를 생성하는 것은 사람 클래스에서 진행되기 때문에 사람클래스 init()함수가 실행되는 것.
new 사람().init()처럼 실행되는 것.
while 라벨링
outer: //while 문 라벨링
while(true){
System.out.printf("명령) ");
String cmd = sc.nextLine().trim();
int count = 0;
switch (cmd){
case "종료" :
break outer;
case "등록" :
System.out.print("명언 : ");
String content = sc.nextLine().trim();
System.out.print("작가 : ");
String writer = sc.nextLine().trim();
JsonObject origin = readJson();
int lastIndex = getLastIndex();
save(origin, lastIndex, content, writer);
System.out.println(lastIndex + "번 명언이 등록되었습니다.");
}
}
Java
복사
switch 문을 break하는 게 아닌 while문을 break하기 위해 라벨링 후 break;