본문 바로가기
내일배움캠프/내일배움캠프

[내일배움캠프] 2024. 09. 10. TIL

by TIP__ 2024. 9. 10.

안녕하세요.

2024. 09. 10. 화요일 TIL입니다.

오늘은 java 문법 종합 강의 3주차를 다시 한 번 정독을 완료했습니다.

2번째 들어보니 그래도 어느 정도 알아들을 정도는 되는 것 같습니다.

내일부터는 4주차 강의를 들어보려 합니다.

데일리 루틴 코드카타

오늘은 핸드폰 번호 가리기 라는 문제풀이를 했습니다.

https://tip-blog-welcome.tistory.com/entry/%EB%82%B4%EC%9D%BC%EB%B0%B0%EC%9B%80%EC%BA%A0%ED%94%84-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-Daily-Routine-27-%ED%95%B8%EB%93%9C%ED%8F%B0-%EB%B2%88%ED%98%B8-%EA%B0%80%EB%A6%AC%EA%B8%B0

 

[내일배움캠프] 알고리즘 Daily Routine 27. 핸드폰 번호 가리기

안녕하세요. 27회차 과제 "핸드폰 번호 가리기"입니다.문제 설명프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.전화번호가 문자열 phone_nu

tip-blog-welcome.tistory.com

오늘 배운 것

** 다형성
* 자동 타입 변환
부모 타입 변수 = 자식 타입 객체; 는 자동으로 부모 타입으로 변환이 일어남
 -. 자식 객체는 부모 객체의 멤버를 상속받기 때문에 부모와 동일하게 취급될 수 있음

* 강제 타입 변환
자식 타입 변수 = (자식 타입) 부모 타입 객체;
부모 타입 객체는 자식 타입 변수로 자동으로 타입 변환되지 않습니다.
 -. 타입 변환 연산자를 사용하여 강제로 자식 타입으로 변환

* 다형성
여러가지 형태를 가질 수 있는 능력

* instanceof
다형성 기능으로 해당 클래스 객체의 원래 클래스명을 체크하는 명령어
{대상 객체} instance of {클래스 이름} 으로 사용하며 boolean 형식으로 응답값


** 추상 클래스
* 추상 클래스
클래스를 설계도라고 할 때 추상 클래스는 미완성 설계도라고 함
abstract 키워드를 사용 public abstract class 추상클래스명 {}
추상 클래스는 자식 클래스에 상속되어 자식 클래스에 의해서만 완성될 수 있음

* 추상 메서드
추상 메서드는 아직 구현되지 않은 미완성된 메서드
abstract 리턴타입 매서드이름(매개변수, ...);

* 추상 클래스 상속
추상 메서드는 extends 키워드를 사용하여 클래스에서 상속
public class 클래스명 extends 추상클래스명 {
@override
public 리턴타입 메서드 이름(매개변수, ...) {
//실행문
}
}
상속받은 클래스에서 추상 클래스의 추상 메서드는 반드시 오버라이딩 되어야 함


*** 인터페이스
** 인터페이스의 역할
인터페이스는 두 객체를 연결해 주는 다리 역할을 한다

* 인터페이스 선언
interface 키워드를 사용하여 인터페이스를 선언할 수 있습니다.
public interface 인터페이스명 {}

* 인터페이스 구성
인터페이스의 멤버
 -. 모든 맴버 변수는 public static fanal이어야 합니다.
 -. 모든 메서드는 public abstract이어야 합니다.
 -. 생략되는 제어자는 컴파일러가 자동으로 추가해줍니다.

* 인터페이스 구현
인터페이스는 추상 클래스와 마찬가지로 직접 인스턴스를 생성할 수 없기 때문에 클래스에 구현되어 생성
 -. implements 키워드를 사용하여 인터페이스를 구현
public class 클래스명 implemants 인터페이스명 {
@override
public 리턴타입 메서드이름(매개변수, ...) {
//실행문
}
}
인터페이스의 추상 메서드는 구현될 때 반드시 오러바이딩 되어야 함

* 인터페이스 상속
인터페이스 간의 상속이 가능함
인터페이스는 클래스와는 다르게 다중 상속이 가능함


** 디폴트 메서드와 static 메서드
* 디폴트 메서드
디폴트 메서드는 추상 메서드의 기본적인 구현을 제공하는 메서드
메서드 앞에 default 키워드를 붙이며 블럭{}이 존재해야 합니다.

* static 메서드
static의 특성 그대로 인터페이스의 static 메서드 또한 객체 없이 호출이 가능
선언하는 방법과 호출하는 방법은 클래스의 static 메서드와 동일

* 다형성
자동 타입 변환
 -. 인터페이스 변수 = 구현 객체;는 자동으로  타입 변환이 일어남
강제 타입 변환
 -. 구현 객체 타입 변수 = (구현 객체 타입) 인터페이스 변수 ;

내일도 오늘보다는 조금 더 나은 내가 되도록 노력하겠습니다.

댓글