클래스

박윤택·2022년 5월 12일
2

JAVA

목록 보기
4/14

클래스

"객체를 정의한 틀"

🙄 용어 정리

  • Class : 객체를 만들기 위한 설계도
  • Object: 클래스로 구현한 대상
  • Instance : 메모리에 할당된 데이터
    [객체 생성 코드]

🦴 구성 요소

  • 필드 : 클래스의 속성을 나타내는 변수
  • 메서드 : 클래스의 기능을 나타내는 함수
  • 생성자 : 클래스와 객체를 생성하는 역할
  • 이너 클래스 : 클래스 내부의 클래스

필드와 메서드

🎁 필드

[class 내부에서 변수의 저장 영역]
public class Example {
	static int a = 10; // 클래스 변수
    int b = 20; // 인스턴스 변수
    
    public void test() {
    	int c = 30; // 지역 변수
        System.out.println(c);
    }
}

public class Main {
	public static void main(String[] args) {
        Example example = new Example();
        
        System.out.println(Example.a); // 클래스 변수 출력
        System.out.println(example.b); // 인스턴스 변수 출력
        example.test(); // 지역 변수 출력
    }
}
  • 클래스 변수 : 인스턴스의 생성 없이도 사용 가능, static 키워드 사용, 객체간 공유
  • 인스턴스 변수 : 인스턴스의 생성 후에 사용 가능
  • 지역 변수 : 블록 내에서 선언된 변수

🚗 메서드

  • 오버로딩(Overloading) : 한 클래스안에 같은 명칭의 함수를 여러번 정의 하는 것
  • 오버라이딩(Overriding) : 클래스를 상속받았을 때 자식 클래스에서 메서드를 재정의하는 것

생성자

🎨 기본 생성자 & 매개변수가 있는 생성자

클래스에 생성자를 따로 정의하지 않으면 기본 생성자가 생략된 것으로 간주한다.

class Example {
	private int a;
    private int b;
    
    Example() {}
    Example(int a) {
    	this.a = a;
    }
    Example(int a, int b) {
    	this.a = a;
        this.b = b;
    }
}

public class Main {
	public static void main(String[] args) {
    	Example ex1 = new Example(); // 기본 생성자
        Example ex2 = new Example(1); // 매개변수 있는 생성자
        Example ex3 = new Example(1, 5); // 매개변수 있는 생성자
    }
}
[생성자 예제 코드]

생성자를 오버로딩해서 생성자를 매개변수에 따라 다르게 정의할 수 있다. 다만 기본 생성자를 정의하지 않고 매개변수가 있는 생성자만 정의를 한다면 기본 생성자를 이용하여 객체를 인스턴스화할때 에러가 발생한다.


🛒 this와 this()

class Example {
	private int a;
    private int b;
    private String c;
    
    Example() {
    	this.c = "example";
    }
    Example(int a) {
    	this(); // 매개변수가 있는 생성자에서 기본 생성자 호출
    	this.a = a;
    }
    Example(int a, int b) {
    	this(a); // 매개변수가 여러 개 있는 생성자에서 매개변수가 하나 있는 생성자 호출 가능
    	this.a = a;
        this.b = b;
    }
}

public class Main {
	public static void main(String[] args) {
    	Example ex1 = new Example(); // 기본 생성자
        Example ex2 = new Example(1); // 매개변수 있는 생성자
        Example ex3 = new Example(1, 5); // 매개변수 있는 생성자
    }
}
[this와 this() 사용 예]
  • this : 클래스 내부의 생성자 또는 메서드 내에서 멤버 변수에 접근할 때 사용
  • this() : 생성자 내에서 다른 생성자를 호출할 때 사용, 생성자 내에서만 사용 가능하고 반드시 생성자의 첫 줄에 위치해야한다.

0개의 댓글