[Java] 복수 클래스를 사용한 개발

JTI·2022년 10월 24일
0

☕️  Java

목록 보기
9/59
post-thumbnail

🗂 소스 파일(class)의 분리

대규모 개발에서는 혼자서 개발이 어렵고 분담을 하여 소스를 모듈화 해야 한다.
1개의 소스파일로는 개발의 한계를 만날 것이다.

예를 들어, 메서드가 많아지면 양이 너무 방대해 진다. 그래서 클래스를 따로 두어 분리를 해야 한다.

➕ 계산기 프로그램

// 수정 전
public class Calc {
	public static void main(String[] args) {
    	int a = 10;
        int b = 2;
        int total = add(a, b);
        int delta = minus(a, b);
        System.out.println("더하면 " + total + ", 빼면 " + deltal);
    }
    
    private static int add(int a, int b) {
    	retrun a + b;
    }
    
    private static int minus(int a, int b) {
    	return a - b;
    }
}

이 예시는 메인클래스 안에다가 메서드를 넣은 예시이다.
지금은 코드가 적어서 그렇지만, 점점 나아가 코드가 길어지면 보기 좋지 않을 것이다.

그래서 class를 따로 만들어 메서드를 따로 둬보자.

public class CalcLogic {
	
    static int add(int a, int b) {
    	return a + b;
    }
    
    static int minus(int a, int b) {
    	return a - b;
    }
}

이렇게 만든 CalcLogic 클래스 파일을 메인으로 가져와서 쓴다.
그래서 잘게잘게 코드를 쪼개는게 중요하다.

일반적인 코드가 길어지면 메서드를 분리할 수 없나 고민을 해본다.

🗂 패키지 (package)

쉽게 말하면 '폴더' 같은 느낌이다. 디렉토리라고도 불린다.

Java에서는 각 클래스를 패키지(package) 라는 그룹에 소속시켜, 분류, 관리가 되도록 하는 장치가 준비 되어있다.

  1. main() 메서드의 라인수가 늘어나면 복수의 메서드로 분리
  2. 메서드 수가 늘어나면 복수의 클래스로 분리
  3. 클래스 수가 늘어나면 복수의 패키지로 분리
// 패키지 예시
package RealProject; // 맨위에 선언

class Bank {

💡 이름 공간(name space)

  • 자신이 작성한 클래스에 대해, 개발자가 자유로운 이름을 지을 수 있다.
  • 패키지명 자체의 충돌을 피하려면 보유한 도메인의 앞뒤를 바꿔서 패키지명으로 사용

💡Java API에 대해

여러 사람이 합심하여 완성한 HelloWorld

총 347개의 클래스의 표준 클래스가 사용되었고,
이것들을 API (Application Programming Interface)라고 한다.

Java에는 약 200개 이상의 패키지, 3500개 이상의 클래스가 준비되어 있다.

예를들어, Math / Scanner / Arrary등등

import java.util.Arrays;

public class Cala {

	public static void main(String[] args) {
		int[] heights = {173, 180, 160, 190, 150};
		Arrays.sort(heights); // 작은순에서 큰순까지 저절로 정렬이 됨.
		
		
		for (int h : heights) {
			System.out.println(h);
		}
	}
}

💡Java API에 포함된 대표적인 패키지

  • java.lang: Java에서 가장 중요한 클래스군 (자동 import)
  • java.util: 프로그래밍을 편리하게 해 주는 유용한 클래스군
  • java.math: 수학에 관한 클래스군
  • java.net: 네트워크 통신등에 필요한 클래스군
  • java.io: 파일 입출력 등에 필요한 클래스군
profile
Fill in my own colorful colors🎨

0개의 댓글