아줌마의 국비학원생활

[8일차] 객체지향 프로그래밍 2

citygray 2023. 4. 26. 15:17

오늘도 재밌는 거 하는구먼

  • 자바플레이 그라운드 구구단 다시 만들어보기
  • 자바의 정석 "참조변수super" 부터 다시 보고 정리하기
  • 인프런 http 강의 듣기

객체 소멸과 가비지 컬렉션

객체 소멸

  • new에 의해 할당된 객체 메모리를 자바 가상 기계의 가용 메모리로 되돌려주는 행위

가비지

  • 가리키는 레퍼런스가 하나도 없는 객체
  • 가비지 컬렉션 : 자바 가상 기계의 가비지 컬렉터가 자동으로 가비지 수집 반환

변수의 종류

  • 클래스 영역
    • cv : 공통속성, 클래스가 메모리에 올라갈때 생성
    • iv : 개별속성, 인스턴스가 생성될때 마다 생성
  • 메서드 영역
    • lv : {}블록 내부 선언, 변수선언문이 수행될때 생성되며, 메서드 종료시 자동 제거
    • 지역변수는 자동 초기화가 되지 않는다.

Setter와 Getter

  • 클래스 선언할 때 iv는 일반적으로 private 접근제한
  • Setter : iv에 값을 설정하는 메서드
  • Getter : iv값을 반환하는 메서드

this

  • 인스턴스 자신을 가르키는 참조변수
  • static메서드에서 사용 안됨

기본형 매개변수와 참조형 매개변수

오버로딩

  • 한 클래스 안에 같은 이름의 메서드 여러 개 정의
  • 성립조건
  1. 메서드이름이 같아야한다
  2. 매개변수의 개수 또는 타입이 달라야한다
  3. 반환타입은 영향이 없다

가변길이 인자

메서드이름(데이터 타입...변수명){}
  • 가변인자는 매개변수의 가장 마지막에 선언해야한다
  • 가변인자는 한 메서드에 한개만 가능하다

생성자

  • 인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드
  • 규칙
  1. 생성자이름이 클래스 이름과 같아야 함
  2. 리턴 값이 없다.
  3. 기본 생성자 작성 필수
    public class Member{ private String name; private int age; public Member(){...}//생성자 
    public void setName(String name){...} }

this(), this(매개변수)

  • 생성자에서 다른 생성자 호출
  • 초기화 내용을 한 생성자에 몰아 작성
  • 규칙
  1. 클래스 이름 대신 this() 사용
  2. 다른 생성자 호출시 첫줄에서만 사용 가능