절차지향
대표적인 언어 : C언어
특징
- 메인함수의 위부터 아래로 순서대로 지향된다.
- 할당되는 데이터의 값이 일부분 변경될 경우 수정이 어려울 수 있다.
- 코드가 짧은 경우 큰 문제가 없으나, 복잡해질수록 유지보수가 어렵다.
그 후 함수(메소드)가 생겨났다. 로직만 설정해두고 그때 그때 제공되는 소스(데이터)에 따라 함수(메소드)가 결과값을 반환한다.
객체지향
대표적인 언어 : JAVA
- 동일한 성질의 데이터와 메소드를 한 곳에 모아두고 필요한 곳에서 언제든지 이용할 수 있게 만들어둔 덩어리이다.
- 접근제한자(public / private) 반환타입(int / char / String ...)(*반환값이 없는 경우 void 이용) 메소드(함수)이름 ((파라미터값))
- ex) public int sum(int i, int j, ...) / public void sum(int i ...)
** 반환 타입이 있는 경우 반드시 return __반환값__ 해야한다.
함수를 이용해 구구단 출력
하단의 dan 함수를 작성, main 함수 내에서 dan 을 이용한다.
testDan dan = new test Dan(); 은 testDan 클래스에 있는 dan 함수 (객체명)를 새로 사용한다는 의미이다.
dan.dan(input) 의 경우 앞의 dan 은 바로 윗 줄에서 선언한 testDan dan 을 의미이며,
뒤의 dan 은 입력받은 input 파라미터를 dan 함수의 int i 에 할당하여 이용한다는 의미이다.
printf 의 경우 %d 를 통해 간편하게 값을 할당할 수 있으나 줄 바꿈이 되지 않으므로 줄바꿈(\n) 을 반드시 넣어야한다.
println 의 경우 System.out.println( i + " * " + j + " = " + (i * j)) 로 사용해야하므로 부호나, 할당값이 많이 사용될 경우 부적절 할 수 있다. 단, 줄바꿈은 자동으로 되기 때문으 \n을 넣을 필요는 없다.
혼란스러울 수 있어 하단의 함수 이름을 변경하고, println 을 사용해보았다. **printf와 println 은 취향껏 이용하면 된다.
이렇게 했을 때 출력되는 내용은
이다.
짧은 함수이므로 굳이 함수를 이용하지 않아도 문제는 없지만, 코드가 길어질 경우 유지보수의 편리성을 위해 사용된다고 생각하면 된다!
'JAVA' 카테고리의 다른 글
JAVA 스터디: static (0) | 2020.11.19 |
---|---|
JAVA 스터디 : 객체 (0) | 2020.11.18 |
JAVA 스터디 : 변수 / 배열 (0) | 2020.11.17 |
JAVA 스터디 : 제어문 (0) | 2020.11.16 |
JAVA 스터디 : 연산자란? (0) | 2020.11.16 |