본문 바로가기

[JAVA]

[JAVA]9월23일 패키지, 시스템 클래스, StringBuffer 와 StringBuilder 의 차이점, Wrapper 클래스, Date 클래스, StringTokenizer 클래스

* 패키지 : 클래스들을 묶은것.

패키지의 장점 

-관련된 클래스들을 쉽게 파악.

-원하는클래스들을 쉽게 찾을 수 있다.

-패키지 마다 이름 공간을 따로 갖기때문에 같은 클래스의 이름을 여러 패키지가 사용.


패키지 생성방법

pakage animal;     // 클래스 위에 선언!

public class Dog{}

이클립스 에서는 프로잭트 생성 후 마우스 오른쪽 클릭 한후 new 에서 pakage 생성 하면됨.

생성한 pakage에다 원하는 클래스명들을 만들어서 넣고.

pakage 안에 pakage를 만들 수 있다.

ex) 위에 animal 패키지 안에 test패키지를 만들려면 animal 패키지에서 마우스 오른쪽 클릭 하면 animal 이라고 작성이 되있다 이름을 animal.test 라고 작성해주면 된다.

ex)package animal.test;  //우리가 방금 만든 클래스는 animal.test 에 속하는 Test클래스

//import animal.Animal;

//import animal.Cat;

//import animal.Animal;  // 2. 요런 풀패키지명을 가진 클래스를 같은 패키지 인것 마냥 쓰겠다. 

import animal.*;       // 3. animal 패키지의 모든 클래스들을 같은 패키지에 있는 마냥 쓰고싶다.

public class Test {  // << 얘의 풀패키지명은  : animal.test.Test


public static void main(String[] args) {

// TODO Auto-generated method stub

//다른 클래스를 사용하고자 할때 그아이가 같은 패키지 있으면 괜찮다.

//다른 패키지에 있으면  풀패키지명으로 클래스를 사용하든가

//패키지안의 전체 클래스를 import하든가

//특정 클래스를 풀패키지명으로 import 하든가.

//풀패키지명 : 최상위 패키지로부터 클래스명까지 모두 적은 이름.

             //Animal클래스를 사용하고 싶다.

//우리가 쓰려는 Animal클래스의 풀패키지명은 animal.Animal

//방법 1. 항상 풀패키지명으로 불러줌

// animal.Animal aaa = new Animal() {

//

// @Override

// public void bark() {

// // TODO Auto-generated method stub

// System.out.println("동물이 짖음");

// }

// };

//방법2. 풀패키지명으로 클래스 자체를 import

// Animal aaa = new Animal();

//방법3.

Animal aaa = new Cat();


시스템 클래스


String a = "A" + "B" + "C" + "D";

StringBuffer sb = new StringBuffer();

sb.append("A");

sb.append("B");

sb.append("C");

sb.append("D");

String b = sb.toString();

//문자열 결합연산을 연속적으로 하게 되면 중간중간 결합된 결과물들이 상수메모리에 쌓임(메모리 낭비 극심)

//StringBuffer 를 사용하면 최종 toString이 불릴때 한번에 모두 결합된 결과물이 만들어짐.

* StringBuffer 와 StringBuilder 의 차이점은 버퍼는 멀티스레드 상태에서 동기화를 지원한다.

  빌더는 싱글 스레드 상황이라면 빌더를 이용하면 더빠르게 할 수 있다.

// System.out.println("숫자를 하나 입력하세요 0을 입력하면 종료됨");

// int num = new Scanner(System.in).nextInt();

// if(num == 0)

// System.exit(0);  // 0을 입력하면 이코드를 만나서 바로 뻗음.

// else

// System.out.println(num + "을 입력하셨군요");

// System.out.println(System.currentTimeMillis());

//currentTimeMillis 어떤 코드 범위가 실행되는데 걸린 시간을 테스트.

// long startTime = System.currentTimeMillis();  // 프로그램 실행 하는 순간의 시간(ms)!

//

// System.out.println("HelloWorld");

//

// long endTime = System.currentTimeMillis();

//

// long gop = endTime - startTime;

//

// System.out.println(gop + "ms 소요됨");


*Wrapper 클래스

-기초 자료형을 객체로 포장시켜주는 클래스.

기초 자료형 → 문자형

String s1 = integer.toString(10);     // 기초 자료형 정수타입 10을 문자열로 바꿔줌.

문자열 → 기초 자료형  ex)

Scanner scan = new Scanner(System.in);

System.out.println("숫자 입력하세요.");

String num1 = scan.nextLine();          // 입력 받은 숫자는 문자열

System.out.println("숫자 입력하세여");

String num2 = scan.nextLine();          //입력 받은 숫자는 문자열

int result = Integer.parseInt(num1) + Integer.parseInt(num2);  // 여기서 문자열을 기초 자료형으로 바꿔주고 계산 해줌.

System.out.println(result);


주석  :  // 한줄 주석  /*~~~*/ 문단주석

         /**~~*/ javadoc 생성해주는 주석.

ex)

/**

 * 

 * 

 * 

 * @author student

 *이프로그렘은 동물들의 공통된 상태로서 이름과

 *동물들의 공통된 기능으로서의 짖음 기능인 bark()메소드를 가지고 있는 클래스.

 */

public abstract class Animal {

protected String name;

- 메소드에도 주석을 달고 javadoc 을 생성할 수 있다.


*Date 클래스

            long current = System.currentTimeMillis();   // 실행 동시에 현재 시스템에서 현재 시간(ms).

// Date date = new Date(current);

// System.out.println(date);

//

// long timeMillis = date.getTime();

// System.out.println(timeMillis);

//

//

// //날짜데이터 객체에 대해서 자주 해야되는 변환

// //Date객체 ↔ timeMillis

// //Date객체 ↔ formatted Date


// long current = System.currentTimeMillis();

// Date date = new Date(current);

// System.out.println(date);

//

// long timeMillis = date.getTime();

// System.out.println(timeMillis);

//           SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");

// Date date1 = sdf.parse("20150923033320");

// System.out.println(date1);

//

// System.out.println(sdf.format(date));

// //y : 연도  M : 월  d: 일  h: 시(12시간제) H : 시(24시간) m : 분  s: 초


*StringTokenizer 클래스

-문자열을 분리하여서 토큰으로 분리시켜 주는 기능을 제공.

ex)

StringTokenizer st = new StringTokenizer("Will Java change my lif");

while (st.hasMoreTokens()){

System.out.println(st.nextToken());

}   →→ 결과값은 will

                        Java

                        change

                        my

                        life