07장 클래스 내부 구성 요소
7-1.내부구성요소 필드
- 필드와 지역변수를 구분하기
- void work2 (int i)에서 i 또한 work2 메서드에서 실행되는 것이기 때문에 지역변수이다.
- 메서드 별로 프레임이 존재하기 때문에 각 메서드 안에 같은 변수를 사용해도 문제가 되지 않는다.
7-2. 내부구성요소 메서드
- 리턴타입, 메서드 이름 () {} 는 필수이다. 입력매개변수는 옵션이다.
- public과 static은 수식어이다.
- 반환값이 없다면 void를 설정하여 리턴하지 않게 한다. (실행하지 않는 것이 아니라, 실행은 하되 결과값을 리턴하지 않는다는 것)
- 매개변수에서 선언과 값을 분리해서 실행된다. (배열에서는 다른 값을 초래할 수 있기 때문에 이렇게 알아두자)
- static 안에서는 static만 호출이 가능하다.
- 시그너처는 메서드의 이름과 매개변수 타입 까지이다. (2개중에 하나라도 다르면 다른 메서드)
- 다양한 타입을 출력할 수 있는 이유는 메서드 오버로딩으로 인한 것이다.
- void pintIn (Object x) => Object를 만들면 만들게된 모든 타입을 받을 수 있게 함
- 만약 method1을 생성하려면 3개의 오버로딩을 만들어야했을 것. => 점점 메서드의 수가 늘어난다.
- 매개변수의 수가 가변적일 때 ...를 사용한다.
7-3. 내부구성요소 생성자와 this_this()
<생성자>
- 반환타입이 존재하지 않는다는 것은 int니 void니 어떠한 것도 존재하지 않는 다는 것
- 모든 클래스는 무조건 생성자를 포함해야한다.
- 생성자를 정의하지 않으면 컴파일러가 기본생성자를 생성해준다.
- 생성자는 호출되는 순간 내부적으로 객체가 만들어진다.
- 객체가 만들어진 이후에 할일인 필드 초기화 등이 진행된다.
- 즉, 이미 생성자를 정의한 경우 A a = new A()는 불가하다. => A a = new A (3) 처럼 int에 해당하는 값을 사용해야한다.
- 생성자에 맞도록 생성자를 호출해야만 객체가 생성된다.
<this 키워드와 this () 메서드>
- this()는 자기 클래스 내부의 다른 생성자이므로 이름은 무조건 클래스명과 동일하므로 A 일것 즉, A()와 동일한 것을 호출할 것.
- 중복성을 제거할 수 있으므로 코드를 간결화 할수있다. (코드가 길어질수록 효과적임)
https://www.youtube.com/@doit4312/playlists
Do it 자바 완전 정복 동영상 강의
Do it 자바 완전 정복 동영상 강의입니다.
www.youtube.com
위 강의를 참고하여 작성하였습니다.