[JAVA] 23년 기출 문제 풀이 (1회 ~ 4회)

2024. 10. 13. 20:18·정보처리기사[실기]

[23년 1회]

class Static{
    public int a=20;
    static int b=0;
}

public class Main{
	public static void main(String[] args){
    	int a = 10;
        Static.b=a;
        Static st = new Static();
        
        System.out.println(Static.b++);
        System.out.println(st.b);
        System.out.println(a);
        Systme.out.println(st.a);
    }
}
더보기

정답

10

11

10

20

 

[풀이]

✔️ static 필드 b는 모든 객체가 공유, 어떤 객체로 접근하던지간에 b의 값은 동일

 

System.out.println(Static.b++); 

→ b의 현재 값 출력 = 10 , 출력 후 b++로 인해 b는 11이 됨

System.out.println(st.b)

→ st객체를 통해 b를 출력하지만, b는 정적 필드이기 때문에 11이 출력

System.out.prinlnt(a)

→ 지역변수 값 출력 = 1-0

System.out.println(st.a)

→ st객체의 a 값이 20 출력

 

class Parent{
	int x = 100;	

    Parent() {
    	this(500);
    }
    Parent(int x){
    	this.x = x;
    }
    int getX(){
    	return x;
    }
}

class Child extends Parent{
	int x = 1000;
    
    Child(){
    	this(5000);
    }
    
    Child(int x) {
    	this.x = x;
    }
}

public class Main{
	public static void main(String[] args){
    	Child obj = new Child();
        System.out.println(obj.getX());
    }
}
더보기

정답 : 500

 

[풀이]

✔️ 상속 관계에서는 Parent의 생성자를 무조건 먼저 호출함 !

 

1. main함수에서 Child obj 생성 → Child 생성자 호출

2. Child클래스는 Parent 클래서 상속 → Parent 생성자 먼저 호출

3. 매개변수 없음 → Parent() 호출 → x = 500

4. 매개변수 없음 → Child() 호출 → x = 5000

5. obj.getX() → Child에 없음 → Parent에서 호출 → Parent의 x 값으로 출력

 


[2023년 2회]

public class Main{
	public static void main(String[] args){
    	String str1 = "Programming";
        String str2 = "Programming";
        String str3 = new String("Programming");
        
        System.out.println(str1 == str2);
        System.out.println(str1 == str3);
        System.out.pinrtln(str1.equals(str3));
        System.out.print(str2.equals(str3));
    }
}
더보기

정답

true

false

true

true

 

[풀이]

str1, str2는 리터럴로 문자열을 생성하므로 같은 메모리 주소 할당

str3는 새로운 객체를 생성한 것이므로 str1, str2와는 다른 메모리 주소 할당

출력문 1번과 2번은 객체 주소를 비교하는 것

출력문 3,4는 내용 비교


[2023년 3회]

public class Main{
    public static void main(String[] args){
        A b = new B();
        b.paint();
        b.draw();
    }
}

class A{
    pubilc void paint(){
        System.out.print("A");
        draw();
    }
    public void draw(){
    	System.out.print("B");
        draw();
    }
}

class B extends A{
    public void paint(){
        super.draw()
        System.out.print("C");
        this.draw();
    }
    public void draw(){
    	System.out.print("D");
    }
}
더보기

정답

BDCDD

 

[풀이]

b.paint() 

→ 오버라이딩된 메서드 paint()를 실행

- super.draw() = BD

: 오버라이딩 된 메서드가 우선적으로 실행되기 때문에 class A에서 호출하는 draw()는 class B의 메서드가 호출됨

- this.draw()

→ class B에 있는 draw가 호출 

➡️ BDCD

 

b.draw()

→ 오버라이딩 된 메서드 draw() 호출

➡️ D

 

class Person{
	private String name;
    public Person(String val){
    	name = val;
    }
    public static String get(){
    	return name;
    }
    public void print(){
    	System.out.println(name);
    }
}

public class Main{
	public static void main(String[] args){
    	Person obj = new Person("Kim");
        obj.print();
    }
}

// 다음 코드에서 오류가 발생하는 코드 라인수를 적으시오
더보기

정답 : 7 

(return name;)

 

[풀이]

get()은 static 메서드 → static 영역에 저장됨

get()에서 사용된 name 변수는 static 키워드가 붙지 않고, 메서드 외부에 선언된 인스턴스 변수

name 변수가 static으로 선언되지 않았는데 static 함수에서 return 하게 되면 오류가 발생함

✔️ static 메서드는 static 변수만 참조할 수 있음 

 

저작자표시 변경금지 (새창열림)

'정보처리기사[실기]' 카테고리의 다른 글

[Python] 20년 기출 문제 풀이(1회 ~ 4회)  (0) 2024.10.14
[JAVA] 24년 기출 문제 풀이(1회, 2회)  (1) 2024.10.13
[JAVA] 22년 기출 문제 풀이 (1회 ~ 3회)  (0) 2024.10.13
[JAVA] 21년 기출 문제 풀이 (1회 ~ 4회)  (1) 2024.10.11
[JAVA] 20년 기출 문제 풀이 (1회 ~ 4회)  (1) 2024.10.07
'정보처리기사[실기]' 카테고리의 다른 글
  • [Python] 20년 기출 문제 풀이(1회 ~ 4회)
  • [JAVA] 24년 기출 문제 풀이(1회, 2회)
  • [JAVA] 22년 기출 문제 풀이 (1회 ~ 3회)
  • [JAVA] 21년 기출 문제 풀이 (1회 ~ 4회)
microsaurs
microsaurs
개발 스터디로그입니다. 공부한 내용을 정리해서 올립니다 ㅇ-ㅇ
  • microsaurs
    microsaurs.devlog
    microsaurs
  • 전체
    오늘
    어제
    • 분류 전체보기 (138)
      • Algorithm Study (39)
      • JAVA (8)
      • Swift (11)
      • Python (21)
      • CS (5)
      • React (3)
      • 리얼클래스 studylog (27)
      • 정보처리기사[실기] (23)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    더오피스
    리얼클래스
    프로그래밍언어
    ios프로그래밍을위한스위프트기초
    study
    영어회화
    javaStudy
    스위프트기초
    타일러영어
    영어독학
    The Office
    자바알고리즘
    Python
    나도코딩
    알고리즘
    ios개발
    정보처리기사
    정보처리기사실기
    SWIFT
    파이썬
    ios프로그래밍
    정처기실기
    정보처리기사프로그래밍언어
    Java
    프로그래머스
    Algorithm
    javaalgorithm
    리얼학습일기
    파이썬기초
    파이썬문법
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
microsaurs
[JAVA] 23년 기출 문제 풀이 (1회 ~ 4회)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.