JAVA - 6장: 패키지와 모듈

m0d0ri205·2024년 11월 24일
0

6장: 패키지와 모듈


1. 패키지의 개념과 필요성

  • 패키지는 클래스 파일들을 디렉터리 구조로 관리.
  • 동일한 이름의 클래스 충돌을 방지하며, 모듈화로 코드 관리가 쉬워짐.
  • 예시:
    Project/FileIO/Tools.class
    Project/UI/Tools.class

2. 자바의 모듈(module)과 패키지(package)

  • 패키지: 관련 클래스/인터페이스를 하나의 디렉터리에 묶음.
  • 모듈: 여러 패키지 및 리소스를 포함한 컨테이너.
    • Java 9부터 도입된 개념.
    • 모듈 예시: java.base 모듈 (기본 패키지 포함).

3. 패키지 사용법

  • 다른 패키지의 클래스 사용:
    • import java.util.Scanner;로 특정 클래스만 포함.
    • import java.util.*;로 패키지의 모든 클래스 포함.

예시 코드

import java.util.Scanner;

public class ImportExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println(scanner.next());
    }
}

4. 패키지 만들기

  • 선언: package 패키지명; → 첫 줄에 선언.

예시 코드

package UI;

public class Tools {
    // UI.Tools 경로에서 사용 가능
}

5. 클래스와 메소드의 주요 활용

1. Object 클래스

  • 모든 클래스의 부모 클래스.
  • 주요 메소드: getClass(), hashCode(), toString().

예시 코드

class Point {
    private int x, y;
    public Point(int x, int y) { this.x = x; this.y = y; }
}

public class ObjectPropertyEx {
    public static void print(Object obj) {
        System.out.println(obj.getClass().getName());
        System.out.println(obj.hashCode());
        System.out.println(obj.toString());
    }
    
    public static void main(String[] args) {
        Point p = new Point(2, 3);
        print(p);
    }
}

2. equals() 메소드

  • 객체 내용 비교를 위한 메소드.

예시 코드

class Point {
    private int x, y;
    public Point(int x, int y) { this.x = x; this.y = y; }
    
    public boolean equals(Object obj) {
        Point p = (Point)obj;
        return (x == p.x && y == p.y);
    }
}

3. Wrapper 클래스

  • 기본 타입을 객체로 다룸.

예시 코드

public class WrapperEx {
    public static void main(String[] args) {
        int i = Integer.parseInt("123");
        System.out.println(i); // 123
    }
}

6. 문자열 관련 클래스

1. String 클래스

  • 불변 객체로 equals()로 내용 비교.
  • 주요 메소드: concat(), substring(), replace().

예시 코드

public class StringEx {
    public static void main(String[] args) {
        String a = "C#";
        a = a.replace("C#", "Java");
        System.out.println(a); // Java
    }
}

2. StringBuffer 클래스

  • 문자열 수정 가능.

예시 코드

public class StringBufferEx {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer("Hello");
        sb.append(" World");
        System.out.println(sb); // Hello World
    }
}

7. Math와 Calendar 클래스

1. Math 클래스

  • 난수 발생, 반올림 등 수학 연산.

예시 코드

public class MathEx {
    public static void main(String[] args) {
        System.out.println(Math.random() * 100);
    }
}

2. Calendar 클래스

  • 날짜 및 시간 관리.

예시 코드

import java.util.Calendar;

public class CalendarEx {
    public static void main(String[] args) {
        Calendar now = Calendar.getInstance();
        System.out.println(now.get(Calendar.YEAR));
    }
}

profile
말하는 감자중.....

0개의 댓글