클래스는 필드(속성)와 메소드(함수)를 정의하는 설계도로, Java는 아무리 작은 프로그램이라도 클래스를 만들어 사용해야 합니다. 클래스를 만들어 사용하는 순서는 다음과 같습니다.
1) class 명령 : 클래스를 생성합니다. 클래스 이름과 필드, 메소드를 정의합니다. 자동차를 만들기 위한 설계도와 같습니다.
2) new 명령 : 객체를 생성합니다. 만들어 놓은 클래스를 이용하여 생성합니다.자동차 설계도로 자동차를 만드는 것과 같습니다.
예시 1 (출력 : 19)
class ClassA { | ClassA라는 이름의 클래스를 정의 |
int a = 10; | |
int funcAdd(int x, int y) { | |
return x + y + a; | |
} | |
} | |
public class Test { | Test라는 이름의 클래스를 정의 |
public static void main(String[] args) { | 여기서부터 실제 프로그램이 시작 |
int x = 3, y = 6, r; | |
ClassA cal = new ClassA(); | ClassA 클래스의 객체 변수 cal을 선언, ClassA()는 생성자 |
r = cal.funcAdd(x, y) | cal의 funcAdd() 메소드를 호출 |
System.out.print(r); | |
} | |
} |
※ 클래스 중에는 반드시 main() 메소드를 담고 있는 실행 클래스가 있어야 합니다.
※ 생성자란 객체 변수 생성에 사용되는 메소드로, 객체 변수를 생성하면서 초기화를 합니다.
예시 2 (출력 : AED7)
class ClassA { | ClassA라는 이름의 클래스를 정의 |
ClassA() { | ClassA라는 이름의 메소드를 정의 (생성자) |
System.out.print('A); | |
this.prn(); | |
} | |
void prn() { | 반환 값이 없는 메소드 prn을 정의 |
System.out.print('B'); | |
} | |
} | |
class ClassB extends ClassA { | 부모 클래스 ClassA의 변수와 메소드를 상속받는 ClassB를 정의 |
ClassB() { | |
super(); | 부모 클래스의 생성자(ClassA())를 호출 |
System.out.print('D'); | |
} | |
void prn() { | 부모 클래스의 메소드 prn과 동일한 이름을 가진 메소드를 또 정의 |
System.out.print('E'); | |
} | |
void prn(int x) { | void prn()과 void prn(int x)는 매개변수가 다르므로 다른 메소드 |
System.out.print(x); | |
} | |
} | |
public class Test { | |
public static void main(String[] args) { | |
int x = 7; | |
ClassB cal = new ClassB(); | ClassB 클래스의 생성자를 호출 |
cal.prn(x); | |
} | |
} |
※ 클래스와 이름이 동일한 메소드는 해당 클래스로 객체 변수가 생성될 때 자동으로 실행되는데, 이러한 메소드를 생성자라고 합니다. 생성자는 객체 변수 생성에 사용되는 메소드입니다. ★
※ 메모리 오버라이딩 / 메모리 재정의 : 부모 클래스와 자식 클래스에 동일한 이름의 메소드가 여러 개 있을 때, 부모 클래스의 메소드는 재정의되어 자식 클래스의 메소드만 사용되는 것
※ 객체 변수의 선언 - 기본 형식 : 클래스명 객체변수명 = new 생성자();
※ super : 상속한 부모 클래스를 가리키는 예약어
※ this : 현재 실행중인 메소드가 속한 클래스를 가리키는 예약어
728x90
반응형
'etc. > 정보처리기사' 카테고리의 다른 글
★★★ (Python) 활용 (0) | 2021.09.27 |
---|---|
★★★ (Java) 활용 (0) | 2021.09.27 |
★★★★ (Java) 제어문 (0) | 2021.09.19 |
★★★★★ (Java) 데이터 입 · 출력 (0) | 2021.09.19 |
보안 솔루션 (0) | 2021.09.19 |