관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

메서드 9 - 클래스 소개 + 미션 문제 풀기 본문

프로그래밍 언어/자바

메서드 9 - 클래스 소개 + 미션 문제 풀기

huenuri 2024. 8. 14. 07:24

클래스는 다음 단원에서 다루게 되지만 클래스가 무엇인지 잠시 소개하는 부분이 있어 학습해보기로 했다. 클래스는 객체지향 프로그래밍 언어에서 가장 중요한 개념이다.

사실 클래스를 이해하지 못하면 이해할 수 없는 부분들이 정말 많다.  사실 C#과 C++을 배울 때도 클래스를 이해하지 못했다. 이번에는 확실히 개념을 잡아볼 생각이다.


 

 

 

이론 3 - 클래스 소개

 

기능만 나열해놓으니 문제가 발생해서 1980년대 객체 지향 개념이 등장했고, 자바는 95년에 만들어졌고 상당히 깔끔하게 잘 정리한 언어로 인정받고 있다.

 

 

 

 

 

 

클래스에는 변수와 메서드가 들어갈 수 있다. 이러한 이름으로 부르기도 한다.

 

 

 

 

 

이러한 메소드를 생성 및 호출, 사용하는 것이다.

 

 

 

 

 

 

 


 

 

 

 

 

 

퀴즈 3 - 클래스

 

 

속성은 메소드가 아니라 데이터이고, 기능이 메소드이다. 문제를 잘 풀었다.


 

 

 

 

 

미션 1 - 많이 사용한 알파벳

 


 

 

이 코드는 문자와 정수를 변환하는 두 개의 메서드를 포함하고 있다. 아래에 메인 메소드가 있는데 이 부분에 지시된 내용을 작성하는 문제이다. 첫번째 메소드는 입력 받은 문자가 소문자 a에서 z 사이에 있는지 확인한다. 조건이 참이라면 알파벳 a로부터 몇 번째 위치에 있는지 계산해서 반환한다. 만약 c라면 a에서 2번째 알파벳이라는 뜻이다. 만약 입력된 문자가 없다면 -1을 반환한다. 

두번째 메서드는 0에서 25사이의 정 수를 입력 받아 그에 대응하는 소문자 알파벳 문자를 반환한다. 입력된 문자가 이 숫자 사이에 없다면 작은 따옴표를 반환하도록 되어 있다.

 

이제 문제를 풀어보자.

 

 

 

문제가 너무 어려워서 아예 3번과 4번 지시사항은 거의 풀지 못했다. 헬퍼에게 물어보니 다음과 같은 답변을 주었다.

 

 

 

 

 

혼자서는 도저히 풀 수 없는 미션 문제였다. foreach 문이 사용된 부분의 코드는 조금 이해하기 힘들었다. 아무튼 이 문제는 너무 어려우므로 다음에 메소드 단원을 확실히 학습한 후에 다시 들여다보며 복습해보려고 한다.

 

 

하지만 점수는 0점으로 나와서 뭐가 틀렸는지 모르겠다. 여러번 풀었는데도 모르겠고 그냥 넘어가기로 했다.


 

 

 

 

미션 2 - 10보다 작게 만들기


 

 

이 코드는 입력된 정수 n의 각 자릿수를 더한 결과를 반환하고 있다. n이 123이라면 문자열 "123"으로 변환된다. 그런 다음 for 루프를 사용해 문자열의 각 문자를 차례로 읽어온다. 

이 문제 역시 어렵지만 한번 풀어보려고 한다.

 

 

 

다른 자료를 참고하며 이렇게 풀어보았으나 답은 나오지 않았다.

 

 

 

문제가 너무 어려워서 풀지를 못하겠다. 대체 이 문제가 지금 배우는 메소드와 무슨 관련이 있는지 모르겠다. 거의 고급 수준의 문제를 가져다가 지금 이제 배우기 시작한 초보에게 과연 풀 수 있는 문제인가 싶다.


 

 

 

학습을 마치고

미션 문제가 너무나도 어려워서 절망감이 들었다. 공부를 때려치고 싶을만큼.. 나중에 복습하면서 그때 문제를 다시 풀어보려고 한다. 지금은 도저히 이해할 수 없는 문제였다.