오늘은 문자열 겹쳐쓰기가 어려웠다.
이건데.. substring을 이용해서 풀어보기로 했다.
문제의 내용 요약은
my_string 에 s 인덱스 부터 overwrite_string으로 바꾸고 나며지 my_string를 출력하면 된다.
저 s 인덱스를 어떻게 활용할지가 최대 관건이었다
substring에 s를 활용해서 답을 적었다.
// substring(n,n)
// // 덮어쓴 곳 끝 부터 원래 문자 끝까지
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
String n1 = my_string.substring(0,s);
String n2 = my_string.substring((s+overwrite_string.length()),my_string.length());
String answer = n1+overwrite_string+n2;
return answer;
}
}
n1에 my_string 0 인덱스 부터 s인덱스 까지 나오게 하는 substring
overwrite 출력
n2에 my_string ((s인덱스 + overwrite 길이),my_string.lenght()) 한 후
세 개를 차례대로 answer에 넣어줬다.
오늘의 관건이다. 객체지향..
객체지향 너 왜 이렇게 어렵냐
Java는 객체지향 언어이다.
객체지향은 실제하는 사물들을 만들 수 있게끔
사물을 속성과 행위로 나누어 설계할 수 있다.
자동차로 예를 들면..
속성
색상, 바퀴, 문, 가격, 자동차회사...
행위
페달 작동, 경적 작동, 버튼 작동...
등이 될 수 있다.
객체지향의 특징
캡슐화, 상속, 다형성, 추상화
캡슐화
- 필드(속성) 메서드(행위)를 하나로 모아 객체로 만든 후 실제 내부 구현 내용을 외부에서는 알 수 없다는 특징이 있다.
- 외부 객체에서는 캡슐화된 객체의 내부 구조를 알 수 없기에 노출시켜 준 필드 혹은 메서드를 통해서만 접근이 가능하다.
- 필드와 메서드를 숨기는 이유는 필드와 메서드를 잘못 사용하여 객체가 변하지 않기 위함이다.
- Java에서는 필드와 메서드를 노출시킬지 감출지를 접근 제어자를 통해 제어한다.
상속
- 객체지향에는 부모객체와 자식객체가 존재한다.
- 부모객체는 자식객체에게 자신의 필드와 메서드를 상속(자식 객체는 부모와 같거나 더 커진다.)할 수 있다.
- 이로 인해 얻는 이점은 1. 코드의 재사용성이 크게 증가한다. 2. 구조 파악이 쉬워진다. 3. 일관성을 유지하기가 좋다.
다형성
- 객체가 연산을 수행할 때 하나의 행위에 대해 각 객체가 가진 고유한 특성에 따라 다른 형태로 재구성하는 걸 의미한다.
- 상속을 하고 입맛에 따라 메서드를 바꿀 수 있다.
추상화
- 객체에서 공통된 부분을 모아 상위 개념으로 새롭게 선언하는 것을 추상화라고 한다.
- 공통적이고 중요한 것을 모아 객체를 모델링한다.
- override가 필수다.
이게 객체지향의 핵심이자 거의 전부인데
사실 오늘은 이해만하고 넘어가려고 해서 정확히 이해가 되지는 않는다.
객체라는 건 정말 재밌지만... 그치만... 너무... 어렵다...
우선 쓰는 거부터가 익숙치 않다.
포함관계, final...
용도가 대충은 이해되는데 구체화가 안되는 이 답답함
솔직히 강의만 들어서 100% 이해 되지도 않고, 자바의 정석 필수인 챕터인 거 같다.
내일 빠르게 강의 다 듣고 자바의 정석으로 공부해야겠다. 진심...
'TIL' 카테고리의 다른 글
TIL 2023-10-18 프로그래머스 조건 문자열, 키오스크 개인 프로젝트 설계 및 구현 시작 (0) | 2023.10.18 |
---|---|
TIL 2023-10-17 매개변수, 인자, 가변길이란 무엇인가 (0) | 2023.10.17 |
TIL 2023-10-13 일기, 배열.length, Collection Map, 대소문자 바꿔서 출력하기 (0) | 2023.10.13 |
TIL 2023-10-12 Java if문으로 가위바위보 만들기 응용 (0) | 2023.10.12 |
TIL 2023-10-11 팀 발표 하고, 보면서 배운 것 (0) | 2023.10.11 |