※클래스
객체를 만들어내기 위한 설계도 혹은 틀
객체의 속성(state)과 행동(behavior) 포함
※객체
클래스의 모양 그대로 찍어낸 실체, 프로그램 실행 중에 생성되는 실체
메모리 공간을 갖는 구체적인 실체, 인스턴스(instance)라고도 부름
※클래스 구성선언
※필드와 메소드
필드 (field) : 객체 내에 값을 저장하는 멤버 변수
메소드 (method) : 함수이며 객체의 행동(행위)를 구현
필드의 접근 지정자, public
필드나 메소드 앞에 붙어 다른 클래스의 접근 허용을 표시
public 접근 지정자 : 다른 모든 클래스의 접근 허용
※생성자
클래스의 이름과 동일한 특별한 메소드
객체가 생성될 때 자동으로 한 번 호출되는 메소드
개발자는 객체를 초기화하는데 필요한 코드 작성
※객체 생성
반드시 new 키워드를 이용하여 생성
new는 객체의 생성자 호출
-------------------------------------------------------------------------------------------------
※클래스의 객체 생성 및 활용 에제
public class Circle {
intradius; // 원의반지름 필드
Stringname; // 원의이름 필드
public Circle(){ } //원의 생성자
publicdoublegetArea(){ // 원의면적 계산 메소드
return3.14*radius*radius;
}
publicstaticvoid main(String[] args) {
Circlepizza;
pizza=new Circle(); // Circle객체 생성
pizza.radius = 10; // 피자의반지름을 10으로 설정
pizza.name="자바피자"; // 피자의이름 설정
doublearea= pizza.getArea(); // 피자의면적 알아내기
System.out.println(pizza.name+"의 면적은 "+ area);
Circledonut= new Circle(); // Circle객체 생성
donut.radius = 2; // 도넛의반지름을 2로 설정
donut.name="자바도넛"; // 도넛의이름 설정
area= donut.getArea(); // 도넛의면적 알아내기
System.out.println(donut.name+"의 면적은 "+ area);
}
}
자바피자의 면적은 314.0
자바도넛의 면적은 12.56
-------------------------------------------------------------------------------------------------
※생성자
객체가 생성될 때 초기화를 위해 실행되는 메소드

기본 생성자(default constructor)
매개 변수 없고 아무 작업 없이 단순 리턴하는 생성자
디폴트 생성자라고도 부름
-------------------------------------------------------------------------------------------------
※ this()
객체 자신에 대한 레퍼런스
컴파일러에 의해 자동 관리, 개발자는 사용하기만 하면 됨
this.멤버 형태로 멤버 사용
this의 필요성
객체의 멤버 변수와 메소드 변수의 이름이 같은 경우
다른 메소드 호출 시 객체 자신의 레퍼런스를 전달할 때
메소드가 객체 자신의 레퍼런스를 반환할 때