CodeStates_Backend/TIL (Today I Learned)
-
[TIL #13-2][JAVA] 객체지향 프로그래밍 심화, 캡슐화(패키지, 접근 제어자, getter, setter)CodeStates_Backend/TIL (Today I Learned) 2022. 5. 21. 11:24
코드스테이츠 백엔드 부트캠프 39기 18일차, 05/12 캡슐화 (Encapsulation) 🧲 개요 속성 , 기능 을 하나의 캡슐로 감싸는 것. 목적은 크게 3가지로 나뉜다. 1️⃣ 데이터의 보호 👉 외부로부터 속성과 기능이 함부로 변경되지 못하게 막음, 데이터가 수정되어도 다른 객체에 영향을 주지 않아 독립성 확보(=정보 은닉; Data Hiding) 2️⃣ 데이터의 불필요한 외부 노출을 방지 3️⃣ 유지보수, 코드 확장 시 오류 범위를 최소화 🛟 '캡슐'이라 함은 개념적인 표현으로, 감싸서 보호한다는 의미가 중요한 것이라고 생각한다. 클래스가 될 수도 있고 접근제어자가 될 수도 있고 객체가 될 수도 있고 블록이 될 수도 있을 것이다. 🛟 자바에서는 접근 제어자(Access Modifier)가 캡슐화..
-
[TIL #13-1][JAVA]객체지향 프로그래밍 심화, 상속(오버라이딩, super()와 super)CodeStates_Backend/TIL (Today I Learned) 2022. 5. 18. 15:59
코드스테이츠 백엔드 부트캠프 39기 18일차, 05/12 객체지향 프로그래밍 심화 객체지향의 4대 기둥 상추다캐!! 👉 상속, 추상화, 다형성, 캡슐화 📌 상속 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속에 상속에 상속 . . . 도 가능하다. 예를 들면 interface Animal {public abstract void cry();} // 인터페이스 선언. public abstract 생략 가능. interface Pet {void play();} class Cat implements Animal, Pet { // Animal과 Pet 인터페이스 다중 구현 public void cry(){ System.out.println("야옹~!"); } public void play(){ ..
-
[TIL #12][JAVA] 생성자, this 와 this()CodeStates_Backend/TIL (Today I Learned) 2022. 5. 16. 20:59
코드스테이츠 백엔드 부트캠프 39기 17일차, 05/11 생성자 new 키워드를 사용하여 객체를 생성할 때 호출되는 것이 바로 생성자이다. 생성자는 인스턴스가 생성될 때 인스턴스를 초기화하는 역할을 한다. 붕어빵틀에서 붕어빵을 만들때 어떤 녀석은 팥붕어빵, 어떤 녀석은 슈크림붕어빵으로 만들어내지 않는가? 생성자가 팥인지 슈크림인지를 지정해주는 역할을 하는 것이다. 🏐 생성자 이름은 클래스명과 같아야 한다. 🏐 생성자는 리턴타입이 없으며 void 를 사용하지 않는다. 🏐 생성자도 오버로딩이 가능하다. 그래서 여러개의 생성자가 존재할 수 있는것. 🏐 생성자가 하나도 없으면 컴파일러가 자동으로 기본 생성자를 만들어 준다. 단, 하나라도 다른 생성자가 존재하면 기본 생성자를 만들어 주지 않으며, 이 때 기본 생..
-
[TIL #11-2][JAVA] 객체지향 프로그래밍(OOP, Object Oriented Programming) 개념, 클래스, 객체, 필드, 메서드CodeStates_Backend/TIL (Today I Learned) 2022. 5. 16. 14:38
코드스테이츠 백엔드 부트캠프 39기 16일차 , 05/10 앞으로의 TIL 블로깅에서는 내용을 축약하는 경우도 있을 것이다. 그 이유는 다음과 같다. "부트캠프 과정의 모든 학습내용을 자세히 블로깅하려다 보니 시간이 매우 부족했다. 현재도 TIL 정리해야할 내용이 쌓여있다." "이 블로깅은 나의 복습이 주된 목적이며, 나의 정리보다 훨씬 더 나은 수많은 정보들을 접할 수 있기 때문이다." 물론 중요한 내용이라면 상세히 기록하겠지만, 그렇지 않을 경우 조금 불친절하더라도 보시는 분들께는 양해를 구하고 싶다. 객체지향 프로그래밍 개념 음.. 철학적이다. 추상적으로 어떠한 느낌인 지(?)는 알겠지만 선뜻 정확히 써내려가기 어렵다는 생각이 든다. 핵심을 문장으로 표현해보겠다. 🔘 Everything is Obj..
-
[TIL #11-1][블로그] 블로깅에 대해CodeStates_Backend/TIL (Today I Learned) 2022. 5. 14. 19:02
코드스테이츠 백엔드 부트캠프 39기 16일차 , 05/10 WHY? 🍖 기억은 잊혀진다. 기록은 잊혀지지 않는다. 나만의 정보저장소가 된다. 🍖겪었던 문제를 해결한 경험을 기록함으로써 문제해결능력을 볼 수 있다. 🍖메타인지 - 블로깅 중에 무엇을 모르는 지 스스로 알게 된다. HOW? 🍖 TIL : 학습 내용, 느낀점, 기술 내용 등 🍖 Error Handling Log : 문제 해결 경험에 대한 기록 🍖 회고 : Daily, Weekly, Monthly 등. 보여주기식 회고는 아무 의미가 없다. 무엇이 좋았고 무엇이 문제였는가 그리고 어떻게 발전해나갈것인가.. 끝
-
[TIL #9-2][JAVA] 배열CodeStates_Backend/TIL (Today I Learned) 2022. 5. 14. 18:18
코드스테이츠 백엔드 부트캠프 39기 12일차 배열 선언 두 가지 방법으로 선언이 가능하다. int[] arr; int arr[]; 여기서 arr은 참조변수로 배열의 주소값을 가진다. 초기화 🍒 new int[ 크기 ] 만 가능하다. new[ ] int 는 없음. 🍒 배열 객체를 생성하고 초기화를 하지 않고 선언만 한다면 해당 데이터타입의 기본값으로 자동 초기화가 된다. // 선언 후 초기화 int[] arr; arr = new int[5]; // arr -> {0, 0, 0, 0, 0} // 배열의 요소에 값을 지정하지 않으면 각 요소는 해당 타입의 기본값으로 자동으로 채워집니다. 다차원 배열 다차원 배열 int[][] arr = new int[3][] 을 생성했다면, arr , arr[0] , arr[..
-
[TIL #9-1][JAVA] 제어문CodeStates_Backend/TIL (Today I Learned) 2022. 5. 14. 12:20
코드스테이츠 백엔드 부트캠프 39기 12일차 앞으로의 TIL 블로깅에서는 내용을 축약하는 경우도 있을 것이다. 그 이유는 다음과 같다. "부트캠프 과정의 모든 학습내용을 자세히 블로깅하려다 보니 시간이 매우 부족했다. 현재도 TIL 정리해야할 내용이 쌓여있다." "이 블로깅은 나의 복습이 주된 목적이며, 나의 정리보다 훨씬 더 나은 수많은 정보들을 접할 수 있기 때문이다." 물론 중요한 내용이라면 상세히 기록하겠지만, 그렇지 않을 경우 조금 불친절하더라도 보시는 분들께는 양해를 구하고 싶다. 제어문 - 조건문 , 반복문 조건문 🍩 switch문에서 break; 문을 통한 탈출분기가 없게 작성된 경우(=fall through 라고 함), defalut문 까지도 다 실행됨. (default문은 실행되지 않는..