객관식 문제
1. 객체지향 프로그래밍(OOP)의 4대 특징이 아닌 것은?
답: d) 복사
2. 클래스에서 필드와 메서드와 차이점은 무엇인가?
답 : a) 필드는 객체의 상태를 나타내고, 메서드는 동작을 정의한다.
3. 다음 중 this 키워드의 역할은 무엇인가?
답 : b) 현재 객체를 참조한다.
4. 클래스에서 this 키워드를 사용하는 이유는 무엇인가?
답 : a) 같은 이름의 지역 변수와 필드를 구분하기 위해
5. 메서드의 리턴 타입이 void인 경우, 메서드가 반환하는 값은?
답 : c) 아무 값도 반환하지 않는다.
6. 아래 코드에서 출력값은?
public class Example {
int a = 5;
public void setA(int a) {
this.a = a;
}
public static void main(String[] args) {
Example ex = new Example();
ex.setA(10);
System.out.println(ex.a);
}
}
답 : b) 10
7. 매개변수(parameter)와 인자(argument)의 차이는 무엇인가?
답 : a) 매개변수는 메서드 정의 시 사용되고, 인자는 메서드 호출 시 전달된다
8. 메서드가 값을 반환하는 데 사용하는 키워드는?
답 : a) return
9. 메서드 내에서 선언된 변수의 효력 범위(scope)는?
답 : d) 메서드 내에서만 유효하다.
10. 자바에서 call by value 의 의미는?
답 : c) 값의 복사본을 전달한다.
11. 객체를 생성할 때 사용하는 키워드는?
답 : c) new
12. 다음 중 클래스 멤버에 해당하지 않는 것은?
답 : d) 지역 변수
13. 다음 중 지역 변수와 필드를 구분하는 올바른 방법은?
답 : c) 지역 변수는 메서드 내에서만 사용된다.
14. 자바에서 기본 데이터 타입을 객체로 감싸는 클래스는?
답 : a) Wrapper 클래스
15. 객체의 생성자를 호출하는 역할을 하는 것은?
답 : d) new 연산자
16. return 키워드는 언제 사용되는가? (중요)
답 : a) 메서드의 실행을 종료하고 값을 반환할 때
17. call by reference는 무엇을 의미하는가?
답 : b) 객체의 참조를 전달한다.
서술형 문제
1. 클래스와 객체의 차이점?
클래스는 객체를 만드는 기능을 가지고 있고 객체는 클래스에 의해 생성되는 것이다.
2. this 키워드를 사용하는 이유?
생성자의 매개변수 이름과 필드에서 선언한 이름이 같을 때 필드에서 선언한 이름을 가르키기 위해서 사용
(이름이 동일할 때 구분하기 위함)
3. 매개변수와 인자의 차이점?
매개변수는 메서드를 만들 때 사용하는 것이고 인자는 메서드를 호출할 때 사용하는 것이다.
4. 필드와 지역 변수의 차이점을 설명하고, this 키워드가 사용되는 이유를 함께 설명하기.
필드는 클래스 안에 있는 변수이고, 지역변수는 메서드 안에서 설정된 변수이다. 따라서 지역변수는 메서드 내에서만 사용이 가능한데 이것을 필드에 값에 적용시킬 때 this를 통해서 필드를 참조할 수 있다.
5. 자바에서 call by value와 call by reference의 차이?
call by value는 값을 복사하여 전달하는 것이고, call by reference는 참조형 자료를 복사하여 전달하는 것이다. call by value는 값을 그대로 복사하기때문에 내부의 값이 수정이 안되지만, call by reference는 주소를 복사하므로 객체 내부의 값이 수정 가능하다.
6. 메서드 내에서 선언된 변수의 효력 범위(scope)란?
메서드 내부에서만 사용 가능하다.
7. 자바에서 생성자(constructor)의 역할?
객체가 생설될 때 호출되는데 이때 객체를 초기화하는 역할을 한다.
8. 클래스에서 final 키워드를 사용하는 이유와 그 효과?
final키워드를 사용함으로서 변수가 변하지 않도록 한다. 이렇게 하면 상수로 고정을 할 수 있어 값이 바뀌지 않아야 할 때 유용하다.
클래스에 final 키워드를 사용하면 자식 클래스를 생성할 수 없다.
9. 메서드가 return을 사용하는 이유와 반환되는 값을 처리하는 방법?
return을 사용하는 이유는 값을 반환하기 위해서이고, 이 반환되는 값을 변수로 설정하거나 다른 메서드의 인자로 설정할 수 있다
10. 객체를 생성하는 방법과 그 과정에서 new 연산자의 역할?
객체는 ('클래스이름' '객체이름' = new '클래스이름')을 통해 생성할 수 있는데 여기서 new는 새로운 객체를 생성하는 역할을 한다.
11. 클래스와 인터페이스의 차이점?
인터페이스는 메서드의 틀을 정의하고 그 틀을 통해 구현하는 것이 클래스이다.
12. 다음 코드에서 this 키워드가 어떻게 동작하는지 설명하기
public class Test {
int value;
public Test(int value) {
this.value = value;
}
}
다른 메서드에서 Test() 괄호안에 인자로 수를 넣는다면 그 수는 Test메서드의 매개변수인 value로 전달되고 this 키워드는 그 값이 필드의 value에 할당이 되도록 한다.
13. 지역 변수와 전역 변수의 차이점?
지역 변수는 모든 메서드에서 접근이 가능하지만 전역 변수는 해당된 메서드 내에서만 접근이 가능하다.
코딩테스트 문제
2. 1번 변형 문제 (반드시 1번을 먼저 해결한 후, 풀어주세요!)
- 아래 코드는 1번 문제를 해결하기 위한 코드이다. 주어진 코드에서 class를 완성시켜 프로그램을 실행했을 때, 올바른 결과가 출력되도록 만드시오.
출력 결과: [1, 3, 0, 1]
import java.util.*;
class NumberFilter {
private List<Integer> numbers;
public NumberFilter(int[] numbers) {
this.numbers = new ArrayList<>();
for (int num : numbers) {
this.numbers.add(num);
}
}
public List<Integer> removeConsecutiveDuplicates() {
List<Integer> result = new ArrayList<>();
result.add(numbers.get(0));
for (int i = 1; i < numbers.size(); i++) {
if (!numbers.get(i).equals(numbers.get(i - 1))) {
result.add(numbers.get(i));
}
}
return result;
}
}
public class Main {
public static void main(String[] args) {
int[] arr = {1, 1, 3, 3, 0, 1, 1};
NumberFilter numberFilter = new NumberFilter(arr);
List<Integer> filteredNumbers = numberFilter.removeConsecutiveDuplicates();
System.out.println(filteredNumbers); // [1, 3, 0, 1]
}
}
'Java' 카테고리의 다른 글
4주차 퀴즈 (2) | 2024.11.06 |
---|---|
[2024-2 Java 스터디] #4주차 (4) | 2024.11.05 |
[2024-2 Java 스터디] #3주차 (0) | 2024.10.30 |
2주차 퀴즈(2) (2) | 2024.10.15 |
2주차 퀴즈(1) (0) | 2024.10.15 |