패키지와 라이브러리

박정호·2024년 10월 14일
0

Java

목록 보기
12/15

1. 패키지와 라이브러리

1-1. 패키지

  • 패키지 > 클래스에 대한 묶음 단위
  • 클래스를 용도별이나, 기능별로 그룹화 한 것을 말한다. 소스코드는 폴더로 분류된 형태로 존재하게 된다.
  • 서로 다른 패키지에 속해있다면 다른 클래스와 이름이 동일하더라도 충돌이 발생하지 않는다.(서로 다른 폴더에는 이름이 같은 파일들이 존재할 수 있다.)

1-2. 패키지 추가하기

  • 패키지 이름의 일반적인 정의 형식
    • 회사 도메인 이름의 역순, 프로젝트 이름의 소문자
      ex) 회사 도메인 : kh-academy.co.kr
      kr.co.khacademy.myapp.board
      kr.co.khacademy.myapp.admin
      // 이렇게 패키지를 만들면 폴더가 kr폴더 내의 co폴더 내의 khacademy폴더 내의 myapp폴더 내의 board폴더가 만들어진다.

1-3. 패키지에 속해 있는 클래스에 대한 객체 생성

  • 패키지 이름을 포함한 FullName 으로 사용해야 한다.
 kr.co.khacademy.myapp.board.Article article = new kr.co.khacademy.myapp.board.Article(1, "게시판", "2024/07/04");
  • 위의 번거로움을 피하기 위해 import를 사용한다.
import kr.co.khacademy.myapp.board.Article;
public class Main01 {
	public static void main(String[] args) {		
		Article ar = new Article(1, "게시판", "2024/07/04");		
	}
}

1-4. ClassPath

  • 컴파일이 완료된 *.class 파일들이 위치하는 경로
  • 객체를 생성할 때 대상 클래스의 소스 없이도 컴파일된 결과물만 참조해서 객체 생성 및 메서드 호출 등이 가능해 진다.

2. Library

  • *.jar
  • 한 개 이상의 패키지들을 배포하기 용이하도록 압축한 형태
  • 다른 프로그램에서 라이브러리 안에 포함된 기능을 활용할 수 있다.

2-1. Java 기본 API

  • 우리가 사용하는 JDK안에는 이미 수많은 라이브러리가 포함되어 있고, 이 라이브러리 안에는 프로그램 개발에 필요한 패키지들이 기본적으로 포함되어 있다.
  • 자바 프로그래밍은 이러한 라이브러리들의 기능을 활용하여 이루어 진다.
  • 이렇게 프로그램 개발을 위하여 기본적으로 제공되는 기능들을 API라 한다.

3. Wrapper Class

3-1. Wrapper Class란

  • java는 데이터를 관리하기 위하여 기본 데이터 타입을 지원하지만, 클래스를 통해서 만들어진 객체를 통한 데이터 관리도 가능하다.
  • 어떤 상황에서는 기본 데이터 타입의 변수를 객체형태로 사용해야 하는 경우가 있는데, 이 때 기본형 타입을 객체로 포장할 필요가 있다.
  • 포장 클래스(Wrapper Class)는 특정 기본형 타입을 나타내는 용도로 사용된다.

3-2. Wrapper 클래스의 의미

  • 초창기 java언어는 기본 자료형의 연산보다도 Wrapper 클래스를 사용한 연산이 더 많이 이루어졌으나, java언어가 발전함에 따라서 기본 자료형과 Wrapper 클래스 간의 연산에 차이가 없어졌다.
  • 최근의 java언어는 Wrapper 클래스와 기본 자료형을 구분하지 않고 사용하기 때문에 객체로서의 특별한 의미가 없어졌다고 볼 수 있다.

3-3. Wrapper 클래스의 객체 만들기

  • 각각의 Wrapper 클래스의 객체는 자신과 대응되는 기본 자료형의 데이터를 파라미터로 전달받는다.
	int num = 1;
	Integer wrapper = new Integer(num);

3-4. Wrapper 클래스 형변환

  • 기본 자료형과 Wrapper 클래스 간에는 서로 암묵적 형변환이 가능하다.
	int num = 100;
	Integer wrapper = num;
	------------------------------
	Integer wrapper = new Integer(100);
	int num = wrapper;

3-5. Wrapper 클래스의 static 데이터

  • 모든 Wrapper 클래스는 static 데이터 형태로 Wrapper 클래스에 대응되는 자료형에 대한 최소값과 최대값을 가지고 있다.
	int max = Integer.MAX_VALUE;
	int min = Integer.MIN_VALUE;

3-6. 문자열 데이터의 형변환 중요

  • 1과 "1"의 차이
    • 기본 자료형과 문자열 데이터 간의 연산에서는 기본 자료형 데이터가 문자열로 변환된 후, 문자열 간의 연산으로 처리된다.
	int a= 1;
	String b = "1";
	System.out.println(a+b);	// "11"이 출력
  • 사용자 입력값에 대한 연산
    • 모든 프로그램 플랫폼에서 사용자의 입력값은
      String으로 처리된다.
    • 만약, 인터넷 뱅킹에서 2개의 계좌로 송금할
      금액을 각각 입력하였을 때, 총 금액을 계산한다면
      다음과 같이 처리될 것이다.
	String money1 = "5000";
	String money2 = "3000";
	String total = money1+money2;
	// "50003000"
  • 문자열 데이터를 기본 데이터 형으로 변환하기
    • Wrapper 클래스에는 기본 자료형의 모양을 띄고 있는 문자열 데이터를 실제 기본 자료형으로 변환시키는 기능이 포함되어 있다.
    • java에서의 Wrapper 클래스의 가장 큰 의미는 바로 이 부분이다.
	String money1 = "5000";
	String money2 = "3000";

	int m1 = Integer.parseInt(money1);
	int m2 = Integer.parseInt(money2);

	System.out.println(m1 + m2);  // 8000 

4. Math 클래스

4-1. 수학적 연산을 지원하는 클래스

  • Math 클래스는 흔히 계산을 하는데 도움이 되는 많은 수의 기본적 수학 함수들을 제공한다.
  • Math 클래스는 Java 표준 클래스 라이브러리의 java.lang 패키지에 정의되어 있다.
  • Math 클래스의 모든 메서드들은 static 메서드로, 클래스의 객체를 생성하지 않고 그 메서드가 정의된 클래스 이름을 통해 호출할 수 있다.

+α. LTS(Long Term Support) : 장기 지원 버전

  • 소프트웨어 업데이트의 유형과 빈도를 변경하여 소프트웨어 배포의 위험부담, 비용 및 급작스런 중단을 줄여 소프트웨어의 신뢰도를 향상시킨다.
  • 기업에서는 LTS버전을 채택하므로써 사용하는 소프트웨어의 버전 업그레이드에 대한 부담을 줄이고 안정성을 높힐 수 있다.
  • Java는 8, 11, 17, 21 버전이 LTS버전이다.

0개의 댓글