카테고리 없음

20240821 7일차

happyst 2024. 8. 21. 17:28

[IntelliJ 단축키]
- 껍데기만 선언한 함수 이름 클릭 후 Alt + Enter: 아직 구현안한 함수를 만들어줌
- 블록 선택하고 Ctrl + Alt + T: 해당 블록을 surround with 할 수 있는 옵션 표시 (ex. while loop, try-catch, ...)
- Ctrl + O: override 단축키



[가변 개수 인수]
- 메서드에 데이터 타입이 같은 가변 개수의 인수를 전달 가능
- 사용법: 데이터타입 ... 변수
- 예시: int... v
- 1개의 가변 개수 매개변수만 사용 가능
- 가변 개수 매개변수는 마지막에 위치
- 가변 개수 인수를 가진 메서드를 호출하면 내부적으로 배열을 생성하여 처리

[열거 타입 (enum)]
- 관련된 상수들을 같이 묶어 놓은 것
- Java는 타입에 안전한 열거형을 제공함

[난수 생성]
- [min, max] 사이의 정수 타입 난수 생성
: int random = (int)(Math.random() * (max - min + 1) + min)




[상속]
- 자식 클래스는 부모 클래스에서 물려받은 멤버를 그대로 사용하거나/변경하거나/ 새로운 멤버도 추가할 수 있다
- Java는 다중 상속을 허용하지 않는다
- final 클래스, final 메서드는 오버라이딩할 수 없음



[패키지]
- 클래스 파일을 묶어서 관리하기 위한 수단
- 패키지마다 별도의 namespace가 생기기 때문에 클래스 이름의 유일성을 보장
- 클래스를 패키지 단위로 제어하여 세밀한 접근 제어가 가능



[접근 지정자]
- public > protected > default > private
- private 멤버는 자식 클래스에 상속되지 않음
- 클래스 멤버는 4가지 접근 지정자 가능
- 클래스는 2가지 접근 지정자 (public, default) 가능
- 메서드 오버라이딩 시, 부모 클래스의 메서드보다 가시성을 더 좁게 할 수는 없음

[자식 클래스와 부모 생성자]
- 자식 생성자를 호출하면 부모 생성자도 자동으로 호출됨
- 자식 생성자는 첫 행에 명시적 부모 생성자 호출 코드가 있음 (없다면 컴파일러가 super(); 코드를 추가함)
 



[다형성]
- 객체의 타입 변환
  * 참조 타입 데이터도 타입 변환 가능
  * 상속 관계일 경우에만! 타입 변환 가능
  * 자동 타입 변환/강제 타입 변환

- 자동 타입 변환 (Upcasting)
  * 자식 타입을 부모 타입으로 형 변환 (생략 가능)
  * Parent <--- Child 상속관계

- 강제 타입 변환 (Downcasting)
  * Upcasting의 반대가 아니라! upcasting 되었던 객체의 자료형을 다시 자식 클래스의 정보를 담는 기능을 하도록 되돌려 놓는것

숙제!! SOLID 조사해서 내일 발표