클래스
너무 말만 들었을 때 어렵다.
일단 하나하나 알아가 보자
먼저 객체이다.
객체는 눈으로 보이는 사물이다.
예> 모니터 객체,
노트북 객체,
책상 객체,
학생 객체,....
객체에는 2가지 구성요소가 있는데
우리는 학생 객체를 예를 들어 설명하겠다.
1) 속성
- 객체를 표현할 수 있는 특성
- 예> 학번, 이름, 전화번호, 주소,....
2) 동작(기능)
- 객체의 행위.
- 예> 등교하기, 공부하기, 하교하기,...
이러한 구성 요소가 있다.
이걸 왜 배우냐??
바로 객체지향 프로그래밍
( Object Oriented Programming: OOP )
이 때문에 우리는 클래스를 배우게 되는데
OOP란
현실세계에 존재하는 속성과 동작 구성요소로 되어있는
객체(object)라는 개념을 이용해서 프로그래밍하는 방법론.
대표적 언어: 자바
쉽게 말해 고양이를 컴퓨터에 넣는다 생각하자!
현실세계 OOP 가상세계(자바 프로그래밍)
고양이 객체 --------------------------> 클래스로 표현 ( Cat 클래스 )
속성: 이름, 나이, 성별... -----------------> 변수로 표현 (인스턴스 변수)
동작(기능):먹기, 뛰기,... ------------------------------> 메서드로 표현
이런 식으로 사용한다.
그래서
무슨 말이 하고 싶은가?
클래스를 사용하려면 객체를 생성해야 한다.
객체생성 방법과 순서 그리고 어디에 값이 저장되는지 설명할까 한다.
문법:
클래스명 변수명 = new 클래스명();
예>
main(){
Cat c = new Cat();
}
1번: Cat c 수행
c 가 로컬변수 ( stack 저장 )
참조변수 ( 주소값 저장, 참조하면 Cat이 있음 )
Cat 타입의 변수
2번: new Cat 수행
heap 메모리에 Cat을 생성.
heap 메모리에 생성된 Cat을 인스턴스(instance)라고 부른다.
인스턴스 안에 있는 구성요소인 변수와 메서드를 멤버(member)라고 부른다.
heap 메모리에 생성된 변수를 인스턴스 변수(멤버변수)라고 한다.
heap 메모리에 생성된 메서드를 인스턴스 메서드(멤버메서드)라고 한다.
3번: Cat()
생성자 호출하는 코드이다.
4번: =
heap 메모리에 생성된 Cat 인스턴스 주소값을
c에 할당한다.
이후에 Cat 인스턴스의 구성요소(변수, 메서드)를 접근하기 위해서는
c 참조변수를 이용한다.
방법: c. 변수/c. 메서드()
말이 너무 어렵지만 최대한 쉽게 풀어봤다.
우리는 고양이로 클래스를 만들었기에
고양이에 관한 객체를 만들어야 하는데
하기 전 간단하게 특징과 주의할 점을 알려주겠다.
특징
현실세계의 고양이 객체를 추출하고
자바언어로 프로그래밍하기 위해서 만든 클래스이다.
2가지 구성요소를 가짐 (변수와 메서드 )
변수는 현실세계의 고양이 객체의 속성을 표현하기 위함.
메서드는 현실세계의 고양이 객체의 기능(동작)을 표현하기 위함.
주의할 점은 main 메서드를 지정하지 않는다. (*************)
이유는 재사용하기 위함이다. ( 클래스 재사용 )
main메서드가 없기 때문에 실행이 안됨.
실행하기 위해서 main메서드를 가진 임의의 클래스(핸들링 클래스)를 추가해야 된다.
결론:
Cat 클래스 (main 없음)
TestCat 클래스 ( main 있음, Cat 핸들링 역할: 객체생성등.... )
다음은 인스턴스에 관해 간단하게 말하자면
고양이를 2마리 관리를 한다 하면
c1의 고양이는
Cat c1 = new Cat();
c1.name="야옹이";
c1.age=2;
c1.gender="암컷";
c2의 고양이는
Cat c2 = new Cat();
c2.name="망치";
c2.age=12;
c2.gender="수컷";
이렇게 두 개로 나눠서 할 수 있다.
'JAVA언어의 기초' 카테고리의 다른 글
JAVA - 생성자, 메서드, static (1) | 2024.03.27 |
---|---|
JAVA - 2차원 배열 (2) | 2024.03.25 |
JAVA - 배열 (0) | 2024.03.24 |
JAVA - 반복문 (0) | 2024.03.20 |
JAVA - 조건문 (0) | 2024.03.19 |