본문 바로가기
Study/중앙정보처리학원과정

7일차. OOP 객체지향 프로그래밍 Class, Field, Method

by 얏옹이 2022. 11. 2.
반응형

 

 

오늘 배운 내용은 오전엔 이차원 배열....

 

오후는 객체지향 프로그래밍의 시작인 클래스. 필드. 메소드에 대해서 배웠습니다.

 

음... 이차원배열은 아무리 해도해도 잘 안되는건 왜인지...

 

강사님이 퀴즈도 내주시고 자세하게 설명은 해주셨으나 배열만큼은 정말 머리에 잘 안들어오는거같네요.

 

개인적으로 이차원배열에 매달리는거보다는 클래스. 메소드, 필드 정리해서 이해하고 넘어가는게 앞으로 더 도움이 많이 될거라고 생각했기때문에 이차원배열은 주말에 따로 시간내서 다시 복습을 하는걸로 노선을 정했습니다.

 

Class(클래스) 란?

클래스는 쉽게 말하면 설계도이자, 붕어빵을 예로들면 붕어빵틀 입니다.

 

여기서 붕어빵 틀이 클래스라면, 붕어빵을 만드는 사람, 붕어빵, 팥.. 등등이 객체, 인것이고

 

필드는 객체의 고유 데이터나 상태 정보를 저장하는곳이 필드라 불리웁니다. 그리고

 

붕어빵을 굽는다, 뒤집는다, 팥을 넣는다, 익은 붕어빵을 빼낸다, 같은 행동, 즉 동사에 해당되는게 메소드입니다.

 

 

설계를 하고 -> 부품들을 모아서 -> 조립 한다. 라고 전 이해했습니다.

 

따라서 각각의 부분들이 나뉘어져있고. 그것을 상속해서 또 동작만 하는곳은 별도로 구현해서 처리하기때문에

 

유지보수가 용이하고, 재활용이 가능하며,  확장성이 좋은것이 장점입니다.

 

 

 

 

 

클래스를 하나 구현해봤습니다.

 

객체들이 나열되어있고, 그 정보들이 담겨있는 공간이 필드, 그리고 메서드로 이루어져있습니다.

 

메서드도 제가 작성한 코드는 String이라는 타입을 주었지만, 이건 리턴 받을 값이 String 타입이기때문에 동일한 타입으로 메서드를 작성했습니다.

 

만약 리턴받을 값이 없고, 단순 동작 수행만 한다면 데이터 타입 대신 void로 선언해주셔야 합니다

 

각각 객체에 값을 대입해놓고 이제 Main 메소드에서는 해당 클래스를 선언하고

 

메서드와 객체들을 .을 이용하여 호출만 해주면 손쉽게 사용이 가능합니다. 만약에 대입되어있는 데이터를 바꿔줘야한다면 클래스 단에서 해당 값만 수정해주면 자동으로 메인 메서드에서 적용이 되기때문에 유지보수에 용이하고 확장성이 좋다 라는 이야기를 하는거라고 생각합니다.

 

 

클래스를 선언하는 문법은

 

클래스명 변수명 = new 클래스명();

 

으로 선언해줍니다. new로 선언하기때문에 Heap 영역에 클래스가 생성이 되고

 

그걸 Stack영역에서 hk변수가 heap 영역에 있는 클래스를 참조하게 됩니다.

 

그래서 hk로 지정된 변수를 "참조변수"라고도 합니다.

 

 

 

 

 

 

이렇게 선언해주고 호출은 변수명뒤에 . 을 붙이고 메서드나 객체를 호출하면 클래스 단에서 객체에 저장되어있는 값이나 

메서드 호출로 동작을 수행해줄수 있습니다.

 

전 메서드를 String 타입으로 선언하고 출력 메세지를 String 변수에 담아 변수를 리턴해주고

 

그 리턴받은 변수를 메인단에서 다시 변수에 담아 출력해주는 방식으로 코드를 짜봤습니다.

 

 

 

반응형