사용하고자 하는 객체를 구상했다면 그 객체의 이름을 짓고 이것을 클래스 이름으로 지정
사람 객체의 클래스는 Person ,자동차 객체의 클래스는 Car라는 이름으로 정할수 있다.
클래스 식별 규칙
클래스 선언
public class Car{}
class Tire{}
일반적으로 .Java 소스 파일 하나당 하나의 클래스를 선언한다. 하지만 2개이상도 선언가능하다
하지만 2개이상의 클래스가 선언된 소스 파일을 컴파일(컴퓨터가 알아먹게 이진으로만들어주는과정)하면 코드 파일(.class)은 클래스를 선언한 개수만큼 생긴다. 결국 소스 파일은 클래스 선언을 담고 있는 저장 단위일뿐, 클래스 자체가 아니다.
위 소스파일을 컴파일 하면 Car.class 와 Tire.class가 각각 생성된다.
참고
public 접근 제한자는 파일 이름과 동일한 이름의 클래스 선언에만 붙일 수 있다.
파일 이름과 일치하지 않는 클래스 선언에 public 을 붙이면 컴파일 에러가 발생한다. 가급적이면 소스파일 하나당 동일한 이름의 클래스를 하나씩만 선언하자
클래스를 선언한 다음, 컴파일을 했다면 객체를 생성할 설계도가 만들어진것.
클래스로부터 객체를 생성하려면 다음과 같이 new 연산자를 사용하면 된다.
new 클래스();
new는 클래스로부터 객체를 생성시키는 연산자이다. new 연산자 뒤에는 생성자가 오는데, 생성자는 클래스() 형태이다. new 연산자로 생성된 객체는 메모리 힙 영역에 생성된다.
현실세계에서 물건의 위치를 모르면 사용을 못하듯이 , 객체 지향 프로그램에서도 메모리에 생성된 객체의 주소를 모르면 객체를 사용할 수 없다. 그래서 new 연산자는 힙영역에 객체를 생성시킨후 객체의 번지를 리턴하도록 되어있다. 이 주소를 참조 타입인 클래스 변수에 저장하면 변수를 통해 객체를 생성할수 있다
사용 예
1에서도 적었지만
Person이라는 클래스일때
Person p = new Person();
이렇게 하면 new 연산자로 객체를 생성하고 리턴된 객체의 번지를 변수에 저장하면 다음 그림과 같이 변수가 객체를 참조한다.