[JAVA] 클래스란?

Hochul-y·2022년 3월 24일
0

JavaStudy

목록 보기
1/3
post-thumbnail

📢 클래스

자바에서 클래스는 객체를 정의하는 기본 적인 요소입니다.

클래스 안에는 생성자 ,객체의 필드(변수) 와 객체가 어떤 행동을 할건지를 보여줄수 있는 메소드로 구분됩니다.

클래스 는 객체지향 프로그래밍의 추상화라는 개념을 구현 한것이라고 할수있습니다.

클래스 정의

🎈 출처 : http://www.tcpschool.com/java/java_class_declaration

위의 그림을 보면 접근제어자 Class 키워드 <클래스이름>으로 생성을 합니다..
클래스 안에는 클래스 필드 와 클래스 메소드로 구성되어 있습니다.

  • 클래스 필드 : 객체 지향에서 속성에 해당하는 멤버 변수입니다.

  • 클래스 메소드 : 객체 지향에서 기능(함수)에 해당합니다.

📢 접근제어자란?

  • 외부의 클래스가 해당클래스의 접근을 허용하는 범위

    	* 종류에는 public, protected, default, private 가 있습니다.

접근 제어자의 범위는 이렇게 됩니다.

public > protected > default > private

  • public : 같은 클래스 / 같은 패키지 / 자식 클래스 허용 / 그 외 허용
  • protected : 같은 클래스 / 같은 패키지 / 자식 클래스 허용
  • default : 같은 클래스 / 같은 패키지
  • private : 같은 클래스

📝 객체 만드는 방법

위의 그림에서 Car 라는 클래스를 정의했습니다.

정의한 클래스에서 객체를 만들어야하는데 이렇게 객체에서 클래스를 만드는 과정을

클래스의 '인스턴스 화' 라고 합니다.

클래스명 변수명 = new 클래스명() <-- 인스턴스 화

인스턴스화는 new 연산자를 통해서만 되고 변수명을 통해 객체를 사용합니다.

new 연산자란?

  • new 연산자는 Heap 이라는 메모리 영역에 메모리 공간을 할당하고

  • 인스턴스를 생성하여 참조값을 리턴 하고 생성자를 호출합니다.

참조값 확인방법 : Car car = new Car() 생성 이후

System.out.println(car); @참조값출력

📝 메소드 정의하는 방법

위의 그림을 한번더 참고하자

  • 아래 클래스 메소드 부분을 보자 pubic void brake(){} 로 나와있는것을 볼수있는데

이것을 풀어서 말하면

접근제어자(public)반환타입(void) 메소드이름(brake) (매개변수목록(안줬다)) //선언부
{ //구현부
결국 정의하는 법은 절차지향의 함수와 크게 다르지 않습니다.

로 설명이된다.

📝 생성자 정의하는 방법

public 클래스이름(){
//블라 ~ ~ 블라
}

생성자는 위와 같이 선언되며 몇가지 특징이 존재합니다.

  • 반환값이 없지만 , 반환 타입을 void 로 선언한하지 않습니다.

  • 생성자의 초기화를 위한 데이터를 인수로 전달받을 수 있습니다.

  • 하나의 클래스는 여러 개의 생성자를 받을수 있습니다.

  • 클래스 내부에 생성자를 선언하지 않으면 기본 생성자를 선언하여 사용할수있습니다.

📢 생성자 종류

+ 기본 생성자 : 생성자가 없어도 자동으로 추가되는 생성자

+ 묵시적 생성자 : 파라미터 값을 가지지 않는 생성자

+ 명시적 생성자 : 파라미터 값을 가지는 생성자

예를 들면 아래와 같습니다.

public class Car{} //--> 기본 생성자가 호출된다.
public class Car{
	...
  	//묵시적 생성자
	public Car(){
    System.out.println("자동차 생성");
    }
    //명시적 생성자
    public Car(int speed){
    	this.speed = speed;
    }
}

📝 this 키워드 이해하기

  • this 참조 변수는 인스턴스가 자기 자신을 참조하는데 사용하는 변수입니다.
public Car{
	private int speed;
    
    public Car(int speed){
    	this.speed = speed;
    }
}
  • this 참조 변수는 인스턴스의 주소를 가리키고 있습니다.
    그렇기 때문에 위 처럼 변수의 이름이 같을경우 구분이 가능합니다.
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;
    }
}
  • this() 는 해당 클래스의 생성자를 호출할수도 있습니다.
    그렇기 때문에 재사용 하는데 쓰입니다.

📕 참고사이트
< http://www.tcpschool.com/java/java_class_component>

profile
코딩이 즐거운사람~

0개의 댓글

관련 채용 정보