사용하는 클래스에서 코드가 엄청 많아질 경우가 많다.
이때는 함수를 사용해서 코드의 가독성을 해결하는데, 메소드는 이 함수의 역할을 한다.
메소드를 생성해서 해당 메소드에 기능을 넣어 주 클래스(main)에서 해당 기능이 수행하는 역할을 가진다.
1. 메소드를 사용할 때의 장점
1-1. 가독성 증가
- 긴 코드나 반복되는 코드를 분리해 작은 단위로 나눔으로써 메인 로직*이 더 읽기 쉬워진다.
로직 : 프로그램이나 코드가 어떤 절차와 규칙에 따라 작업을 수행하는 방법 및 과정
1-2. 재사용성
- 동일한 작업을 여러 곳에서 호출하여 사용가능하다.
1-3. 유지보수성 향상
- 코드 변경 시 해당 메소드만 수정하면 되기 때문에 전체 코드를 다시 수정할 필요가 없다.
1-4. 캡슐화
- 데이터와 메소드를 묶어 클래스 내부에서 관리하기 쉽다.
2. 메소드를 사용할 때의 유의할 점
2-1. 단일 책임 원칙
- 메소드는 하나의 작업만 처리하도록 설계해야 가독성과 유지보수성이 향상된다.
-> 각각의 동작을 별도 메소드로 분리하는 것이 좋다.
-> 하나의 메소드(process)에 너무 많은 책임이 있다.
- calculate() : 데이터를 처리하는 계산 작업
- printResult() : 계산ㅇ 결과를 출력하는 작업
- saveToDatabase() : 데이터를 데이터베이스에 저장하는 자겅ㅂ
-> process 메소드는 위의 세 가지 서로 다른 작업을 포함하고 있으므로, 하나의 작업만 수행한다는 '단일 책임 원칙'을
위반한다.
2-2. 메소드 이름
- 메소드 이름은 해당 기능을 명확히 나타내야 한다.
2-3. 매개변수 최소화
- 가능한 필요한 매개변수만 전달하고, 너무 많은 매개변수를 요구하지 않도록 설계한다.
3. 메소드 오버로딩
- 같은 이름의 메소드를 매개변수의 타입, 개수, 또는 순서를 다르게 하여 여러개 정의하는 것이다.
- 메소드의 이름이 동일할 때 갯수 또는 타입이 달라도 메소드를 구분할 수 있다.
- 단, 호출시점에 구분해서 호출할 수 있어야 하므로 반환형이 다른 것은 아무 의미가 없다.
- 자동형변환은 매개변수로 인자를 전달할 때도 동작하기 때문에 애매한 오버로딩을 하면 안 된다.
작성된 코드를 보면 main 메소드에서 add 라는 메소드를 가져온다.
하지만 코드를 보면 알 수 있듯이 각 add 메소드는 2개와 3개의 매개변수를 가지고 있다.
위에서도 작성했듯이 우리가 이런 오버로딩 된 메소드를 제대로 가지고 오려면 매개변수의 개수를 파악해서
코드를 작성하면 된다.
첫번째 add 메소드를 사용하고 싶다면, 2개의 변수 값을 가져오고,
두번째 add 메소드를 사용하고 싶다면 3개의 변수값을 가져오면 된다.
이런식으로 main 메소드에서 두 메소드를 변수의 개수에 맞게 호출하여 출력하면 된다.
4. main 메소드
- main 메소드는 프로그램의 시작점이며, Java 실행에 반드시 필요하다.
- main 메소드를 잘 설계하고 명령행 인수 등을 활용하면 프로그램의 유연성과 활용도가 높아진다.
- main 메소드는 프로그램의 시작점이기 때문에, 그 자체로 간결하고 명확해야 한다.
-> 따라서 여러가지 메소드를 선언하여 그 안에 복잡한 코드를 작성한 후, main 메소드에서 이를 호출하여
간결하게 코드를 작성해야 가독성이 좋다.
-> 비즈니스 로직을 main 메소드를 넣는다면 프로그램의 동작 변경이나 확장이 필요할 때 main 메소드를 수정해야 한다.
하지만 기능별로 메소드나 클래스를 분리하면, 해당 기능만 수정하고 재사용할 수 있어 유지보수가 편리하다.
'JAVA' 카테고리의 다른 글
25.01.07 (화) / 객체지향과 클래스 (0) | 2025.01.07 |
---|---|
2025.01.05(일) 복습 / 배열 (0) | 2025.01.05 |
2025.01.02 (목) 12일차/ JAVA FOR문, WHILE문 (0) | 2025.01.02 |
2024.12.30(월) 10일차 / Java 자료형 (0) | 2024.12.30 |
캡슐화란 무엇일까? (0) | 2024.11.19 |