1. Goods예제 복습
2. Student 예제 만들기
활용 개념
Object 클래스의 메소드 equals(), hashCode(), toString() 오버라이딩
Collections.sort
Comparable+Comparator
삼항연산자
참조 개념
형변환
3. 새로운 예제 만들기
활용 개념 + Scanner 활용 복습
4. IntelliJ 단축키
단축키
Ctrl + Alt + L : 파일 단위 재정렬
Ctrl + X : 잘라내기 (블럭 선택이 안되어 있으면 라인을 잘라냄)
Ctrl + C : 복사하기(블럭 선택이 안되어 있으면 라인을 복사함)
Shift + Enter : 커서가 어디에 있건 다음 라인을 생성하고 첫줄로 이동
Shift + F10 : Run
Ctrl + Shift + 위,아래 방향키 : 구문 이동
Ctrl + 좌,우 방향키 :단어단위 이동
Fn + 좌,우 방향키: 문장 시작, 끝으로 이동
Ctrl + Shift + F10 : run
Ctrl + J : 자동완성 템플릿
자동완성 키워드
sout : System.out.println자동완성
psvm : public static void main(String args[]) 자동완성
fori: for문 생성
Object 클래스가 갖고 있는 오버라이딩을 위한 메소드
- 메소드 오버라이딩하면 자식의 메소드가 호출된다.
1) equals()
2) hashCode()
3) toString()
1. equals()
자바에서의 "같다"
1) 참조가 같다 (==, !=)
(자바에서는 주소라는 개념을 쓰지 않는다.
2) 값이 같다.
- 기본형은 논리 연산자로 계산(==, != )
- 참조형은 equals() 메소드 활용
equals()
- 인스턴스가 가지는 필드 중 어떤 것을 기준으로 비교할지 기준 설정이 필요
- equals()를 오버라이딩한다는 것은 데이터를 표현하는 인스턴스라는 의미
- equals() 오버라이딩
1) 같은 것을 참조하는지 확인(return true)
2) 비교 대상이 null인지 확인 (return false)
3) getClass() 메서드를 활용해서 클래스 정보가 다른지 확인 (return false)
4) 개별 필드를 비교
getClass(): 현재 클래스 정보를 리턴(클래스 정보는 메모리에 한번만 올라간다.
hashCode()
- equals()를 오버라이딩 할때 같이 오버라이딩하는 경우가 많다.
- 효율을 위해 hashCode()를 갖는 것이 좋다.
- 리턴타입: int
- 인스턴스마다 다른 값을 갖는 것이 좋지만, int가 한정적이므로 중복값이 나올 수 있다.
hash 알고리즘에서 equals(), hashCode()를 함께 사용한다.
- 유일한 값을 이용할 때 hash 알고리즘 사용
-> set, map 처럼 중복을 허용하지 않는 자료구조
(set, map은 인터페이스로 인스턴스를 생성할 수 없기 때문에 hashSet, hashMap 같은 클래스를 사용한다.)
- 자료구조에 데이터를 저장할 때, hashCode()를 구해서 자료구조 내에 버켓을 생성.
버켓 내에 동일한 데이터가 있는지 equals() 메소드를 사용해서 확인.
동일한 데이터가 없으면 데이터 저장
toString()
- 가지고 있는 값을 문자열로 리턴
- 어떤 값을 리턴할 것인지 기준 설정 필요
this
- 자신 인스턴스를 가르키는 것
- 인스턴스가 만들어져야 사용할 수 있다.
- 인스턴스 생성없이 사용하는 static 메소드 내에서는 사용할 수 없다.
@Override
- 정확하게 오버라이딩했는지 확인하는 어노테이션
'T.I.L' 카테고리의 다른 글
T.I.L 2023-08-30 WED (1) | 2023.08.30 |
---|---|
TIL 2023-08-27 (0) | 2023.08.27 |
TIL 2023-08-25 (0) | 2023.08.25 |
TIL 2023-08-24 (0) | 2023.08.24 |
TIL 2018-12-12 (0) | 2018.12.12 |