백업하는 인생

클래스와 객체1_ 클래스와 객체란? 본문

java/이론

클래스와 객체1_ 클래스와 객체란?

sunmn 2022. 8. 21. 23:46

객체

세상에는 사물, 사람, 동물 등이 존재한다. 이것들은 각각 고유의 정보와 기능들을 가지고 있는데, 이걸 객체라고 한다.

뭔 말인지 모르겠으니까 빨리 예제를 보자. 

더보기

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
Comments