day08 패키지와 라이브러리

JTH·2023년 2월 1일
0

gb_jth

목록 보기
23/56

2. 패키지와 라이브러리

2-1. java package

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

3. ClassPath

3-1 . ClassPath란

  • 컴파일이 완료된 *.class 파일들이 위치 하는경로

4. 라이브러리

4-1. 라이브러리

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

import com.it.study.Article;

public class Main01 {

	public static void main(String[] args) {
		/*
		 * 패키지에 속해 있는 클래스에 대한 객체 생성
		 *  - 다른 패키지의 클래스를 사용하고자 할 경우
		 *  패키지 이름을 포함한 FullName으로 사용해야 한다.
		 */
//		com.it.study.Article article						다른패키지의 클래스를 가져다가쓸수있지만.
//		 	= new com.it.study.Article(1, "test","test");
		/*
		 * 이러한 번거로움을 피하고자 클래스 정의전에 import 구문을 사용하여 특정 클래스의 이름이 어떤 패키지에 소속되어
		 * 있는지를 명시할 수 있다.
		 */
		Article article = new Article(1, "test", "test");  //컨트롤 마우스포인터를 Article클래스명에 가져다대면 어느 패키지에 있는지 바로 이동
		
		
		
	}

}
package com.it.study;

 //게시물 하나를 표현하기위한 javaBeans
public class Article {
	/*
	 * static은 모든 객체가 공유하는 값이다.
	 * static값은 클래스 이름을 통해서 접근해야 하며, 객체의 생성 여부에 상관없이 사용이 가능하다.
	 */
	// 전체 게시물의 수를 표현하기 위한 데이터
	private static int count = 0;
	// 게시물의 분류를 구별하기위한 데이터
	private static String category;
	
	private int num; 		// 글 번호
	private String title; 	// 글 제목
	private String regDate; // 등록일
	
	public Article(int num, String title, String regDate) { //Article 이라는 생성자
		super();
		this.num = num;
		this.title = title;
		this.regDate = regDate;
		
		/*
		 * 이 클래스에 대한 객체 생성 - > 게시물 신규등록
		 * 게시물이 새로 등록될 때 마다, 전체 글 수를 의미하는 count 변수가 1씩 증가한다.
		 * 전체 게시물 수는 모든 객체가 공유하는 값이므로,
		 * static으로 생성되야 한다.
		 */
		count++;
	}
	
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getRegDate() {
		return regDate;
	}
	public void setRegDate(String regDate) {
		this.regDate = regDate;
	}

	public static int getCount() {
		return count;
	}

	public static void setCount(int count) {
		Article.count = count;
	}

	public static String getCategory() {
		return category;
	}

	public static void setCategory(String category) {
		Article.category = category;
	}

	@Override
	public String toString() {
		return "글 분류 = " + category
				+ ", 전체 글 수" + count
				+ ", Article [num=" + num 
				+ ", title=" + title 
				+ ", regDate=" + regDate + "]";
	}
	
	
	
}
package com.it.study.helper;

/*
 * 기본적인 공통 기능들을 묶어 놓은 클래스
 */

public class Util {
	
	//싱글톤 객체
	private static Util random;		// random 이라는 변수 선언
	
	public static Util getInstance() {	
		if(random == null) {	
			random = new Util();
		}
		return random;
	}
	//메모리에서 지워주는 역할
	public static void freeInstance() {
		random = null;
	}
	//접근 한정자
	private Util() { 
	
	}
	//싱글톤 객체 준비 끝
		
	public int random( int min, int max ) {
		int number =
				(int)((Math.random() * (max - min +1)) + min);
		return number;
		}
	}

profile
//

0개의 댓글