자바에서 클래스는 객체를 정의하는 기본 적인 요소입니다.
클래스 안에는 생성자 ,객체의 필드(변수) 와 객체가 어떤 행동을 할건지를 보여줄수 있는 메소드로 구분됩니다.
클래스 는 객체지향 프로그래밍의 추상화라는 개념을 구현 한것이라고 할수있습니다.
🎈 출처 : http://www.tcpschool.com/java/java_class_declaration
위의 그림을 보면 접근제어자 Class 키워드 <클래스이름>으로 생성을 합니다..
클래스 안에는 클래스 필드 와 클래스 메소드로 구성되어 있습니다.
클래스 필드 : 객체 지향에서 속성에 해당하는 멤버 변수입니다.
클래스 메소드 : 객체 지향에서 기능(함수)에 해당합니다.
외부의 클래스가 해당클래스의 접근을 허용하는 범위
* 종류에는 public, protected, default, private 가 있습니다.
접근 제어자의 범위는 이렇게 됩니다.
public > protected > default > private
위의 그림에서 Car 라는 클래스를 정의했습니다.
정의한 클래스에서 객체를 만들어야하는데 이렇게 객체에서 클래스를 만드는 과정을
클래스의 '인스턴스 화' 라고 합니다.
클래스명 변수명 = new 클래스명() <-- 인스턴스 화
인스턴스화는 new 연산자를 통해서만 되고 변수명을 통해 객체를 사용합니다.
new 연산자는 Heap 이라는 메모리 영역에 메모리 공간을 할당하고
인스턴스를 생성하여 참조값을 리턴 하고 생성자를 호출합니다.
참조값 확인방법 : Car car = new Car() 생성 이후
System.out.println(car); @참조값출력
위의 그림을 한번더 참고하자
이것을 풀어서 말하면
접근제어자(public)반환타입(void) 메소드이름(brake) (매개변수목록(안줬다)) //선언부
{ //구현부
결국 정의하는 법은 절차지향의 함수와 크게 다르지 않습니다.
로 설명이된다.
public 클래스이름(){
//블라 ~ ~ 블라
}
생성자는 위와 같이 선언되며 몇가지 특징이 존재합니다.
반환값이 없지만 , 반환 타입을 void 로 선언한하지 않습니다.
생성자의 초기화를 위한 데이터를 인수로 전달받을 수 있습니다.
하나의 클래스는 여러 개의 생성자를 받을수 있습니다.
클래스 내부에 생성자를 선언하지 않으면 기본 생성자를 선언하여 사용할수있습니다.
+ 기본 생성자 : 생성자가 없어도 자동으로 추가되는 생성자
+ 묵시적 생성자 : 파라미터 값을 가지지 않는 생성자
+ 명시적 생성자 : 파라미터 값을 가지는 생성자
예를 들면 아래와 같습니다.
public class Car{} //--> 기본 생성자가 호출된다.
public class Car{
...
//묵시적 생성자
public Car(){
System.out.println("자동차 생성");
}
//명시적 생성자
public Car(int speed){
this.speed = speed;
}
}
public Car{
private int speed;
public Car(int speed){
this.speed = speed;
}
}
public Car{
private int speed;
private String color;
public Car(int speed){
this.speed = speed;
}
public Car(int speed , String color){
this(speed);
this.color = color;
}
}
📕 참고사이트
< http://www.tcpschool.com/java/java_class_component>