//////
Search

Object 클래스, 스택 by 김지수

태그
2022/09/29 09:36
사람
최종 편집 일시
2022/09/29 09:37

16장. Object 클래스

1. Object 클래스

Object 클래스의 개념

Object 클래스는 java.lang 패키지에 속한다.
모든 클래스의 조상 클래스
컴파일 할 경우에, 자동으로 슈퍼 클래스의 멤버가 들어가 있다.
Object 클래스의 멤버를 모든 클래스가 사용할 수 있다.
모든 클래스에서 상속받아 사용할 공통 기능이 구현되어 있다.

Object 클래스의 주요 메소드

public boolean equals(Object obj) 메소드

obj가 가리키는 객체와 현재 객체를 비교하여 같으면 true 리턴

public final Class getClass() 메소드

현 객체의 런타임 클래스를 리턴

public int hashCode()

현 객체에 대한 해시 코드 값 리턴

public String toString()

현 객체에 대한 문자열 표현 리턴

protected Object clone()

객체 자신의 복사본을 생성하여 반환한다.

protected void finalize()

가비지 콜렉터에 의하여 호출된다.

==연산자

예제1) ==
예제1에서 obj1과 obj2가 같지 않은 이유는 위 그림처럼 서로 가르키고 있는 메모리주소가 같지 않기 때문이다.
예제1처럼 되지 않으려면 Equals()메소드를 사용해야 한다.

Equals(Object obj)메소드

예제) Equals메소드
Object의 equals(Object obj) 메소드는 인자로 건네진 객체 obj와 자기 자신의 내용을 비교하여 두 객체의 내용이 같은지 비교하는 메소드이다.
내용의 동일성은 전적으로 클래스 작성자가 정의할 문제이기 때문에, 클래스를 작성자가 equals() 메소드를 오버라이딩 하는 것이 원칙이다.

toString()메소드

toString(): 객체가 가지고 있는 정보나 값들을 문자열로 만들어 리턴하는 메소드이다.
예제) toString() 메소드
Object의 toString() 메소드는 객체의 클래스 이름 @ 객체의 해시코드 값을 16진수로 변환한 값 형식으로 출력된다.
개발자는 toString()메소드를 오버라이딩하여, 자신만의 문자열을 출력할 수 있다.
예제) toString() 오버라이딩

2. String 클래스

String 클래스 개념

String 클래스는 문자열을 구성하는 문자들을 내부에 저장한다.
String 객체도 문자들의 배열이다.

String 클래스 메서드

String 객체 생성의 2가지 방법

1.
리터럴 : 많이 사용되는 방법
수정할 수 없는 문자열을 직접 String 변수에 초기화하는 것
2.
객체 생성 : 원칙
생성자의 매개변수로 문자열을 전달하면서 객체를 생성
예제) String 객체 생성의 2가지 방법

String 객체 - 문자열 비교하기

== 연산자는 문자열을 비교하는 것이 아닌 주소값을 비교한다.
예제) == 연산자
문자열 비교는 꼭❗️❗️❗️ equals() 메서드 사용하기 (’==’ 사용 )
예제) equals() 메소드

String 객체 - 문자 추출 charAt()

public static void main(String[] args) { String subject = "자바 프로그래밍"; char charValue = subject.charAt(3); System.out.println(charValue); //'프' 출력 }
Java
복사
public static void main(String[] args) { Scanner sc = new Scanner(System.in); char ch = sc.next().charAt(0); System.out.println(ch); //입력한 문자열의 0번 인덱스의 값 출력 }
Java
복사

String 객체 - 문자열 안에서 단어 찾기 indexOf()

public static void main(String[] args) { String str = "the cat is on the table"; int index = str.indexOf("is"); System.out.println(index); //"is"의 시작 위치인 8 출력 }
Java
복사
만약 없는 문자열을 indexOf()에 넣게 되면 -1이 출력된다.

String 객체 - 문자열 길이 length()

public static void main(String[] args) { String str = "the cat is on the table"; System.out.println(str.length()); //빈 공간 포함 23 출력 }
Java
복사
배열 속 문자열의 길이를 합하여 리턴하는 메서드 예제

String 객체 - 공백 잘라내기 trim()

public static void main(String[] args) { String trimStr = " I Love you "; System.out.println(trimStr); System.out.println(trimStr.length()); //앞, 뒤의 빈 공간 포함 12 출력 System.out.println(trimStr.trim()); System.out.println(trimStr.trim().length()); //10 출력 }
Java
복사

String 객체 - 문자열을 단어로 분리 split()

public static void main(String[] args) { String[] tokens = "I am a boy".split(" "); //공백을 기준으로 분리한다. for (String t : tokens) { System.out.println(t); } }
Java
복사
public static void main(String[] args) { String[] tokens = "100, 200, 300".split(", "); //", "을 기준으로 분리한다. for (String t : tokens) { System.out.println(t); } }
Java
복사

String 객체 - 기본 타입값을 문자열로 전환 valueOf()

public static void main(String[] args) { int num = 100; String str = String.valueOf(num); //int 타입 100을 "100"으로 전환 System.out.println(str); str = String.valueOf(10.0); //double 타입 10.0을 "10.0"으로 전환 System.out.println(str); str = String.valueOf(false); //boolean 타입 false 를 "false"로 전환 System.out.println(str); }
Java
복사
cf: int 타입으로 전환

예제

1.
Scanner를 이용하여 한 라인을 읽고, 공백으로 분리된 어절이 몇 개 들어 있는지 "그만"을 입력할 때까지 반복하는 프로그램을 작성하라. [Hint] Scanner.nextLine()을 이용하면 빈칸을 포함하여 한 번에 한 줄을 읽을 수 있다.
>> I love Java. 어절 개수는 3 >> 자바는 객체 지향 언어로서 매우 좋은 언어이다. 어절 개수는 7 >> 그만 종료합니다...
Plain Text
복사
code

Stack

Stack이란?

같은 타입의 자료를 순차적으로 저장하는 직선형 자료 구조
먼저 들어간 자료가 나중에 나오는 LIFO(Last In First Out) 구조

Stack의 사용

음료수 진열대 (먼저 들어간 음료수가 나중에 나옴)
인터넷 브라우저 창 (뒤로 가기, 앞으로 가기 등)

Stack의 구현

isEmpty
스택이 empty 상태인지 확인한다.
push(삽입)
스택의 최상위에 새로운 자료를 삽입한다.
pop(추출)
가장 최상위에 위치한 자료를 추출한 후에 스택에서 제거한다.
peek
가장 최상위에 위치한 자료를 추출한다.
pop 메소드와는 달리 스택에서 제거하지는 않는다.
clear
스택에 존재하는 모든 자료들을 삭제한다.

예시

Stack
결과