ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 초보개발자 공부일지(JAVA) [함수] with 패스트캠퍼스 #2
    초보 개발자 성장 일지/FC교육 2023. 2. 21. 20:07

    오늘은 '함수'까지 공부를 했다.

    함수와 메서드는 뭔가 비슷해보여서... 두세 번을 돌려본 거 같다...

     

    메서드는 내일 다시 강의를 돌려보고자 한다..

    함수를 이해한 부분까지 포스팅을 해보려고 한다.

    필기 노트와 함께 이야기를 시작해 보자!

    여전히 글씨가...

     


    함수 ----

    강의에서 함수에서 아래와 같이 정의하고 있다.

     

    '함수' : 하나의 기능을 수행하는 일련의 코드이며 여러 곳에서 호출되어 사용되어짐.

     

    즉, 1+1 = 2 라는 연산과정을 얻기위해 만들어지는 것이라고 생각하면 쉽다. 2개의 수를 더하기하는 작업을 하고 싶다면, a + b라는 식을 만들어서 a = 1을 대입하고 b=1을 대입하면 되는 것이다. a+b라는 식을 어딘가에 만들어 놓고 두 수를 합할때 마다 즉, 필요할때 마다 꺼내서 식을 쓰기만 하면 되는 것이다. 이걸 코드로 표현을 하면 아래와 같다.

    'addNum'이라는 이름의 함수이다. 이름은 사용자가 편하게 지으면 된다.

    ( ) 안에 있는 것은 매개변수라고 하는 데, 임의로 자리를 만들어 놓은 거라고 생각하면 쉬울거 같다.

    아까 위에서 a에 1을 대입하는 a=1를 이야기했는데, 그 부분이라고 생각하면 좋을거 같다.

    ( ) 아래 식을 보면,  result = num1 + num2 라고 되어 있는데, 위 매개변수가 연산위치로 들어간다는 것이다.

    num1 = 2를 대입하고, num2 = 5를 대입하면, result는 2 + 5 = '7'의 답을 얻는 것이다.

    ( )안에 매개변수는 꼭 2개일 필요는 없다. 아래 연산 내용에 따라 달라질 수 있고, 없을 수도 있다.

    매개변수의 이름도 임의로 정할 수 있는데, 어떤 자료가 들어오는지 이해가 될 수 있게 표현하는 것이 좋다.

    num은 number의 약자로 숫자라는 것을 쉽게 알 수 있듯, 이렇게 변수명을 정하면 좋다.

     

    { }안에는 다양한 연산들이 올 수 있다. 처음이라 +만 했지만, -를 넣어 연산을 해도 되고, '/'를 넣어 나누기를 해도 된다.

    혹은 if를 써서 참(True)과 거짓(False)을 나누어 계산을 이어갈 수도 있다.

     

    return은 매개변수로 들어온 자료들의 연산 결과를 result라는 다른 변수에게 반환한다는 의미이다. 함수는 계산만 해줄 뿐이다. 그 값을 나타내려면 return을 입력하여 값을 어딘가로 반환해야한다. 그래서 마지막에 return을 쓴 것이다.

    *개인적으로 return의 개념이 나에게는 매우 어렵다..... 왜 그렇지?! ㅠ 나중에 다시 한번 return에 대해 공부하고 개념을 정확히 이해해야 할거 같다.

     

    마지막으로, 앞서 강의에서 함수는 필요에 의해 다른 클래스에서 호출해서 쓸 수 있다고 하였다. 그것이 무슨 의미일까?

    수업에서 내가 작성한 코드를 보자.

    왼쪽에 패키지 ch3안에 2개의 클래스를 만들었다. FunctionTest.java클래스와 Test.java클래스이다.

     

    FunctionTest.java 클래스 안에는 위에 result = num1 + num2을 계산하는 함수를 만들어 놓았고, 함수명은 위 사진에서 보여준 이름 그대로 addNum();으로 되어 있다.

     

    그리고 테스트를 하기 위해 나는 Test.java라는 빈 클래스를 만들었고, 위 사진과 같이 FunctionTest(클래스명)를 타이핑하여 클래스를 호출하였다.

    그러더니 이클립스가 친절하게 FunctionTest.java라는 클래스 안에 있는 함수들 중 어떤 걸 쓸거냐고 선택창을 띄운다.

    오른쪽 선택창 팝업에 보면 앞서 우리가 이야기 나눈 addNum이라는 것이 보인다. 그리고 아주 친절하게도 addNum(int num1, int num2)라고 매개변수까지 설명해 놓았다.

    addNum을 선택하게 되면 아래와 같이 코딩을 할 수 있다.

    addNum(매개변수, 매개변수)를 호출하여 우리가 매개변수에 어떤 값을 줄건지 설정할 수 있게 해준다.

    나는 1과 2를 넣었고, 아래에 결과값으로 3이 나왔다.

    함수가 다른 클래스에서도 본인의 기능을  잘 작동시킨다는 것을 확인 할 수 있다.

     

    이렇게 다른 클래스에서도 함수는 호출이 가능하고, 그 기능을 활용할 수 있다. 그렇기 때문에 어디서든 필요에 의해 호출이 가능하다고 정의한 것이다.

    a+b에 대한 연산식을 손 아프게 코드로 칠 필요가 없다. 한번 클래스 안에 코딩을 해두면 간편하게 호출하여 사용할 수 있다.

    호출하여 사용 할 때는 클래스명 마지막에 ' . ' 점(dot)을 찍고 함수명을 써주면 된다.

     

    FucntionTest(클래스명).addNum(함수명) (매개변수, 매개변수);

     

    오늘도 달리는 '나'


    오늘 함수를 배우면서 놀라움을 금치 못했다.

    자바스크립을 할때는 .js파일 하나에 필요한 함수들을 작성하다보면, 스크립트가 빽빽하게 되는 경우가 있다.

    그런데 자바의 경우는 클래스별로 나누어 함수를 정리할 수 있다는 큰 장점이 있는 것 같다.

    가끔 복잡한 작업을 자바스크립트로 할때는 함수를 만들어 놓고도, 어떤 함수였나 까먹을 때가 있다.

    (내가 주석을 잘 못한 것도.. 있지만..)

    그런데 자바는 클래스 단위로 서로 연결이 되어 있어서 너무나 신기했다.

    더 깔끔하고, 효율적으로 작업이 가능하겠다는 생각이 들었다.

     

    오늘 공부도 마무리!

    내일은 메서드를 다시 한번 공부해볼까 한다.

    함수랑 너무 비슷해서.. 헷갈린다...

    패캠 강의는 이해가 안되면 여러 번 돌려 볼 수 있어서 좋다..ㅠ

    내일 메서드를 다시 공부해서 포스팅을 이어가겠다!

     

     

     

    패스트캠퍼스 홈페이지

    http://bit.ly/3Y34pE0

     

     

     

    본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

    댓글

Designed by Tistory.