글 작성자: 취업중인 피터팬
728x90
JDK : 1.8.0_261 버전
JRE : 1.8.0_261 버전
JAVA VERSION : 8 업데이트 261
Eclipse IDE VERSION : 2020-06버전

 

목표

클래스의 추상화 맴버변수, 맴버메소드에 대해 이해한다.

클래스를 생성하고 객체변수를 통해 맴버변수와 맴버메소드를 호출한다.


 

코드
package ex08Class;

/*
 추상화
 		: 현실세계의 사물을 클래스로 형상화 하는 것을 추상화라고 한다.
 		Person클래슨는 "사람"의 일반적인 사항을 추상화하고 있다.
 */

class Person{
	
	/*
	 맴버 변수 : 클래스에서 주로 데이터를 표현한다.
	 */
	String name = "정우성";
	int age = 47;
	String gender = "남자";
	String job = "영화배우";
	
	/*
	 맴버 매소드 : 클래스에서 객체의 동작(행위)를 표현한다.
	 		클래스외부에서 호출할 때는 객체의 참조변수를 통해서
	 		호출해야 한다.
	 */
	void eat() {
		System.out.printf("%s가(이) 식사를 한다\n", name);
	}
	
	void sleep() {
		System.out.printf("나이가 %d인 %s가(이) 잠자고 있다.", age, name);
	}
	
}

public class E01PersonMain {
	
	public static void main(String[] args) {
		
		/*
		 Person클래스를 통해 인스턴스(객체)를 생성한다.
		 생성시 할당된 주소값이 반환된다.
		*/
		Person person = new Person();
		//객체의 참조변수를 이용해서 맴버메소드를 호출 할 수 있다.
		
		person.eat();
		person.sleep();
		
		new Person().eat();
		new Person().sleep();
		
	}

}

 

프로젝트 기간이라 1주일동안 아무것도 못올렸네요 프로젝트 코드는 모두 깃에 올려놓았습니다. 앞으로 깃허브 주소도 블로그 밑에 추가 하겠습니다. 클래스의 첫부분입니다. 클래스란 객체 지향 프로그래밍에서 빼놓을수 있는 내용인데 사물을 객체관점으로 보는 것을 말합니다. 예를 들어 자동차라는 클래스가 있으면 그 자동차 안에 바퀴 클래스, 라디오 클래스, 에어컨 클래스 등등으로 이루어진 겁니다. 자동차에 필수적인 클래스가 있고 꼭 필수적이진 않지만 있으면 좋은 클래스도 있습니다. 이런 관점으로 생각해여 프로그램을 하는 것을 객체지향프로그래밍이라고 합니다. 위에 처럼 클래스를 만드는 방법은 간단합니다. 사람을 추상화한 클래스를 보면 사람은 이름, 나이, 성별, 직업이 있죠. 그리고 먹기도 하고 자기도 합니다. 이것을 사람클래스라고 정의하고 추상화했습니다. 그리고 메인에서 Person클래스를 생성합니다. 클래스 생성은 다음과 같이 합니다.

Person person = new Person()

많이 혼란스러우실 수 있는데 원래 변수를 초기화하고 선언하는 것이랑 다른 것이 없습니다. 변수 초기화를 보여드리겠습니다.

int num = 100;

(자료형) (변수) = (값)

Person person = new Person();

(참조자료형) (객체변수) = (값)

이름만 바꿨을뿐 기능은 똑같습니다. 만약 클래스를 정의했다면 그 정의한 클래스는 자료형이 될 수 있습니다. 그리고 객체 변수를 통해 그 클래스 안에 있는 메소드와 변수를 호출 할수 있습니다. 

 

그렇다면 왜 이렇게 코딩을 하는지 궁금할 수 있습니다. 괜히 어렵게 말이죠 예를 들어 봅시다

어느 학급 반에 사람이 30명 있고 그것을 나타내야 한다고 생각해 봅시다. 그럼 그사람들의 이름, 나이, 성별, 성적 등을 메인 함수에 때려받고 그걸 한사람으로 묶어서 표현하기 위해  1일때 어떤 사람의 이름, 나이 ,성별 등등을 출력하고...기껏해서 배열을 사용해서 조금 코드를 줄일 수 있습니다. 하지만 클래스를 사용하여 구조를 짠다면 클래스 하나를 사용해서 사람을 계속해서 만들수 있습니다! 객체변수를 계속 선언만 해주면 되니깐요!

Person one = new Person();

Person two = new Person();

.

.

.

배열을 사용해서 다음 같은 과정을 줄인다면 일이 2배로 줄일 수 있겠지요 지금은 잘 이해되지 않더라고 코딩을 계속 하다보면 이해될테니깐 포기하지 맙시다.

 

결과 값

밑에 코드를 보면 new Person()을 이용해서 함수를 호출하기도 하는데 객체 변수에 들어있는 것이 결국 저 값이므로 저렇게 호출해도 상관은 없습니다.

 

 

 

깃허브 링크(모든 코드와 프로젝트가 들어있습니다.)
https://github.com/pinocchio9702

 

'Java > Java_기초부터 _끝까지' 카테고리의 다른 글

Java 기초 class(3) - 클래스 안에 객체  (0) 2020.11.06
Java 기초 class(2) - 다른 파일  (0) 2020.11.05
Java 기초 StringBuffer  (0) 2020.10.27
Java 기초 String함수들  (0) 2020.10.27
Java 기초 String  (0) 2020.10.27