아줌마의 국비학원생활
[8일차] 객체지향 프로그래밍 2
citygray
2023. 4. 26. 15:17
오늘도 재밌는 거 하는구먼
- 자바플레이 그라운드 구구단 다시 만들어보기
- 자바의 정석 "참조변수super" 부터 다시 보고 정리하기
- 인프런 http 강의 듣기
객체 소멸과 가비지 컬렉션
객체 소멸
- new에 의해 할당된 객체 메모리를 자바 가상 기계의 가용 메모리로 되돌려주는 행위
가비지
- 가리키는 레퍼런스가 하나도 없는 객체
- 가비지 컬렉션 : 자바 가상 기계의 가비지 컬렉터가 자동으로 가비지 수집 반환
변수의 종류
- 클래스 영역
- cv : 공통속성, 클래스가 메모리에 올라갈때 생성
- iv : 개별속성, 인스턴스가 생성될때 마다 생성
- 메서드 영역
- lv : {}블록 내부 선언, 변수선언문이 수행될때 생성되며, 메서드 종료시 자동 제거
지역변수는 자동 초기화가 되지 않는다.
Setter와 Getter
- 클래스 선언할 때 iv는 일반적으로 private 접근제한
- Setter : iv에 값을 설정하는 메서드
- Getter : iv값을 반환하는 메서드
this
- 인스턴스 자신을 가르키는 참조변수
- static메서드에서 사용 안됨
기본형 매개변수와 참조형 매개변수
- 기본형 : 변수의 값을 읽기만 가능(Read only)
기본형 매개변수 소스코드 - 참조형 : 변수의 값 읽고 변경 가능(Read & Write)
참조형 매개변수 소스코드
오버로딩
- 한 클래스 안에 같은 이름의 메서드 여러 개 정의
- 성립조건
- 메서드이름이 같아야한다
- 매개변수의 개수 또는 타입이 달라야한다
- 반환타입은 영향이 없다
가변길이 인자
메서드이름(데이터 타입...변수명){}
- 가변인자는 매개변수의 가장 마지막에 선언해야한다
- 가변인자는 한 메서드에 한개만 가능하다
생성자
- 인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드
- 규칙
- 생성자이름이 클래스 이름과 같아야 함
- 리턴 값이 없다.
- 기본 생성자 작성 필수
public class Member{ private String name; private int age; public Member(){...}//생성자 public void setName(String name){...} }
this(), this(매개변수)
- 생성자에서 다른 생성자 호출
- 초기화 내용을 한 생성자에 몰아 작성
- 규칙
- 클래스 이름 대신 this() 사용
- 다른 생성자 호출시 첫줄에서만 사용 가능