본문 바로가기
2022-2/자바

Object, String, StringBuffer

by 철없는민물장어 2022. 10. 21.
728x90
반응형
Object클래스

java.lang 패키지에 포함되어 있다.

모든 클래스의 수퍼 클래스이다.

-모든 클래스에 강제 상속

-모든 객체가 공통으로 가지는 객체의 속성을 나타내는 메소드 보유

 

Object클래스의 주요 메소드

boolean equals(Object obj) : obj가 가리키는 객체와 현재 객체를 비교하여 같으면 true 리턴

Class getClass() : 현 객체의 런타임 클래스 리턴

String toString() : 현 객체에 대한 문자열 표현을 리턴

 

toString()

Point p = new Point(2,3);
System.out.println(p);

Point 클래스의 객체 p가 있고, p를 출력하게 되면

p는 자동으로 p.toString()으로 변환되어 출력된다.

 

toString()메소드를 오버라이딩(상속받은 클래스에서 메소드를 재정의 하는것)하여 활용할 수 있다.

class Point{
	private int x,y;
    public Point(int x,int y){
    	this.x = x;
        this.y = y;
        }
    public String toString(){//toString() 오버라이딩
    	return "Point("+x+","+y+")";
        }
}

 

equals()

같은 객체를 가리킬 때만 true이다.

가령, 모든 멤버변수의 값이 동일한 객체1과 객체2가 있다고 하자

객체1.equals(객체2) 의 값은 false이다. 가리키는 객체가 서로 다르기 때문에.

 

만약 Point클래스에서 x,y좌표가 서로 같을 때 같은 객체라고 보고싶다면

equals()메소드를 오버라이딩 해서 사용하면 된다.

 

class Point{
	private int x,y;
    public Point(int x,int y){
    	this.x = x;
        this.y = y;
        }
    public String toString(){//toString() 오버라이딩
    	return "Point("+x+","+y+")";
        }
    boolean equals(Object obj){//equals() 오버라이딩
    	Point p = (Point)obj;
        if(x==p.x && y==p.y) return true;
        else return false;
        }
}

String

스트링 객체는 수정 불가능하다.

String s = new String("Hello");
String t = s.concat("Java");

이 코드에서 String t는 String s에 "Java"를 덧붙였다.

하지만 스트링 s는 변하지 않고 "Hello"그대로이며,

"HelloJava"를 갖는 스트링t가 새로 생기게 된다.

 

String class 주요 메소드

int length()

String toLowerCase()

String toUpperCase()

int compareTo(String anotherString) : 문자열이 같으면 0 리턴

 


StringBuffer

가변 크기의 문자열 저장 클래스이다.

String클래스와 달리 문자열 변경이 가능하다.

StringBuffer sb = new StringBuffer("java");

주요 메소드

StringBuffer append(String str)

int capacity() : 스트링 버퍼의 현재 크기 리턴

StringBuffer delete(int start, int end) : start위치에서 end위치 앞까지 부분 문자열 삭제

StringBuffer insert(int offset,String str): str스트링을 스트링 버퍼의 offset위치에 삽입

 

 

StringTokenizer
String query = "name=kitae&addr=seoul&age=21";
StringTokenizer st = new StringTokenizer(query, "&");

query 문자열을 "&"로 분리하겠다는 뜻

 

주요 메소드

boolean hasMoreTokens() :다음 토큰이 있으면 true

String nextToken(): 다음 토큰 리턴

 

import java.util.StringTokenizer;

public class StringTokenizerEx{
	public static void main(String args[]){
    	StringTokenizer st = new StringTokenizer("홍길동/감자/랄랄/킥킥","/");
        while (st.hasMoreTokens())
        	System.out.println(st.nextToken());
        }
}
728x90
반응형

'2022-2 > 자바' 카테고리의 다른 글

상속,오버라이딩,super(),final,abstract  (0) 2022.11.01
자바 중간고사  (0) 2022.10.26
Exception  (0) 2022.10.20
3. 객체지향  (0) 2022.10.20
오버로딩  (0) 2022.10.20

댓글