책 내용 질문하기
1도 이해안가는 aa class부분
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
109
조회수
195
작성일
2019-06-12
작성자
탈퇴*원
첨부파일
예제 2번입니다. 하 점점 이해가 1도 안가네요. 오히려 자바 들어오고 막히는 거 같아요. 강사님 설명 10번 넘게 들어도 전혀 모르겠습니다. (0.5배속으로 들어도 뒤로 갈수록 잘 안들리더라고요) static AAclass change(AAclass my Val) 부분이 전혀 이해가 되지 않습니다. AAclass가 리턴타입이라고 하셨는데 리턴값 관련 클래스도 메소드도 없는데 뭔소린지도 모르겠고 리턴타입은 또 뭔가요? 저 문장? 부분에 대한 설명 조금만 자세하게 부탁드릴게요. 그리고 인수로 갖는다 변수로 갖는다의 차이는 뭔가요?
답변
2019-06-13 10:55:40

안녕하세요 길벗수험서 운영팀입니다.

 

코드로 하나씩 가보죠.

 

1번은 클래스의 정의입니다. 이 클래스는 자료형인 int, char, double, string 들과 동일하게 사용됩니다.

2번은 클래스 선언입니다. 'int a;' 처럼 myVal이라는 이름의 변수를 AAclass라는 자료형으로 선언했다고 생각하세요.

 

3번은 change() 함수(자바에서는 메소드) 호출입니다. 인수로 myVal을 가져가고, 리턴된 값을 myVal에 저장하겠다고 하네요.

인수라는 것은 함수나 메소드에서 연산에 사용할 것이니 호출할 때 자료형에 맞는 값을 포함해서 호출해라. 라는 의미입니다.

예를 들어, 구구단이라는 함수가 있어 이 함수는 정수 인수를 받아들여 해당 인수에 해당하는 구구단을 출력합니다.

구구단(3);  <- 요렇게 호출하면 구구단 3단을 출력하는 함수죠.  여기서 인수는 호출할 때 사용한 '3' 입니다.

 

4번은 좀 분해해보죠.

static <- 인스턴스를 생성하지 않고 공통으로 사용하기 위해 사용하는 예약어이지만, 기사 실기 수준에서는 중요하지 않습니다. 메소드를 사용하는데 필요하다는 정도만 알고 넘어가세요.

AAclass <- 자료형이 와야하는 부분입니다. 리턴값의 자료형을 가리키죠. 만약 리턴값이 없다면 void가 와야 합니다. 앞에서 클래스인 AAclass를 자료형처럼 보라고 말씀드렸죠? 그와 같습니다.

change <- 메소드명입니다.

(AAclass myVal) <- 호출할 때 인수를 myVal로 호출했습니다. 이것은 받을 때는 당연히 동일한 자료형 'AAclass'여야 하고, 받는 변수명은 달라도 됩니다. 여기서는 인수와 동일한 변수명인 myVal을 사용했지만, 전혀 다른 abc 같은 것으로 사용해도 문제 없습니다. 대신 change 메소드의 세부코드의 myVal들을 abc로 바꿔줘야겠지만요.

(인수를 받는 변수를 매개변수라고도 하며, 강의하시는 분은 인수로 보내진 수를 이 변수로 갖는다라고 표현하신 것 같네요)

 

**main()이나 change()나 인수로 주고 return으로 돌려주는 형식으로 값을 교환합니다. 서로의 영역안에서 선언된 지역변수들은 공유가 되지 않는다는 것에 주의하세요.

 

자바의 메소드는 C의 사용자정의함수와 유사합니다.

물어보신 리턴값 관련 자료형은 4번 코드의 두번째 단어 AAclass를 의미하고, 그 자료형은 1번에서 정의된 클래스죠.

클래스 자체가 자료형으로 활용될 수 있다는 점을 놓치신 것 같습니다.

 

가능한 설명해보았으나, 미비한 점이 있을 수 있으니 이해되지 않는 부분에 대해서 세세히 질문해주세요.

 

행복한 하루되세요 :)

  • 관리자
    2019-06-13 10:55:40

    안녕하세요 길벗수험서 운영팀입니다.

     

    코드로 하나씩 가보죠.

     

    1번은 클래스의 정의입니다. 이 클래스는 자료형인 int, char, double, string 들과 동일하게 사용됩니다.

    2번은 클래스 선언입니다. 'int a;' 처럼 myVal이라는 이름의 변수를 AAclass라는 자료형으로 선언했다고 생각하세요.

     

    3번은 change() 함수(자바에서는 메소드) 호출입니다. 인수로 myVal을 가져가고, 리턴된 값을 myVal에 저장하겠다고 하네요.

    인수라는 것은 함수나 메소드에서 연산에 사용할 것이니 호출할 때 자료형에 맞는 값을 포함해서 호출해라. 라는 의미입니다.

    예를 들어, 구구단이라는 함수가 있어 이 함수는 정수 인수를 받아들여 해당 인수에 해당하는 구구단을 출력합니다.

    구구단(3);  <- 요렇게 호출하면 구구단 3단을 출력하는 함수죠.  여기서 인수는 호출할 때 사용한 '3' 입니다.

     

    4번은 좀 분해해보죠.

    static <- 인스턴스를 생성하지 않고 공통으로 사용하기 위해 사용하는 예약어이지만, 기사 실기 수준에서는 중요하지 않습니다. 메소드를 사용하는데 필요하다는 정도만 알고 넘어가세요.

    AAclass <- 자료형이 와야하는 부분입니다. 리턴값의 자료형을 가리키죠. 만약 리턴값이 없다면 void가 와야 합니다. 앞에서 클래스인 AAclass를 자료형처럼 보라고 말씀드렸죠? 그와 같습니다.

    change <- 메소드명입니다.

    (AAclass myVal) <- 호출할 때 인수를 myVal로 호출했습니다. 이것은 받을 때는 당연히 동일한 자료형 'AAclass'여야 하고, 받는 변수명은 달라도 됩니다. 여기서는 인수와 동일한 변수명인 myVal을 사용했지만, 전혀 다른 abc 같은 것으로 사용해도 문제 없습니다. 대신 change 메소드의 세부코드의 myVal들을 abc로 바꿔줘야겠지만요.

    (인수를 받는 변수를 매개변수라고도 하며, 강의하시는 분은 인수로 보내진 수를 이 변수로 갖는다라고 표현하신 것 같네요)

     

    **main()이나 change()나 인수로 주고 return으로 돌려주는 형식으로 값을 교환합니다. 서로의 영역안에서 선언된 지역변수들은 공유가 되지 않는다는 것에 주의하세요.

     

    자바의 메소드는 C의 사용자정의함수와 유사합니다.

    물어보신 리턴값 관련 자료형은 4번 코드의 두번째 단어 AAclass를 의미하고, 그 자료형은 1번에서 정의된 클래스죠.

    클래스 자체가 자료형으로 활용될 수 있다는 점을 놓치신 것 같습니다.

     

    가능한 설명해보았으나, 미비한 점이 있을 수 있으니 이해되지 않는 부분에 대해서 세세히 질문해주세요.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.