클래스, 인스턴스

인프런 Do it! 자바 프로그래밍 입문 수강 중

클래스란?

객체에 대한 속성과 기능을 코드로 구현한 것
객체를 만들기 위한 틀, 붕어빵을 만드는 틀로 비유

  • Property: 객체의 Property(속성)은 클래스 내의 변수로 객체의 상태를 말한다.
    ex) 학번, 이름, 학년 등

  • Method: 함수의 일종으로 객체의 기능을 제공하기 위해서 클래스 내부에 구현되는 함수
    ex) 수강신청, 수업듣기, 시험보기 등

클래스 선언

접근제어자 class 클래스이름{
  int property;
  void method(){
    원하는 기능;
  }
}

인스턴스

클래스로부터 객체를 만드는 과정을 인스턴스화라고 하며 이때 클래스로부터 만들어진 객체를 인스턴스(Instance) 라고 한다.
붕어빵틀로 구워진 붕어빵에 비유

인스턴스 선언

클래스형 변수 이름 = new 생성자;
Student studentA = new Student();

하나의 클래스 코드로부터 여러개의 인스턴스를 생성할 수 있는데 인스턴스는 힙 메모리에 생성된다.


생성자

인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드
인스턴스 생성시 new 키워드와 함께 사용된다.

생성자 내에는 객체가 생성될 때 수행하는 명령어 코드를 넣어주며 생성자는 따로 정의해주지 않으면 자바 컴파일러가 Default 생성자를 자동으로 생성해준다.
하지만 생성자가 하나라도 선언되면 생성자는 생성되지 않는다.

Default 생성자

public Student(){ } // 매개변수, 구현코드가 없음

생성자 오버로드

public Student(int id, String name){
	studentID = id;
	studentName = name;
}

생성자 이름은 클래스 이름과 같고 메서드가 아니기 때문에 상속되지 않고 리턴 값이 없음


변수의 자료형

  • 기본 자료
    ex) int, long, float, double 등
  • 참조 자료형
    ex) String, Date, Student(클래스 변수) 등

Student 같이 사용자가 만든 클래스 변수가 참조 자료형에 해당되고 주소값을 저장한다.


정보 은닉(Information hiding)

객체지향의 특성 중 하나로 외부에서 클래스 내부의 변수나 메서드를 접근하지 못하도록 하는 것을 말한다.
private 접근 제어자를 사용을 해서 외부 접근을 불가능하게 하며 private으로 선언된 변수에 접근을 할 때는 get(), set() 메서드를 사용해서 접근한다.

끝!