코드가 보기에 어렵지 않으니 한번 슥 보고 밑으로 내려오세요.
// 문제 : 이창훈 클론의 설계도를 만들어주세요.
class Main {
public static void main(String[] args) {
이창훈 first_클론 = new 이창훈();
first_클론.공부한다();
first_클론.운동한다();
first_클론.술먹는다();
}
}
class 이창훈 {
void 공부한다() {
System.out.println("|지능| +1");
}
void 운동한다() {
System.out.println("|근력| +1");
System.out.println("|뱃살| -1");
}
void 술먹는다() {
System.out.println("|뱃살| +1");
System.out.println("|지능| +1");
}
}
자바는 객체지향프로그래밍 언어이다.
클래스, 객체, 메소드, 인스턴스, 레퍼런스등 정말 생소한 여러단어가 서로 설명하고 연결되어 있으니 머리가 아프다.
나의 클론을 만들고 조종하는 프로그램을 보면서 쉽게 한번 이해해보자.
자 위 코드를 보면,
메인클래스 안에 메인메소드가 있고,
밑에 이창훈 클래스 안에 공부한다,운동한다,술먹는다 메소드가 있다.
이창훈 클래스로 각 용어를 설명해보자.
(참고로 이창훈은 내 이름이다....ㅎ)
클래스는 설계도이다. 우리는 이 설계도를 이용하여 클론을 찍어낸다.
그리고 그 설계도에는 각 기능, 변수 등이 있다.
그 기능 공부한다(), 운동한다() 등을 메소드라고 한다. C언어에서는 함수라고 한다.
우리는 설계도만 가지고는 이 메소드들을 실행시킬수 없다.
자동차 설계도만 가지고 드라이브를 할 수는 없는 것 아닌가?
그래서 우리는 위에서 말했듯 클론설계도(클래스)를 이용하여 클론을 만든다.
이것이 바로 객체이다.
아래 코드의 메인메소드를 보면 이창훈클래스를 이용하여 객체를 만들었다.
ex) new 이창훈();
그리고 그 객체를 힙영역에 할당해주기 위하여
객체의 레퍼런스를 저장할 변수를 선언하고, new연산자를 이용하여 레퍼런스를 그 변수에 저장한다.
레퍼런스란 그 객체에 대한 주소 or 식별자이다.
즉, 아래 코드에서 변수 'first_클론'은 생성된 객체(인스턴스)를 참조한다. 라고 할 수 있다.
다르게 말하면 변수가 인스턴스를 가지고 있는 것이 아니라, 인스턴스를 참조한다.
또 다르게 말하면 변수가 객체(인스턴스)의 주소(레퍼런스)를 참조한다.
라고 할 수 있다.
그리고 힙영역에 할당된 객체를 인스턴스라고 한다.
ex) 이창훈 first_클론 = new 이창훈();
위 밑줄친 모든 문장을 완벽하게 이해했다면 클래스, 객체, 인스턴스, 래퍼런스 용어정리 끝!
이제 객체를 생성, 즉 나의 클론을 만들었으니 공부하고, 운동하고, 술마시게 할수 있다.
ex) first_클론.공부한다();
first_클론.운동한다();
first_클론.술먹는다();
하나의 설계도로 여러가지 다른 객체를 만들 수 있다.
예를 들면 지능과 뱃살과 근력이 모두 다른 객체말이다. ㅎㅎ
끝!!
후 당떨어진다
- 참고 : [youtube - 희성] 장희성강사님의 설명을 참고하여 썻습니다.
'코딩Language(전공)' 카테고리의 다른 글
[전공_시스템프로그래밍] 정수(Integer) 부호확장 (0) | 2019.09.09 |
---|---|
[전공_시스템프로그래밍] 정수(Integer) 데이터타입 (0) | 2019.09.09 |
[ 리눅스 ] 사전지식2 Internet vs Web (0) | 2019.07.20 |
[ 리눅스 ] 사전지식 (0) | 2019.07.20 |
[ C언어 ] 지역변수의 값을 반환 = 無의미 (0) | 2019.07.18 |