[Do it! 자바 프로그래밍 입문]클래스와 객체(1)

업데이트:


Do it!강의


용어정리

  • 객체 : 객체 지향 프로그램의 대상, 생성된 인스턴스
  • 클래스 : 객체를 프로그래밍하기 위해 코드로 만든 상태
  • 인스턴스 : 클래스가 메모리에 생성된 상태
  • 멤버 변수 : 클래스의 속성, 특성
  • 메서드 : 멤버 변수를 이용하여 클래스의 기능을 구현
  • 참조 변수 : 메모리에 생성된 인스턴스를 가리키는 변수
  • 참조 값 : 생성된 인스턴스의 메모리 주소 값



객체 지향 프로그래밍과 클래스

  • 객체(Object)란?

구체적, 추상적 데이터 단위

  • 객체지향 프로그래밍(OOP)

객체를 기반으로하는 프로그래밍



클래스

객체에 대한 속성과 기능을 코드로 구현한 것

  • 객체의 속성 : 특성, 속성, 멤버 변수
  • 객체의 기능 : 객체가 하는 기능들을 메서드로 구현



클래스 정의하기

(접근제한자) class 클래스 이름{
  멤버 변수;
  메서드;
}


클래스 생성하기

  1. 클래스의 시작은 대문자로
  2. 하나의 java 파일에 하나의 클래스를 두는 것이 원칙
  3. 여러개의 클래스가 같이 있는 경우 public 클래스는 단 하나이다
  4. public 클래스와 java파일의 이름은 동일해야 된다.
  5. 자바의 모든 코드는 class 내부에 위치한다.


메서드

함수의 일종
객체의 기능을 제공하기 위해 클래스 내부에 구현되는 함수

함수란? 하나의 기능을 수행하는 일련의 코드
중복되는 기능은 함수로 구현하여 함수를 호출해서 사용함.

함수와 스택 메모리

  • 스택 : 위로 점점 쌓이는 구조
    메인 함수가 만들어지면 메인에 선언된 변수가 스택의 가장 아래 메모리를 차지함
    그 위에 메인 함수가 호출한 함수의 변수가 쌓인다
    호출한 함수가 종료되면 메인 함수 메모리만 남는다.

함수를 사용하는 이유?

  1. 코드를 효율적으로 구현하기 위해
  2. 유지보수가 쉬워진다
  3. 한 함수 내부에는 하나의 기능만 함수의 이름에 맞게 구현하는게 적절함


인스턴스 생성하기

클래스형 변수이름 = new 생성자;
new 연산자를 통해서 클래스가 인스턴스화 된며 Heap메모리에 생성된다.


인스턴스와 힙메모리

하나의 클래스 코드로부터 여러 개의 인스턴스 생성 가능
참조 변수는 Heap영역에 생성된 객체의 주소를 참조한다


Heap과 Stack

  • Heap메모리는 new연산자를 통해 동적으로 생성한다.
    자동으로 없어지지 않는다.
    JAVA는 GC가 자동으로 없애준다.

  • stack메모리는 함수가 호출되면 지역변수가 쌓이고, 함수가 끝나면 자연히 없어진다.


생성자

생성자의 용도 : 객체를 생성하면서 해야할 기능, 하고싶은 기능을 구현
생성자 블럭 안에 Class가 생성될 때 수행해야 될 코드를 작성한다.


생성자는 기본 생성자와 매개변수가 있는 생성자가 있다.
클래스에 기본 생성자가 없는 경우, 컴파일 전에 자바 컴파일러가 자동으로 생성해준다.

  • 기본 생성자
    1. 매개변수가 없다.
    2. Class에 생성자가 하나라도 있는 경우, 컴파일러가 자동으로 생성해주지 않음



댓글남기기