Search

07-07

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;

C언어 구조체 heap, stack?

동적 할당 / 정적 할당