JAVA 싱글톤 디자인, 패키지, Wrapper 클래스

김태헌·2022년 9월 18일
post-thumbnail

1. Single Ton 디자인 패턴

1-1. 디자인 패턴 이란?

  • 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이
    발생했을 때 재사용할수 있는 해결책

1-2. SingleTon 디자인 패턴

  • 프로그램 내의 여러 곳에서 반복적으로 사용되어야 하는 객체에 대해 전역적인
    범위를 갖도록 객체를 생성하고, 이 객체를 여러 곳에서 공유하기 위한 클래스
    작성 패턴
  • 이러한 패턴을 통해 생성된 객체를 싱글톤 객체라고한다.

1-3. SingleTon 객체의 이점

  • 프로그램의 전역에서 활용할 재료로 사용되는 공유 기능을 하나만 생성하여
    여러곳에서 재사용함으로 해서 메모리를 효율적으로 사용할 수 있다.
  • 단 한번만 객체를 생성하면 다시 객체를 생성할 필요가 없기 때문에,
    해당 기능을 사용할 때마다 객체를 일일이 생성해야 하는 번거로움을 피할 수 있다.

2. Package

  • 패키지 -> 클래스에 대한 묶음 단위
  • 클래스를 용도별이나, 기능별로 그룹화 한 것을 말한다. 소스코드는 폴더로
    분류된 형태로 존재하게 된다.
  • 서로 다른 패키지에 속해 있다면 다른 클래스와 이름이 동일하더라도
    충돌이 발생하지 않는다.
  • 패키지 이름은 회사 + 프로젝트의 아이덴티티를 넣는다.
  • com.koreait.shop.article

2-1. 복사된 소스파일

  • 패키지에 소속된 클래스 파일은 첫 번째 라인에서 자신이 소속된 클래스 패키지
    이름을 선언해야 한다.

3. ClassPath란?

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

4. 라이브러리

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

5. JAVA기본 API들

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

6. Wrapper Class

6-1. Wrapper Class란

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

6-2. Wrapper Class 종류

6-3. Wrapper Class 의미

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

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

  • 각각의 Wrapper 클래스의 객체는 자신과 대응되는 기본 자료형의 데이터를
    파라미터로 전달받는다.

    	int num = 1;
    	Integer wrapper = new Integer( num );

6-5. Wrapper 클래스 형변환

  • 기본 자료형과 Wrapper 클래스 간에는 서로 암묵적 형변환이 가능하다.

    int num = 100;
    Integer wrapper = num;

    Integer wrapper = New Integer(200);
    int num = wrapper;

6-6. Wrapper 클래스의 static 데이터

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

    	int max = Integer.MAX_VALUE;
    	int min = Integer.MIN_VALUE;

6-7. 문자열 데이터의 형변환(중요)

  • 1과 "1"의 차이

  • 기본 자료형과 문자열 데이터간의 연산에서는 기본 자료형 데이터가
    문자열로 변환된 후, 문자열간의 연산으로 처리된다.

    	int a = 1;
    	String b = "1";
    	System.out.println(a + b);	// 11
  • 사용자 입력값에 대한 연산

  • 모든 프로그램 플랫폼에서 사용자의 입력값은 String 으로 처리된다.

  • 만약, 인터넷뱅킹에서 2개의 계좌로 송금할 금액을 각각 입력하였을 때,
    총 금액을 계산한다면 다음과 같이 처리된다.

    	String money1 = "3000";
    	String money2 = "5000";
    	String total = moeny1 + money2;	// 30005000
  • 문자열 데이터를 기본 데이터 형으로 변환하기
    -> wrapper 클래스에는 기본 자료형의 모양을 띄고 있는 문자열 데이터를
    실제 기본 자료형으로 변환시키는 기능이 포함되어 있다.

    String money1 = "3000";
    String money2 = "5000";

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

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

7.Math 클래스 개요

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

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

8. String

  • 문자열에서 정보를 추출하기 위한 String
profile
개발자 과정 국비 수료 중

0개의 댓글