1.생성자란 무엇인가?
- 생성자 이름은 **클래스의 이름과 동일해야 한다.
- 생성자는 **값을 반환하지 않고(return 안함) return type도 표시하지 않는다.
- 리턴값이 없다는 것은 용도를 제한함을 의미 (연산 등의 용도가 아님)
즉, 생성자의 용도는 값들에 대한 초기화이다.
2.디폴트 생성자란 무엇인가?
생성자를 만들지 않았지만 객체를 생성할 때 호출하면 **컴파일러에 의해 자동으로 생성**되는 것이 디폴트 생성자 이다. (용도는 초기화)
직접 생성자 함수를 만들지 않았어도, 객체 생성 시 생성자 함수를 호출하게 되어있다.
어떻게 만들지 않은 생성자 함수를 사용할 수 있을까?
모든 클래스의 인스턴스 생성은 생성자 호출을 동반한다. 생성자 함수를 만들지 않으면 컴파일러에 의해 디폴트 생성자가 자동으로 생성된다. 그래서 생성자 함수를 만들지 않아도 호출해서 사용할 수 있는것.
3.생성자의 용도에 대하여 설명하시오.
1번에서 설명한 것 처럼, 생성자의 용도는 값들의 초기화이다.
4.null 에 대하여 설명하시오.
null은 참조 변수에 대입 했을 때 비어 있음을 의미한다.
참조 변수에는 주소값이 들어가는데 그곳이 비어 있다는 의미는 아무 곳도 가리키고 있지 않음을 의미한다. (ref가 참조하는 객체가 있었다면 그 관계를 끊는 것을 의미함) 참조 변수를 **초기화** 할 때 사용한다.
또한 JVM 으로 하여금 해당 객체가 GC에 의한 메모리 해제 되상이 됨을 알리는 역할을 한다.
5.금일 프로그래밍 했던 문제
6. 아래의 프로그램을 작성하시오.
- 화폐 매수 구하기
- 반드시 클래스로 작성할것
---------------------------------
136000
오만원 : 2장
만원 : 3장
오천원 : 1장
천원 : 1장
오백원 : 0개
백원 : 0개
계속 하시겠습니까
y
1456000
오만원 : 29장
만원 : 0장
오천원 : 1장
천원 : 1장
오백원 : 0개
백원 : 0개
계속 하시겠습니까
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
public class Money {
int cash, temp;
int m500, m100, m50, m10, m5, m1;
public Money(int cash) {
this.cash = cash;
}
public void countMoney() {
m500 = cash / 50_000;
temp = cash-(m500*50_000);
m100 = temp / 10_000;
temp = temp-(m100*10_000);
m50 = temp / 5_000;
temp = temp-(m50*5_000);
m10 = temp / 1_000;
temp = temp-(m10*1_000);
m5 = temp / 500;
temp = temp-(m5*500);
m1 = temp / 100;
System.out.println("오만원: "+ m500);
System.out.println("만원: "+ m100);
System.out.println("오천원: "+ m50);
System.out.println("천원: "+ m10);
System.out.println("오백원: "+ m5);
System.out.println("백원: "+ m1);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import java.util.Scanner;
public class TestMain {
public static void main(String[] args) {
Scanner scanner = null;
while(true) {
scanner = new Scanner(System.in);
int cash;
System.out.print("금액을 입력하세요.");
cash = scanner.nextInt();
Money myMoney = new Money(cash);
myMoney.countMoney();
System.out.println("계속 하시겠습니까?(Y/N)");
String yesOrNo = scanner.next();
if(yesOrNo.equals("Y")|| yesOrNo.equals("y")) {
continue;
}else {
break;
}
}
System.out.println("프로그램을 종료합니다.");
scanner.close();
}
}
|
7.자바의 명명 규칙에 대하여 설명하시오.
-클래스
-메소드와 변수
-상수
-camel case
-snake case
클래스
- 첫 문자는 대문자!CirclePoint
- 합성어는 주로 Camel Case를 사용한다.
CirclePoint (Camel Case) ← 더 많이씀 / Circle_point (snake case)
메소드와 변수
- 첫 문자 소문자로 시작!!!!
- 합성어는 주로 Camel Case를 사용한다. (addYourMoney)
상수
- 상수는 전체 대문자
- 합성어에 snake case사용 : 전체가 대문자 이기 때문에 둘 이상의 단어로 쓸 때 구분해서 보여주기 위해 언더바로 표현(final COLOR_RAINBOW)
camel case
- 둘 이상의 문자가 결합된 합성어를 이름으로 사용 시에 두 번째 단어부터 첫 글자를 대문자로 사용한다.
- 낙타의 등처럼 생겼다고 해서 camel case라고 부른다.
- 클래스, 메소드, 변수명은 주로 camel case를 사용한다.
메소드,변수의 cammel case: addYourMoney, yesOrNo, countMoney
클래스의 cammel case: CircleArea, RectangleArea, StarPoint
snake case
- 둘 이상의 문자가 결합된 합성어를 이름으로 사용 시에 문자와 문자 사이를 _(언더바)로 이어준다.
- 상수는 전체를 대문자로 작성하기 때문에 합성어로 이름 지을 경우 sanke case를 사용한다.
메소드, 변수의 snake case: add_your_money, yes_or_no, count_money
클래스의 snake case: Circle_area, Rectangle_area, Star_point
상수의 snake case: final COLOR_RAINBOW
'IT 면접족보 > 자바 면접족보' 카테고리의 다른 글
자바 면접 족보 정리(10일 차 ) (0) | 2020.12.08 |
---|---|
자바 면접 족보 정리(9일 차 ) (0) | 2020.12.07 |
자바 면접 족보 정리(7일 차 ) (0) | 2020.12.06 |
자바 면접 족보 정리(6일 차 ) (0) | 2020.12.05 |
자바 면접 족보 정리(5일 차 ) (0) | 2020.12.05 |