<Java> 7. 자바의 패키지

정지민·2023년 10월 6일

Java

목록 보기
6/12

패키지

  • 클래스의 묶음
  • 서로 다른 패키지에 동일한 이름의 클래스 사용 가능
  • 각 계층은 도트 (.)로 구분
  • 접근지정자
    • public : 어디서든 가능
    • default : 같은 패키지면 가능
    • private : 불가
  • 클래스 경로명 : 패키지이름 + 클래스 이름
    java.util.Scanner 패키지명.클래스명

자바 표준 패키지

  • 모듈로 분할되어 제공

모듈

  • 여러개의 모듈로 분할됨
  • 모듈 적용 필수 아님 (우리는 사용 x)

주요 패키지들

java.base 모듈

  • java.lang
    • 문자열, 수학, 표준 입출력 (String, System, Math)
    • 패키지명 없이 사용 가능
  • java.util
    • 날짜, 시간, 벡터, 해시맵 (Scanner, Collection, Callender)
  • java.io

java.desktop 모듈

  • java.awt : 기본 GUI
  • java.swing : 추가 GUI

패키지에 포함된 클래스 사용 방법

1. 패키지명 포함한 클래스 이름 사용

java.util.Scanner s;
s= new java.util.Scanner(System.in);

2. 소스 맨 앞에 import 선언문 사용

import java.util.Scanner;
Scanner s;
s= new SCanner(System.in);
import <패키지경로.클래스명>; //온전하게 선언해주자
import <패키지경로.*>; //바람직하지 않다
단축키 : ctrl + shift + o

패키지 선언

package 패키지명;

  • 각 패키지명은 .으로 구분
  • . 으로 구분된 패키지명은 별도의 서브 디렉토리에 나누어 저장
    • java.util.Scanner -> java/util/Scanner.class
  • 패키지 경로가 같으면 동일 디렉토리 존재

사용자 패키지의 생성

  • 디폴트 패키지 (따로 지정 x)
  • 이클립스에서 패키지 생성

자바 기본 API 클래스

java.lang.Object 클래스

  • 기본 클래스
  • boolean, int, String

Wrapper 클래스

  • 기본 자료형을 객체로 나타내기 위한 클래스
  • 문자열을 기본 자료형으로 변환
  • 예: 정수 10을 객체로 나타내는 Integer 객체



java.lang.String 클래스

  • import 안써도됨

  • 자바의 문자열 리터럴은 String 객체로 처리됨
    String s = "Hello";

  • '+' 연산자: 문자열 연결 연산자
    String str3 = str1 + str2;

  • 기본적으로 편집 불가

String 클래스의 객체 생성 방법

암시적 생성

  • 이미 같은 문자열이 등록되어 있다면 그 문자열의 참조 변수 넘겨 받음
  • == 연산자로 문자열 비교 가능하지만 바람직하지 않다!!
    String s = "Hello";

명시적 생성

String s2 = new String("hello");

  • 항상 heap 영역에 새로 생성
  • == 연산자로 비교 가능
  • s1.equals(s2) 사용하자!! 중요!!

문자열의 비교

  • boolean equals(String another)
    • == 사용하면 안됨
  • int compareTo(String another)
    • 이 문자열이 another 보다 먼저 나오면 음수 반환
    • 반대면 양수 반환
    • 같으면 0 반환

java.lang.StringBuffer 클래스

  • 가변 문자열
  • 객체 생성시 여유 공간 할당 받을 수 있음
  • StringBuffer 객체는 편집 가능
  • string 객체가 아니기에 끝나고 toString 메소드 통해 string 객체로 반환
StringBuffer s1 = new StringBuffer("hi"); //stringbugger 객체 생성
s1.append("!!");
String s2 = s1.toString(); //stirng 객체 생성






0개의 댓글