오늘 4대 특징에 대해 공부했는데
먼저 추상화
이건 사용자정의타입 클래스 자체를 말하는거같다
내가 어떤 목적성을가지고 타입을 만들어 그것의 특징들을 클래스로 표현했다면 그게 곧 추상화라는 의미인것같다
뭐 컴퓨터란 타입을 만들었으면 그안에 cpu라는 속성도 넣고 하드디스크라는 속성도 넣고 부팅이라는 행위도 넣고 등등등
캡슐화
밖에서 봣을때 굳이 안의 내용을 알필요없이 기능을 활용할수있게 잘 포장해놓은 케이스의 개념인거같다
접근제한자로 굳이 접근할필요가없는것들은 잘 숨겨놓고 노출할 필요가있는건 노출하고
프로퍼티를 활용해서 멤버변수를 목적에 맞게 잘쓸수있도록 관리한다던가 이런걸 말하는거같다
상속성
중복코드의 최소화나 재사용을 위해 생겨난 개념같다
컴퓨터란 클래스가 있으면 그 자식클래스로 뭐 데스크탑, 노트북, 맥북등등 하위 개념들에게
공통적으로 쓸수있는 기능들을 물려주고 공유하고 머 이러라는거같다
다형성
유지보수 측면에서 생겨난 개념같다
먼저 만들어논 클래스에 뭔가 기능을 추가해서 사용하고 싶다던가 변경점을 넣고싶을때
굳이 원본 클래스를 건들지 않고도 기능을 물려받아 활용할건 활용하고 재정의할건 재정의하고 뭐 이러라는거 같다
그리고 이름은 같아도 다양한 수행을 미리 구축해놓고 그 수행값에 맞는 명령이 떨어지면 스마트하게 찾아가는 서비스? (오버로드)
뭐 이런것도 포함되는거같다
일단은 이렇게 이해했는데 뭐 아직 와닿는건 없어도 이것저것 직접 만들다보면 익숙해지지 않을까
이런거 사실 현직에서 좆도 쓸모없고 실전적인걸 더 많이 연습해라
무조건 뭐든 많이 짜보고
좆도 쓸모없다니? 저 개념 없이 코딩하는 신입 새끼들 소스 코드보면 줘패고 싶다.
백면서생은 쓸모없단 뜻이겠지
현 회사 경력직 애들도 캡슐화를 안하고 죄다 전역 때려박고 작업하니 이리저리 동기화 엉키고 스코프 관리도 안되니 패치만 하면 안된다고 갑사한테 연락온다. 내 프로젝트 담당이 아니라서 병신새끼들이라고 속으로 욕하고 말지만
객체지향과목 A+받은 선배도 무려과탑인자신께서친히쓴코드라고 자랑스럽게 보여주는 코드보면 개ㅄ같던데
야구게임 만들기 추천한다. 콘솔로 만드는거. 이거 하면 객체지향 바로이해한다. 꼭 니가 안만들어도됨