Class & Object 클래스와 객체
Class 클래스
특징
- 객체를 정의해 놓은 것 (설계도)
- 객체를 생성하는데 사용 (제품 생성 용도)
- 인스턴스의 원본
- 사용자 정의 데이터 타입 (클래스 타입)
- 클래스를 사용하려면 인스턴스화 해야한다.
구조
public class Alpabet {
static int num;
String name;
void print(){}
}
- 접근 제어자 사용
- public class 가 있는 경우, 소스 파일의 이름과 일치시킨다.
- public class 가 없는 경우, 소스 파일의 이름은 모든 class 이름 가능
- 하나의 소스 파일엔 하나의 public class
- 연관된 멤버 변수와 메서드들을 모아서 공통된 이름으로 그룹핑
멤버 변수 (필드)
- 클래스 안에서 선언한 변수
- 생성자와 메서드 전체에서 사용
- 객체와 함께 존재한다.
메서드
- 클래스 안에서 정의된 함수
- 객체의 동작에 해당하는 중괄호
{}
블록
Object 객체
특징
- 속성 (변수) 와 기능 (메서드) 로 구성
- 변수와 메서드를 사용하기 위해 생성
- 인스턴스를 대표하는 용어
- 인스턴스 변수들을 묶어 놓은 것
- 클래스의 변수화, 복제품
객체의 생성
- 클래스의 객체를 참조하기 위한 참조 변수 선언
Alpabet abc;
class variable ;
- 클래스 타입으로 선언한 변수 (참조형 ⭕, 기본형 ❌)
- 객체는 선언만으로 메모리 할당을 못받는다.
- 데이터를 저장하려면 메모리 할당을 해야 한다.
- 클래스 객체를 생성 후, 객체의 주소를 참조 변수에 저장
abc = new Alpabet();
variable = new 기본 생성자
- new 연산자는 메모리 할당 연산자
- 객체를 생성 후 객체의 주소를 리턴
- 메모리 할당 (객체 → 인스턴스)
- 객체가 메모리에 할당된 것이 인스턴스
- 두 과정을 한번에 작성
Alpabet abc = new Alpabet();
객체의 사용
abc.name = "onetwotree";
abc.print();
instance . memberVariable = “value”;
instance . method;
- 변수 사용
- 메서드 호출 사용
Gabage Collector
- 메모리를 주기적으로 확인
- 사용하지 않는 객체를 자동 제거
- 메모리가 불필요하게 사용되는걸 막아준다.
객체 배열 (참조 변수 배열)
Alpabet abc1, abc2, abc3;
Alpabet [] alpaArr = new Alpabet[3];
alpaArr[0] = new Alpabet();
Alpabet [] alpaArr = {new Alpabet(), new Alpabet()};
- 여러 참조 변수들로 만든 하나의 배열
- 객체를 만드는 것과 객체 배열을 만드는 것 혼동 주의