Closed yummygyudon closed 2 years ago
Q1 . 클래스, 객체, 인스턴스에 대해서 설명하시오. (객체와 인스턴스는 서로 비교하면서 설명하시오)
객체는 클래스와 인스턴스를 모두 포괄하는 일반적인 개념이며, 클래스는 객체에 대해 정의해놓은 것, 인스턴스는 정의된 클래스를 이용해 생성된 것을 의미한다.
Q2. 다음 중 소스파일의 이름이 잘못 작성된 것을 모두 고르시오.
(2)??
Hello2.java
-----------------------
class Hello2 {}
class Hello3 {}
(3)
Hello2.java
-----------------------
public class Hello2 {}
public class Hello3 {}
(4)
Hello3.java
-----------------------
public class Hello2 {}
class Hello3 {}
Q1. 인스턴스 변수와 클래스 변수의 공통점(1개)와 차이점(2개 또는 3개)를 말하시오.
인스턴스 변수와 클래스 변수는 같이 한 클래스 내에서 정의되지만 클래스 변수는 모든 인스턴스에서 동일한 값을 가지고, 클래스가 로딩되는 단 한 순간 초기화되지만 인스턴스 변수는 모든 인스턴스에서 다른 값을 가질 수 있다.
클래스 변수는 클래스 이름을 통해 사용가능하다.
Q2. 클래스의 정의가 아닌 것은?
b. 같은 종류의 여러 데이터의 집합과 함수를 함께 다룰 수 있도록 결합한 것
Q1. 메서드란 객체지향개념에서 함수를 의미하며, 특정 작업을 수행하는 단위로 문장들을 하나로 묶은 것을 의미한다. 또한, 클래스 안에 반드시 있어야 한다. 메서드의 장점 4개는? hint : ㅈㅂ, ㄱㄹ, ㅈㅅㅇ, ㄱㄱ
클래스가 메소드를 가지고 필요한 기능을 직접 수행하는 것으로 코드의 재사용성을 높일 수 있다. (재사용) 메소드를 통한 캡슐화로 외부에서 클래스의 데이터를 함부로 변화시키는 것을 막을 수 있다. (가림..)
더는 모르겠음..
Q2. 다음은 메서드를 실행하는 코드이다. 메서드 실행 흐름을 순서대로 나열하시오.
ㄷ - ㄱ - ㄴ
Q1 . 반환값의 유무에 관계없이 모든 메서드는 하나의 return문이 있어야 하는데, return문을 안써도 되는 경우는 어떤 경우인가?
모르겠음. 그냥.. 다 쓰는거아닌가요?(자바를 C처럼 하고있어요)
Q2 . 매개변수의 타입이 < >일 때는 read & write이고 , 매개변수의 타입이 < >일 때는 read only이다. <>안에 들어갈 변수의 타입을 각각 적으시오.
1. 참조형
2. 기본형
Q1 . static 메서드가 인스턴스 멤버를 사용할 수 없는 이유
static메서드는 클래스 멤버에만 접근할 수 있으며, 인스턴스 멤버(변수/메서드)를 사용할 수 없다...(그것이 정의니까...)
Q2. static을 붙이는 것을 고려해야하는 때를 서술
메서드를 구성할 때 해당 메서드에서 인스턴스 멤버를 사용하지 않는다면 static을 붙이는 것을 고려해야 한다.
Q3 . 오버로딩(overloading)의 조건 중 알맞은 것을 고르시오.
② 매개변수의 갯수 혹은 타입이 달라야한다.
Q1 . 생성자는 인스턴스를 생성한다.
( O )
Q2 . 생성자의 조건 중 알맞은 않은 것을 고르시오.
② 생성자는 리턴 값이 없다.
Q1 . 초기화 블럭이 실행되는 시점과 사용하는 이유는 무엇인가?
초기화 블럭은 인스턴스 초기화블럭과 클래스 초기화 블럭이 있다. 인스턴스 초기화 블럭은 인스턴스가 초기화될 때마다 한번씩, 클래스 초기화 블럭은 클래스가 로딩될 때 최초 1번만 수행된다. 클래스 초기화 블럭은 클래스 변수의 복잡한 초기화를 위해, 인스턴스 초기화 블럭은 각 생성자에서 수행되는 공통적인 작업을 묶어서 수행하기 위해 실행된다.
Q2 . 클래스변수와 인스턴스 변수의 초기화 시기의 순서에는 어떤 차이가 있는가?
클래스 변수는 클래스가 로딩되면서 최초 한 번만 수행되고, 인스턴스 변수는 인스턴스의 초기화가 이루어질 때마다 수행된다.
Q3 . 다음 중 맞는 것을 모두 고르고, 틀린 건 고쳐주세요.
1. 모든 변수는 초기화 하지 않아도 생성자가 자동으로 초기화 해준다.
- 클래스 형태가 아닌 지역변수는 자동으로 초기화되지 않는다.
2. 클래스 초기화 블럭은 인스턴스 생성될 때마다 자동으로 실행된다.
- 클래스 초기화 블럭은 클래스가 로딩될 때 한 번 실행된다.
3. 인스턴스의 자동 초기화는 가장 먼저 수행된다
- 맞음
4. boolean의 기본값은 True다
- false이다.
Q4 . 변수 초기화 빠른 순으로 나열하시오
a. static int a;
b. int b;
c. static { int c = 0; }
d. { int d = 0; }
e. int e;
f. static int f;
c / a=f / d / b=e ???
... 초기화 하는 코드가 c와 d밖에 없는데 이중에서 c가 먼저 실행되긴 한다...
Chap1~
클래스 : 객체를 정의해 놓은 것 객체 : 실제로 존재하는 것 인스턴스 : 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 함
Chap7~
- b
cv, iv 공통점 : 클래스 영역에 선언됨 차이점 : cv에만 static, iv는 별도의 저장공간을 가짐,
Chap13~
중복 줄일 수 있다 관리가 쉽다 재사용 할 수 있다 간결해 이해하기 쉽다
Chap19~
- 반환타입이 void인 경우
- 참조형, 기본형
Chap26~
- static메서드는 객체생성 없으므로 객체없이 인스턴스멤버 못함
- 클래스의 멤버변수 중 모든 인스턴스에 공통된 값이 있으면 static
- 2
Chap32~
- x
- 4
Chap38~
- 초기화 블럭이 실행되는 시점? 사용되는 이유? cv 초기화 시점 : 메모리에 올라갈 때, 클래스가 처음 로딩될떄 iv 초기화 시점 : 인스턴스가 생성될 때 마다 멤버변수의 초기화는 선택이지만 지역변수(수동)는 메모리 재사용이 빈번하기 때문에
클래스변수와 인스턴스변수의 초기화 시기에 순서에는 어떤 차이가 있는가? 클래스변수 다음에 인스턴스변수
x 1. 지역변수는 수동 x 2. 인스턴스 초기화 블럭이 인스턴스 생성될 때마다.. x 3. cv먼저 수행됨 O 4.
???? a,f - b,e - c-d
Chap 1 ~ 6
Chap7 ~ 12
인스턴스 변수와 클래스 변수의 공통점(1개)와 차이점(2개 또는 3개)를 말하시오. 공통점: 클래스 내부에서 선언 차이점: 클래스 변수는 인스턴스 생성 없이 사용 가능(매개변수), 인스턴스 변수는 인스턴스 생성 필수 클래스 메서드에서는 클래스 변수만 사용 가능, 인스턴스 메서드에서는 클래스와 인스턴스 변수 모두 사용 가능
클래스의 정의가 아닌 것은? b: 다른 종류의 데이터화 함수 사용 가능
Chap 13 ~ 18
메서드란 객체지향개념에서 함수를 의미하며, 특정 작업을 수행하는 단위로 문장들을 하나로 묶은 것을 의미한다. 또한, 클래스 안에 반드시 있어야 한다. 메서드의 장점 4개는? 재사용, 과정을 몰라도 됨, 하나의 기능만 담당하기 때문에 수정이 쉽다,
다음은 메서드를 실행하는 코드이다. 메서드 실행 흐름을 순서대로 나열하시오. ㄷ->ㄱ->ㄴ
Chap 19 ~ 25
Chap 26 ~ 31
static 메서드가 인스턴스 멤버를 사용할 수 없는 이유 static 메서드는 인스턴스가 만들어지기 전에 로딩되기 때문에 사용하려는 멤버가 인스턴스가 만들어지기 전일 수 있기때문에 사용 불가하다
static을 붙이는 것을 고려해야하는 때를 서술 클래스의 모든 인스턴스가 공통으로 사용할 때 인스턴스 생성하지 않고 사용할 때 메서드에서 인스턴스 변수를 사용하지 않을 때
오버로딩(overloading)의 조건 중 알맞은 것을 고르시오.
Chap 32 ~37 Q1 . 생성자는 인스턴스를 생성한다. ( O / X ) X Q2 . 생성자의 조건 중 알맞은 않은 것을 고르시오.
Chap 38~ 41 Q1 . 초기화 블럭이 실행되는 시점과 사용하는 이유는 무엇인가? 초기화 블럭은 다른 모든 초기화 과정이 끝난 후에 실행된다. 초기화가 복잡할 때 사용 Q2 . 클래스변수와 인스턴스 변수의 초기화 시기의 순서에는 어떤 차이가 있는가? 클래스 변수는 메모리에 로딩될 때 한번 실행, 인스턴스 변수의 초기화는 인스턴스 생성시마다 실행 Q3 . 다음 중 맞는 것을 모두 고르고, 틀린 건 고쳐주세요. 답 없음
《 Chap.1 : 객체지향 언어 ~ Chap.6 : 객체의 생성과 사용 》
《 Chap.7 : 객체의 생성과 사용 예제 ~ Chap.12 : 클래스 변수와 인스턴스 변수 》
공통점 : 클래스 영역에서 선언됨 차이점 : 인스턴스 변수는 인스턴스를 생성해야만 사용할 수 있지만, static변수는 인스턴스를 생성하지 않아도 사용가능하다 인스턴스마다 별도의 저장공간을 가지므로 서로 다른 값을 가질 수 있지만, static변수는 모든 인스턴스가 공통된 저장공간을 공유한다.
d
《 Chap.13, Chap.14 : 메서드란? ~ Chap.18 : 메서드의 실행 흐름 》
《 Chap.19 : 메서드의 실행 흐름 예제 ~ Chap.25 : 참조형 반환 타입 》
《 Chap.26 : 변수의 초기화 ~ Chap.31 : 메서드 & 오버로딩 》
《 Chap.32 : 생성자 ~ Chap.37 : 객체 자신을 가리키는 참조변수 - this 》
《 Chap.38 : 변수의 초기화 ~ Chap.41 : 멤버변수의 초기화 시기와 순서 》
Chap13~18 A1. 재사용 / 유지보수 / 관리 용이(관계) / 신뢰성이 높음(중복 제거)
A2. ㄷ-ㄱ-ㄴ ============== Chap32~37 A1. X
A2. 4 ============== Chap38~41 A1. 지역변수만큼은 자동적으로 초기화가 안되므로 초기화 작업이 필수이고 초기화블럭은 복잡한 초기화를 할 때 사용된다. 자동초기화와 명시적초기화 이후 마지막으로 실행된다.
A2. 클래스 변수초기화 "이후" 인스턴스 변수 초기화가 이루어진다.
A3. 맞는 것 2 틀린것 1.지역 변수는 초기화를 직접 해주어야 한다.
A4. a-f-c-b-e-c-d ============== Chap19~25 A1. 반환타입이 void인 경우
A2. 참조형, 기본형
============== Chap1~6 A1. " 클래스(Class)로부터 객체를 만드는 과정 "을 이르는 말인데 이 과정을 거쳐 만들어진 객체를 인스턴스 (instance)라고 한다. A2. 3, 4
============== Chap26~31 A1. static메서드는 인스턴스를 생성하지 않고도 호출 가능하기때문에 인스턴스 멤버는 인스턴스를 생성해야만 호출할 수 있는데
A2. 모든 인스턴스에 공통으로 사용하는 멤버에 붙이는 것이 좋다
A3. 2 ============== Chap7~12 A1. 공통점 : 선언위치(클래스 영역) 차이점 : 생성시기(인스턴스 : 인스턴스 생성될때마다 / 클래스 : 인스턴스 없이도 바로 사용) ?....
A2. c
마지막 문제 오류 변수 초기화 되는 순으로 나열
class Test {
static int a = 0;
int b = 0;
int e;
static int f;
static {
int c = 0;
}
{ int d = 0; }
}
답: f → a → c → e → b → d
조심하겠습니다
1. 교재
: 「Chapter 7. 객체지향 프로그래밍 ll 」
기간 : 2022.01.15 ~ 2022.01.21
*방법은 이전 주와 동일
2. Conf
매 주마다 해당 주에 공부했던 어려운 개념 설명 & 공부과정 설명 & 연습문제 풀이 브리핑
4주차 미팅 (2022.01.21) : 7장 공부 & 6,7장 어려운 개념 설명 & 공부과정 설명 & 연습문제 풀이 브리핑 : 사다리 타기로 1명 구제 / 단원 내용 6등분해서 각자 파트 브리핑
2022.01.29 ~ 2022.02.04 (6주차)