#명품 자바 프로그래밍 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) + " ");
}
}
#캘린더는 생략!!!
'JAVA > 명품 자바 프로그래밍' 카테고리의 다른 글
자바 기초 문법 정리- 8장 입출력 스트림과 파일 입출력 (0) | 2021.10.17 |
---|---|
자바 기초 문법 정리- 7장 제네릭 (0) | 2021.10.16 |
자바 기초 문법 정리- 4~5장 클래스~상속 (0) | 2021.09.30 |
[3장] 도전 문제 (0) | 2021.04.15 |
[교수님 퀴즈] 자바 2-3장 (0) | 2021.04.09 |