백업하는 인생
클래스와 객체1_ 클래스와 객체란? 본문
객체
세상에는 사물, 사람, 동물 등이 존재한다. 이것들은 각각 고유의 정보와 기능들을 가지고 있는데, 이걸 객체라고 한다.
뭔 말인지 모르겠으니까 빨리 예제를 보자.
ex1) 사람( => 객체)
정보(=데이터, 필드, 속성): 이름, 나이, 주민번호, 혈액형 등등
동작(=메소드): 움직일 수 있음, 걸을수 있음, 웃을 수 있음 등등....
ex2) 자동차 ( => 객체)
정보(=데이터, 필드, 속성): 차종, 차 색깔, 등등
동작(=메소드):: 달릴 수 있음,..... 등 (음.... 차가 할 수 있는 거 더 생각 안남)
사람과 자동차가 객체인데, 이러한 객체들 속에는 각각 저런 정보를 담고 있다 정도만 알고 있으면 될 거 같다.
명사로 기재 될 수 있는 정보를 프로그래밍에서는 필드 및 속성이라고 부르고,
동사로 기재 되는 정보를 메소드라고 부른다.
이제 객체를 프로그래밍으로 표현해보자.
아래 그림을 보면 여러명의 사람들이 있다. 그 중 세번째에 서있는 사람에 대한 정보를 객체로 표현해보자

//필드(=데이터, 속성)
String name = "홍길동";
int age = 20; String bloodType = "O형"
//동작(=메소드)
void run() {
}
void laugh() {
}
이런식으로 사람1, 사람2, 사람4...등 여러명의 사람에 대한 정보를 프로그래밍으로 표현 할 수 있다.
클래스
필드와 메소드를 저장할 수 있는 틀 또는 설계도를 클래스라고 부른다. 뭔 말이여........
어렵다. 쉬운 예시를 들어보자.
위에서 보여준 객체에 대한 예시를 보면 하나하나의 정보들이 단독으로 그냥 흩뿌러져있는 느낌이다.
위 방식대로 사람1, 사람2, 사람3,에 대한 정보를 쫙 나열해보자
//사람1에 대한 정보
String name = "김길자";
int age = 50;
String bloodType = "A형"
void run() {
}
void laugh() {
}
//사람2에 대한 정보
String name = "김철수";
int age = 65;
String bloodType = "B형"
void run() {
}
void laugh() {
}
//사람3에 대한 정보
String name = "홍길동";
int age = 20;
String bloodType = "O형"
void run() {
}
void laugh() {
}
.....
................. 노답이다. 폴더같은데다가 담아서 정리하고 싶어 미치겠다.
보통 우리는 폴더 정리를 할 때 비슷한 것들끼리 묶어서 정리를 하곤한다. 그런 느낌이 들지 않는다면 컴퓨터 폴더 정리를 안하는 사람임에 틀림이 없다
이렇게 사람1, 사람2, 사람3에 대한 폴더를 만들어서 폴더 별로 그 사람에 대한 정보를 담으면 훨씬 깔끔하게 정리되는데, 이때 정보들을 담을 수 있는 저 폴더들을 프로그래밍에서는 "클래스"라고 부른다.

근데 저걸 유심히 보다보면 저기서 폴더를 더더더더!!!!!!!!! 줄일 수 있을 거 같다는 생각이 물씬 든다. (마치 정리에 미친 사람마냥 더 폴더를 줄이고싶다)
폴더의 갯수를 줄이기 위해 빨리 생각하자. 저 정보들 사이에서 빼낼 수 있는 공통적인 것들을....
각각의 사람들이 가지고 있는 이름과, 나이, 혈액형에 대한 정보는 다를 수 있지만, 인간이라는 존재는 공통적으로 전부 그러한 정보를 가지고 있다는 건 동일하다. 나도 내가 무슨 말하고있는지 모르겠으니까 빨리 그림으로 보자

"사람"이라는 폴더를 하나로 줄이고 그 안에 사람이 가지고있는 공통적인 정보들만 넣어두고, 나중에 그것들을 하나씩 꺼내와서 쓴다면 더 좋을 거 같다.
클래스를 자바로 표현하는 방법은 다음과 같다. 클래스명 첫글자는 대문자로 쓰는 습관을 들이자.
public class Person {
// 사람
String name;
int age;
String bloodType;
void run() {
}
void laugh() {
}
}
이제부터 폴더를 클래스라고 부르겠다.
그리고 폴더 속에 들어가는 정보들을 필드 및 속성라고 부르고
필드 및 속성들을 가지고있는 사람1, 사람2, 사람3 같은 것들을 객체라고 부르겠다.
객체 생성
클래스에 들어있는 필드를 사용하고 싶다면 하나의 객체를 만들어야 한다. 전문용어로 쓰니까 또 모르겠다.
예를 들어보자.
사람이라는 클래스 안에 들어있는 정보를 이용하여 홍길동이라는 사람에 대한 정보를 알고싶다?
그럼 일단 홍길동이라는 객체를 만든다. 객체 만드는 법은 다음과 같다.
홍길동외에 다른 사람도 만들고 싶다? 그럼 그 사람에 대한 객체도 만들면 된다.
Person person1 = new Person(); //홍길동
Person person2 = new Person() //김철수
Person person3 = new Person(); //김길자
객체를 만들었으면 이제 클래스 안에 들어있는 정보를 끌어다가 사용하면 된다.
Person person1 = new Person();
person1.name = "홍길동"; //person1이라는 객체에 대한 이름은 홍길동이다.
person1.age = 20; //person1 객체의 나이는 20살이다.
Person person2 = new Person();
person2.name ="김철수";
Person person3 = new Person();
person3.name = "김길자";
이제 이걸 실제로 이클립스에서 사용해보자
클래스와 객체2_클래스와 객체 생성하여 이용해보기
1) 클래스 만들기 클래스를 만들고 싶은 package위에서 마우스 오른쪽 > new > Class 클래스명은 대문자로! 만들어진 클래스 파일에 필드 작성 3) 현재 작업하고있는 파일에 끌어다 쓰는 법 현재 지금
5ummer.tistory.com
'java > 이론' 카테고리의 다른 글
| 싱글톤 (0) | 2022.08.23 |
|---|---|
| 인스턴스멤버와 정적멤버 (0) | 2022.08.22 |
| 클래스와 객체2_클래스와 객체 생성하여 이용해보기 (0) | 2022.08.21 |
| 변수 (0) | 2022.08.02 |
| jdk와 jre의 차이점 (0) | 2022.08.02 |