728x90
반응형
목차
1. java.lang.Object 클래스
2. java.lang.String 클래스
3. java.lang.StringBuffer
4. java.lang.StringBuilder 클래스
5. java.lang.Math 클래스
6. wrapper 클래스
7. java.util.Random 클래스
1. java.lang.Object 클래스
- 자바의 주요 패키지
패키지명 | 설명 |
java.lang | 일반적으로 많이 사용하는 클래스들이 여기에 포함 Object, Math, String, StringBuffer, StringBuilder, System, Thread, wrapper 클래스들(Boolean, Byte, Charater, Double,Float, Integer, Long, Short) |
java.util | 유틸리티 클래스들이 여기에 포함. 특히, Collections Framwork라고 하는 자바의 자료구조 클래스들이 포함되어 있다. |
java.io | 자바 입출력 관력 클래스들이 포함되어 있는 패키지 |
클래스명 | 설명 |
Object | 자바의 최상위 클래스 |
String, StringBuffer, StringBuilder | 문자열 클래스 |
Math | 수학 클래스 |
Boolean, Byte, Character, Double, Float, Integer, Long, Short |
wrapper 클래스(자바의 기본 자료행에 대응되는 클래스) |
class | 클래스 자체 정보를 갖는 클래스 |
Thread | 동시에 여러일을 처리하도록 하는 기능 |
- Object 클래스의 메소드
메소드 | 설명 |
protected Object clone() | 객체를 복사하여 반환함. |
public boolean equals(Object obj) | obj 객체와 같은지 비교함. |
public final Class<?> getClass() | 클래스 정보를 반환함. |
public int hashCode() | 객체의 해시값을 반환함. |
public final void notify() public final void notifyAll() |
스레드와 연관되는 메소드. |
public String toString() | 객체의 스트링 표현을 반환함. |
public final void wait() public final void wait(long timeout) public final void wait(long timeout, int nanos) |
스레드와 연관되는 메소드. |
- equals() 메소드
- Object 클래스에 equals 메소드는 '==' 기호와 같다. 즉, 인스턴스 참조값을 의미.
- equals 메소드가 인스턴스 자체가 같은지 비교하도록 하려면 오버라이딩해서 사용해야 한다.
//비교 부분만 작성
public class code177 {
public static void main(String[] args) {
Things th1 = new Thing("desk" ,5);
Things th2 = new Thing("desk" ,5);
if(th1.equals(th2)) System.out.println("Same Thing");
else System.out.println("Different Thing");
}
}
----------------------------------------------------
결과
Same Thing
- toString() 메소드
- 인스턴스의 참조값을 반환한다.
- 인스턴스를 문자열로 바꾸어줄 수 있다.
package code178;
class Thing {
private String name;
private int price;
Thing(String name, int price) {
this.name = name;
this.price = price;
}
void show() {
System.out.println("name: " + name + ",price: " + price);
}
}
public class code178 {
public static void main(String[] args) {
Thing t = new Thing("book", 20000);
String s = t.toString();
System.out.println(s);
System.out.println(t);
t.show();
}
}
---------------------------------------------------------------------
결과
code178.Thing@16f65612
code178.Thing@16f65612
name : book, price : 20000
2. java.lang.String
- String 인스턴스 생성
- 다른 인스턴스 생성과 마찬가지로 new 키워드 이용
- 간단하게 큰따옴표만 생성
String s1 = new String("Hello world");
String s2 = new String("Hello world");
if(s1 == s2) System.out.println("s1 == s2");
else System.out.println("s1 != s2");
String s3 = "Java Programming";
String s4 = "Java Programming";
if(s3 == s4) System.out.println("s3 == S4");
else System.out.println("s3 != s4");
-------------------------------------------
결과
s1 != s2
s3 == s4
- String 클래스에 적용할 수 있는 메소드
메소드 | 설명 |
char charAt(int index) | 명시된 인덱스에 해당하는 문자를 반환 |
int compareTo(String anotherString) | 두 문자열을 사전식으로 비교 |
String concat(String str) | 문자열 뒤에 str을 연결 |
boolean contains(CharSequence s) | 문자열에 s가 포함되어 있다면 true를 반환, 아니면 false 반환 |
boolean equals(Object anObject) | 문자열과 anObject가 가타은 문자열인지 판단하여 true 또는 false |
int indexOf(int ch) | 문자 ch가 있다면 그 위치 인덱스를 반환. ch가 여러개 있다면 가장 앞에 있는 인덱스를 반환 |
int lastindexOf(int ch) | 문자 ch가 있는 가장 마지막 인덱스를 반환 |
int length() | 문자열 길이를 반환 |
String replace(char oldCh, char newCh) | 문자 oldCh를 newCh로 변환하고 새로 변환된 문자열을 반환 |
String toString() | Object 클래스의 toString() 메소드를 오버라이딩한 것으로 문자열 자체를 반환 |
3. java.lang.StringBuffer
- StringBuffer 인스턴스 생성
생성자 | 설명 |
StringBuffer() | 크기 16인 빈 문자열이 생성됨. |
StringBuffer(int capacity) | capacity 값을 주면 그 크기로 빈 문자열이 생성됨. |
StringBuffer(String str) | 문자열 str로 초기화하는 인스턴스가 생성 |
StringBuffer sb1 = new StringBuffer("Hello");
StringBuffer sb2 = new StringBuffer();
sb2.append("World"); //빈 StringBuffer 객체에 "World" 문자열을 붙인다.
StringBuffer sb3 = new StringBuffer(20);
sb3.append("Java Programming is created by James Gosling");
System.out.println(sb1);
System.out.println(sb2);
System.out.println(sb3);
System.out.println(sb1.capacity());
System.out.println(sb2.capacity());
System.out.println(sb3.capacity());
--------------------------------------------------------------
결과
Hello
World
Java Programming is created by James Gosling
21
16
44
- StringBuffer 메소드를
메소드 | 설명 |
StringBuffer append(boolean b) | 인수로 넣는 자료형 데이터를 StringBuffer 하고 결과StringBuffer를 반환함. |
StringBuffer append(char c) | |
StringBuffer append(double d) | |
StringBuffer append(float f) | |
StringBuffer append(int i) | |
StringBuffer append(long Ing) | |
StringBuffer append(String str) | 문자열 s를 추가한 StringBuffer를 반환함. |
StringBuffer append(StringBuffer sb) | StringBuffer sb를 추가한 StringBuffer를 반환함. |
int capacity() | 현재 StringBuffer의 저장 크기를 반환함. |
char charAt(int index) | index에 위치한 문자 한 개를 반환함. |
int compareTo(StringBuffer another) | StringBuffer another와 사전순으로 비교한 결과 반환함. |
StringBuffer delete(int start, int end) | start 인덱스에서 end 인덱스 사이의 문자들을 삭제함. |
StringBuffer deleteCharAt(int index) | index 위치에 있는 문자 한개를 삭제한 후에 StringBuffer를 반환 |
int indexOf(String str) | str이 최초로 나오는 위치 인덱스를 반환함. |
StringBuffer insert(int offset, char c) | offset 위치에 문자 c를 삽입하고 StringBuffer 인스턴스를 반환함. |
StringBuffer insert(int offset, String str) | offset 위치에 문자열 str을 삽입하고 StringBuffer 인스턴스를 반환함. |
StringBuffer replace(int start, int end, String str) | 인덱스 start에서 end 부분을 str로 대체한 StringBuffer 인스턴스 반환함. |
StringBuffer reverse() | index 위치에 문자를 ch로 바꿈. |
String substring(int start) | start 인덱스에서 시작하는 부문 문자열을 반환함. |
void trimToSize() | 문자들이 이용하는 크기로 용량을 잘자냄. |
- String 인스턴스는 변경 불가능해 수정 시 새로운 인스턴스를 구성해야 하지만, StringBuffer는 변경이 가능해 계속 변경이 가능.
4. java.lang.StringBuilder
- StringBuilder 클래스는 multable 한 문자열 클래스는 점에서 StringBuffer클래스와 많이 유사하다.
- 둘의 차이는 StringBuffer 인스턴스는 스레드에서 이용 가능하고 StringBuilder는 스레드에서 이용할 수 없다.
- ex)
StringBuilder sbd1 = new StringBuilder("Hello World");
StringBuilder sbd2 = new StringBuilder();
StringBuilder sbd3 = new StringBuilder(20);
sbd3.append("Java Programming is created by James Gosling");
System.out.println(sbd1);
System.out.println(sbd2);
System.out.println(sbd3);
System.out.println(sbd1.length() + ", " + sbd1.capacity());
System.out.println(sbd2.length() + ", " + sbd2.capacity());
System.out.println(sbd3.length() + ", " + sbd3.capacity());
--------------------------------------------------------
결과
Hello
World
Java Programming is created by James Gosling
5, 21
5, 16
44, 44
5. java.lang.Math 클래스
- 수학 관련 클래스로 아주 사용 빈도가 높은 클래스이며, 생성자가 없고 두 개의 상수와 메소드들로 이루어져 있다.
- 필드
필드 | 설명 |
static double E | 자연 로그 e값 |
static double PI | 원주율 PI 값 |
- 메소드
메소드 | 설명 |
static double.abs(double a) | a의 절대값을 계산 |
static double ceil(double a) | a 이상의 수 중에서 가장 작은 정수를 반환함. |
static double floor(double a) | a 이하의 수 중에서 가장 큰 정수를 반환함. |
static double max(double a, double b) | a와 b 중에서 큰 값을 반환함. |
static double min(double a, double b) | a와 b중에서 작은 값을 반환함. |
static double pow(double a, double b) | a^b을 반환함. |
static long roung(double a) | a를 반올림한 값을 반환함. |
static double sqrt(double a) | a의 루트 값을 반환함. |
6. wrapper 클래스
- 자바의 기본 자료형(boolean, char, byte, short, int, long, float, double)을 인스턴스로 변환하여 사용할 경우 사용
- Number 클래스: 6개의 숫자 관련 클래스의 상위 클래스
메소드 | 설명 |
byte byteValue() | byte 값으로 반환함. |
abstract double doubleValue() | double 값을 반환함. |
abstract float floatValue() | float 값을 반환함. |
abstract int intValue() | int 값을 반환함. |
abstract long longValue() | long 값을 반환함. |
short shortValue() | short 값을 반환함. |
- Byte / Short / Interger / Long 클래스 : 정수형 데이터를 인스턴스화할 수 있도록 한다.
필드(Integer 클래스) | 설명 |
static int MAX_VALUE | 가장 큰 정수 값을 갖고 있음. |
static int MIN_VALUE | 가장 작은 정수 값을 갖고 있음. |
메소드 | 설명 | |
Byte | byte byteValue() | Byte 인스턴스를 byte로 변환해 반환. |
static byte parseByte(String s) | 문자열 s를 byte로 변환해 반환. | |
static Byte valueOf(byte b) | byte 값을 Byte 인스턴스로 변환해 반환. | |
static Byte valueOf(String s) | 문자열 s를 Byte 인스턴스로 변환해 반환. | |
Short | short shortValue() | Short 인스턴스를 short로 변환해 반환. |
static short parseShort(String s) | 문자열 s를 short로 변환해 반환. | |
static Short valueOf(short s) | short 값을 Short 인스턴스로 변환해 반환. | |
static Short valueOf(String s) | 문자열 s를 Short 인스턴스로 변환해 반환. | |
Long | long longValue() | Long 인스턴슬를 long으로 변환해 반환. |
static long parseLong(String s) | 문자열 s를 long으로 변환하여 반환. | |
static Long valueOf(long I) | long 값을 Long 인스턴스로 변환해 반환. | |
static Long valueOf(String s) | 문자열 s를 Long 인스턴스로 변환해 반환. |
- auto-boxing(오토박싱) / auto-unboxing(오토언박싱)
- boxing은 기본 데이터를 인스턴스로 변환하는 것을 의미.
- unboxing은 반대로 인스턴스로 된 데이터를 기본 데이터형으로 변환하는 것을 의미.
Integer x = new Integer(100); //boxing(객체 <- 기본 자료형의 데이터)
int y = x.intValue(); //unboxing(기본 자료형의 데이터 <- 객체)
----------------------------
Integer x = 100; //auto-boxing(100이 자동으로 인스턴스 x로 변환)
----------------------------
Integer x = new Integer(100);
int y = x; //auto-unboxing(인스턴스 x가 자동으로 기본 자료형 100으로 변환)
7. java.util.Random 클래스
- java.util 패키지에 있는 Random 클래스는 임의의 수를 생성할 때 유용하다.
- 생성자
생성자 | 설명 |
Random() | 임의의 값을 생성할 수 있는 인스턴스 생성함. (random number generator라고 함) |
Random(long seed) | seed 값으로 임의의 값을 생성할 수 있는 인스턴스를 생성함. |
- 메소드
메소드 | 설명 |
int nexInt() | 다음의 임의의 정수를 생성함. |
int nextInt(int bound) | bound 내의 다음의 임의의 정수를 생성함. |
import java.util.Scanner;
public class code192 {
public static void main(String[] args) {
int computerChoice, guess = 0;
int count = 0;
//컴퓨터가 1~100 사이 정수를 하나 선택하도록 함.
computerChoice = (int) (Math.random() * 100);
System.out.println("1부터 100사이의 하나의 정수를 선택했습니다.");
System.out.println("******* 선택한 수를 맞춰 보세요. *************");
System.out.println("----------------------------------------");
while(computerChoice != guess) {
System.out.println("1과 100사이의 값을 입력하시오.");
count += 1;
Scanner scin = new Scanner(System.in);
guess = scin.nextInt();
if(guess > computerChoice)
System.out.println("더 작은 수를 입력하세요.");
if(guess < computerChoice)
System.out.println("더 큰 수를 입력하세요.");
}
System.out.println("컴퓨터가 선택한 수를 맞췄습니다.");
System.out.println("시도 횟수는 " + count + " 번 입니다.");
}
}
728x90
반응형
'Framwork > Java기초' 카테고리의 다른 글
Chapter 13. 자바 입출력 (57) | 2023.10.19 |
---|---|
Chapter 12. 예외 처리 (20) | 2023.08.15 |
Chapter 10. 추상 클래스와 인터페이스 (16) | 2023.08.12 |
Chapter 9. 패키지와 접근 제어 (7) | 2023.08.06 |
Chapter 8. 상속 (5) | 2023.08.06 |