앞에서 equals 메소드의 오버라이딩으로 비교와 검색을 할 수 있음을 보았다. 그런데 두 객체에 대한 비교가 같다/같지않다로 할 수도 있지만 정렬을 하고 싶다면 크다, 같다, 작다의 세 가지 경우를 구분할 수 있어야 한다. C의 strcmp가 이러한 비교 함수의 원조다. strcmp는 두 char* 포인터를 받아서 앞의 것이 작으면 -1, 같으면 0, 크면 1을 돌려준다. 반환형은 int다. 자바에서 이런 비교를 해주는 메소드가 compareTo다. compareTo는 많은 라이브러리 클래스에 이미 구현되어 있는데, 대표적인 예로 역시 String 클래스를 살펴보자. String str1 = scan.next(); String max = str1; while (scan.hasNext()) { str1 ..
자바에서 클래스 객체를 사용하면서 접하게 되는 메소드로 toString이 있다. 이것도 앞에서 살펴본 equals 처럼 Object 클래스에 정의되어있는 것을 오버라이드하는 메소드다. toString()의 역할을 이해하기 위해서는 먼저 자바에서 변수나 값의 타입변환 규칙을 살펴보아야 한다. 프로그램은 데이터를 읽어서 그것을 int, float, String 등의 타입으로 메모리에 저장한다. 그런데 프로그램에서 +나 == 같은 연산을 수행할 때는 두 피연산자를 같은 타입으로 만들어서 계산해야 한다. 다음 예는 이러한 타입변환이 자동으로 일어나는 예를 보여준다. int n = 10; double a = n; // n을 double으로 변환하여 a에 지정 long b = n; // n을 long으로 변환하여 ..
자바를 처음 배울 때 어려운 개념 중 하나가 변수의 참조다. 참조는 어떤 객체를 가리키는 값인데 C의 포인터와는 좀 다르지만 비슷하게 이해할 수 있다. 객체를 가지고 프로그램을 만들어야 하는 것이 자바이므로 참조는 자바에서는 가장 근본이 되는 개념이다.이것은 프로그래밍 언어의 개념에서 값과 참조의 구분에 해당한다. 자바 언어에서 변수는 기본 타입(int, short, long, byte, float, double, char, boolean 8개)은 값 변수, 객체 타입(또는 복합타입이라고도 함)은 참조 변수다. 값 변수는 자체로 메모리와 값을 가진다. 참조 변수는 어딘가에 저장되어 있는 객체를 가리킨다(참조만 가짐). 참조 변수는 일반적으로 선언할 때 null로 초기화하고 필요할 때 new Student..
- Total
- Today
- Yesterday
- 스트링
- indexof
- python example
- rust
- TypeError
- contains
- Camel Style
- Lazy evaluation
- typedef
- format
- python exercise
- Iterator
- follow
- max
- contentEquals
- 자바regex
- C++ 클래스
- CompareTo
- zip
- 지연계산
- 이터레이터
- APPEND
- sort key
- 이터러블
- 동적바인딩
- comparable
- 스트링 +
- 콜렉션
- 패턴
- ToString
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |