TIL 2023-10-16 문자열 겹쳐쓰기, 객체지향 4가지 특징

2023. 10. 16. 22:40TIL
목차
  1. 객체지향 너 왜 이렇게 어렵냐
  2. 객체지향의 특징

코딩 기초 트레이닝 Day 2

오늘은 문자열 겹쳐쓰기가 어려웠다.

 

이건데.. 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
  1. 객체지향 너 왜 이렇게 어렵냐
  2. 객체지향의 특징
'TIL' 카테고리의 다른 글
  • TIL 2023-10-18 프로그래머스 조건 문자열, 키오스크 개인 프로젝트 설계 및 구현 시작
  • TIL 2023-10-17 매개변수, 인자, 가변길이란 무엇인가
  • TIL 2023-10-13 일기, 배열.length, Collection Map, 대소문자 바꿔서 출력하기
  • TIL 2023-10-12 Java if문으로 가위바위보 만들기 응용
wonow_
wonow_
꾸준히 성장하는 개발자 WONOW 입니다. 🤗
wonow_
wonow_
wonow_
전체
오늘
어제
  • 분류 전체보기
    • Language
      • JAVA
    • TIL
    • 코딩테스트
      • 프로그래머스
      • 백준
    • 프로젝트
      • JAVA
      • Spring
    • 기타
    • ERROR
      • Spring
    • CS
      • 알고리즘
      • DB
      • Kafka
    • 잡담
    • 활동
      • 척척박사

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 티스토리챌린지
  • 나는바봉가봉가
  • 티스토리 꾸미기
  • 오블완
  • 프로그래머스
  • 문자열 붙여서 출력하기
  • 공부열심히하자
  • 홀짝 구분하기
  • 문자열 돌리기

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
wonow_
TIL 2023-10-16 문자열 겹쳐쓰기, 객체지향 4가지 특징
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.