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

이영광·2022년 7월 13일

자바

목록 보기
22/34

클래스 선언

사용하고자 하는 객체를 구상했다면 그 객체의 이름을 짓고 이것을 클래스 이름으로 지정

사람 객체의 클래스는 Person ,자동차 객체의 클래스는 Car라는 이름으로 정할수 있다.

클래스 식별 규칙

  • 하나 이상의 문자로 이루어져야 한다. -> Car,SportsCar
  • 첫글자에는 숫자금지
  • 특수문자 금지
  • 자바 키워드 금지 -> int(x), for(x) 등
  • 단어가 하나이면 첫글자 대문자 2개이상이면 소문자로 시작해서 카멜케이스로

클래스 선언

public class Car{}

class Tire{}

일반적으로 .Java 소스 파일 하나당 하나의 클래스를 선언한다. 하지만 2개이상도 선언가능하다

하지만 2개이상의 클래스가 선언된 소스 파일을 컴파일(컴퓨터가 알아먹게 이진으로만들어주는과정)하면 코드 파일(.class)은 클래스를 선언한 개수만큼 생긴다. 결국 소스 파일은 클래스 선언을 담고 있는 저장 단위일뿐, 클래스 자체가 아니다.

위 소스파일을 컴파일 하면 Car.class 와 Tire.class가 각각 생성된다.

참고

  • public 접근 제한자

public 접근 제한자는 파일 이름과 동일한 이름의 클래스 선언에만 붙일 수 있다.
파일 이름과 일치하지 않는 클래스 선언에 public 을 붙이면 컴파일 에러가 발생한다. 가급적이면 소스파일 하나당 동일한 이름의 클래스를 하나씩만 선언하자

객체 생성과 클래스 변수

클래스를 선언한 다음, 컴파일을 했다면 객체를 생성할 설계도가 만들어진것.
클래스로부터 객체를 생성하려면 다음과 같이 new 연산자를 사용하면 된다.

new 클래스();

new는 클래스로부터 객체를 생성시키는 연산자이다. new 연산자 뒤에는 생성자가 오는데, 생성자는 클래스() 형태이다. new 연산자로 생성된 객체는 메모리 힙 영역에 생성된다.

현실세계에서 물건의 위치를 모르면 사용을 못하듯이 , 객체 지향 프로그램에서도 메모리에 생성된 객체의 주소를 모르면 객체를 사용할 수 없다. 그래서 new 연산자는 힙영역에 객체를 생성시킨후 객체의 번지를 리턴하도록 되어있다. 이 주소를 참조 타입인 클래스 변수에 저장하면 변수를 통해 객체를 생성할수 있다

사용 예

1에서도 적었지만

Person이라는 클래스일때

Person p = new Person();

이렇게 하면 new 연산자로 객체를 생성하고 리턴된 객체의 번지를 변수에 저장하면 다음 그림과 같이 변수가 객체를 참조한다.

profile
《REACT》《JAVASCRIPT 》 만지고있어욤

0개의 댓글