본문 바로가기

T.I.L

TIL 2018-12-13

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