본문 바로가기

JAVA/명품 자바 프로그래밍

자바 기초 문법 정리- 6장 모듈과 패키지

728x90

 

#명품 자바 프로그래밍 6장 모듈과 패키지 개념, 자바 기본 패키지

#모든 코드와 사진은 <명품 자바 프로그래밍>

 

 

#자바 모듈과 패키지

 - 모듈 : 서로 관련된 클래스와 인터페이스의 컴파일 된 클래스 파일들을 하나의 디렉터리에 묶어 놓은 것

 - 패키지 : 여러 패키지와 이미지 등의 자원을 모아 놓은 컨테이너

 

 

 


#객체를 문자열로 변환> toString

Point p = new Point(2,3);
System.out.println(p.toString()); 
String s = p.toString() + "점";

 이렇게 하면 출력은 객체를 문자열로 반환한 이상한 값이 나오는데, 그래서 개발자는 toString() 메소드를 오버라이딩하여 작성할 필요가 있다!

 

 

 


# 객체 비교와 equals()

 - == : 레퍼런스 비교

 - equals() : 객체 내용이 같은지 비교

 

 


#Wrapper 클래스> valueOf

 : 기본 타입의 값을 객체로 다룰 수 있게 함.

//기본 타입의 값을 Wrapper 객체 생성
Integer i = Integer.valueOf(10);
Character c = Character.valueOf(‘c’);
Double f = Double.valueOf(3.14);
Boolean b = Boolean.valueOf(true);

//문자열로 Wrapper 객체 생성
Integer I = Integer.valueOf(“10”);
Double d = Double.valueOf(“3.14”);
Boolean b = Boolean.valueOf(“false”);

//float 객체는 double 타입의 값으로 생성 가능
Float f = Float.valueOf((double) 3.14);

 

-Wrapper 클래스 기능

 

 


#박싱과 언박싱

 - 박싱 : 기본 타입의 값을 Wrapper 객체로 변환

 - 언박싱 : Wrapper 객체에 들어 있는 기본 타입의 값을 빼내는 것

 

Integer ten = 10; 	// 자동 박싱. Integer ten = Integer.valueOf(10);로 자동 처리
int n = ten; 	// 자동 언박싱. int n = ten.intValue();로 자동 처리

 

 


#스트링 생성, 스트링 객체

 - 리터럴로 생성 : JVM이 리터럴 관리, 응용 프로그램 내에서 공유

 - String 객체로 생성 : 힙 메모리에 String 객체 생성

  -> 스트링 객체는 수정 불가능, 비교 시 반드시 equals()를 사용

 

 - 문자열 비교 : compareTo()

  출력값
문자열이 같을 때 0
문자열이 파라미터보다 사전에 먼저 나올 때 음수
문자열이 파라미터보다 사전에 나중에 나올 때 양수
String java= "Java";
String cpp = "C++";
int res = java.compareTo(cpp);
if(res == 0)
	System.out.println("the same");
else if(res <0)
	System.out.println(java + " < " + cpp);
else
	System.out.println(java + " > " + cpp);

 

 

 - 문자열 연결 

  (1) + 연산자 : 객체는 toString()을 호출하여 문자열로 변환하여 연결

  (2) concat() : 기존 string 객체에 연결되지 않고 새로운 스트링 객체 리턴

 

public class StringEx {
	public static void main(String[] args) {
		String a = new String(" C#");
		String b = new String(",C++ ");
		
		System.out.println(a + "의 길이는 " + a.length()); // 문자열의 길이(문자 개수)
		System.out.println(a.contains("#")); // 문자열의 포함 관계

		a = a.concat(b); // 문자열 연결
		System.out.println(a);

		a = a.trim(); // 문자열 앞 뒤의 공백 제거
		System.out.println(a);

		a = a.replace("C#","Java"); // 문자열 대치
		System.out.println(a);

		String s[] = a.split(","); // 문자열 분리
		for (int i=0; i<s.length; i++)
			System.out.println("분리된 문자열" + i + ": " + s[i]);

		a = a.substring(5); // 인덱스 5부터 끝까지 서브 스트링 리턴
		System.out.println(a);

		char c = a.charAt(2); // 인덱스 2의 문자 리턴
		System.out.println(c);
	}
}

 

 


#StringBuffer 클래스

 : 가변 크기의 문자열 저장 클래스

 

 - 선언

StringBuffer sb = new StringBuffer("java"); 
StringBuffer sb2 = new StringBuffer(5);   //지정된 초기 크기를 갖는 스트링 버퍼 객체 생성

 

 - 메소드 활용

public class StringBufferEx {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("This");

		sb.append(" is pencil"); // 문자열 덧붙이기
		System.out.println(sb);

		sb.insert(7, " my"); // "my" 문자열 삽입
		System.out.println(sb);

		sb.replace(8, 10, "your"); // "my"를 "your"로 변경
		System.out.println(sb);

		sb.delete(8, 13); // "your " 삭제
		System.out.println(sb);

		sb.setLength(4); // 스트링 버퍼 내 문자열 길이 수정
		System.out.println(sb);
	}
}

 

 


#StringTokenizer 클래스

 : 하나의 문자열을 여러 문자열로 분리

 

 


#Math 클래스 

public class MathEx {
	public static void main(String[] args) {
		System.out.println(Math.PI); // 원주율 상수 출력
		System.out.println(Math.ceil(a)); // ceil(올림)
		System.out.println(Math.floor(a)); // floor(내림)
		System.out.println(Math.sqrt(9)); // 제곱근
		System.out.println(Math.exp(2)); // e의 2승
		System.out.println(Math.round(3.14)); // 반올림

		// [1, 45] 사이의 정수형 난수 5개 발생
		System.out.print("이번주 행운의 번호는 ");
		for(int i=0; i<5; i++)
            //0.0 이상 1.0미만의 임의의 double값을 반환
			System.out.print((int)(Math.random()*45 + 1) + " "); 
		}
}

 

 

 

#캘린더는 생략!!!