배운 내용 🏃
설계도에 대해 자세하게 배웠다
📜 설계도 (클래스)
객체란?
• 객체는 세상에 존재하는 물체를 뜻하며 식별이 가능한 것을 의미한다
ex ) 물리적으로 존재하는 자동차, 도서관, 계산기를 객체라 볼 수 있다
ex ) 강의, 배달 주문, 운동과 같은 개념적인 것 또한 식별이 가능하기 때문에 객체라 볼 수 있다
• 객체는 속성과 행위로 구성이 되어있다
객체지향 프로그래밍의 특징
캡슐화, 상속, 다형성, 추상화 << 매우 중요하다!!!
캡슐화란?
• 캡슐화란 속성(필드)와 행위(메서드)를 하나로 묶어
객체로 만든 후 실제 내부 구현 내용은 외부에서 알 수 없게 감추는 것을 의미
• 외부 객체에서는 캡슐화된 객체의 내부 구조를 알 수 없기 때문에
노출시켜 준 필드 혹은 메서드를 통해 접근할 수 있다
• 필드와 메서드를 캡슐화 하여 숨기는 이유는 외부 객체에서
해당 필드와 메서드를 잘못 사용하여 객체가 변화하지 않게 하는데 있다
• 캡슐화된 객체의 필드와 메서드를 노출 시킬지 감출 지 결정하기 위해 접근 제어자를 사용
상속이란?
• 객체지향 프로그래밍에는 부모 객체와 자식 객체가 존재
• 부모 객체는 가지고 있는 필드와 메서드를 자식 객체에 물려주어 자식 객체가 이를 사용할 수 있도록 만들 수 있다
다형성이란?
• 객체가 연산을 수행할 때 하나의 행위에 대해 각 객체가 가지고 있는
고유한 특성에 따라 다른 여러가지 형태로 재구성 되는 것을 의미
추상화란?
• 객체에서 공통된 부분들을 모아 상위 개념으로 새롭게 선언하는 것
클래스 설계
클래스는 객체를 생성하기 위한 설계도이다
클래스의 구성 멤버에는 필드, 생성자, 메서드가 있다
4STEP
클래스를 만들기 위해서는 4가지 STEP 이 필요합니다.
1. 만들려고 하는 설계도를 선언합니다.(클래스 선언)
2. 객체가 가지고 있어야할 속성(필드)을 정의합니다.
3. 객체를 생성하는 방식을 정의합니다.(생성자)
4. 객체가 가지고 있어야할 행위(메서드)를 정의합니다.
객체 생성과 참조형 변수
new Car(); // Car클래스 객체 생성
객체 생성 연산자인 ‘new’를 사용하면 클래스로부터 객체를 생성할 수 있다
new 연산자 뒤에는 해당 클래스의 생성자 호출 코드를 작성한다
Car car1 = new Car(); // Car클래스의 객체인 car1 인스턴스 생성
Car car2 = new Car(); // Car클래스의 객체인 car2 인스턴스 생성
객체의 행위 : 메서드
📌 메서드는 객체의 행위를 뜻하며 객체간의 협력을 위해 사용된다
메서드의 행위를 정의하는 방법은 블록{ } 내부에 실행할 행위를 정의하면 된다
// 메서드 선언
리턴타입 메서드명(매개변수, ...) {
실행할 코드 작성
}
//리턴 타입
double brakePedal() {...} // double 타입 반환
char changeGear(char type) {...} // char 타입 반환
boolean onOffLights() {...} // boolean 타입 반환
void horn() {...} // 반환할 값 없음
메서드 오버로딩
📌 오버로딩 은 함수가 하나의 기능만을 구현하는것이 아니라
하나의 메서드 이름으로 여러 기능을 구현하도록 하는 Java의 기능이다
즉, 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도,
매개변수의 개수 또는 타입, 순서가 다르면 동일한 이름을 사용해서 메서드를 정의할 수 있다
오버로딩의 조건
• 메서드의 이름이 같고, 매개변수의 개수, 타입, 순서가 달라야 한다
• '응답 값만' 다른 것은 오버로딩을 할 수 없다
• 접근 제어자만 다른 것도 오버로딩을 할 수 없다
• 결론, 오버로딩은 매개변수의 차이로만 구현할 수 있다
오버로딩의 장점
• 메서드 이름 하나로 상황에 따른 동작을 개별로 정의할 수 있다
• 메서드의 이름을 절약할 수 있습니다
기본형 & 참조형 매개변수
기본형 매개변수
📌 메서드를 호출할 때 전달할 매개값으로 지정한 값을 메서드의 매개변수에 복사해서 전달
• 매개변수의 타입이 기본형일 때는 값 자체가 복사되어 넘어가기 때문에
매개값으로 지정된 변수의 원본 값이 변경되지 않는다
참조형 매개변수
📌 메서드를 호출할 때 전달할 매개값으로 지정한 값의 주소를 매개변수에 복사해서 전달
• 매개변수를 참조형으로 선언하면 값이 저장된 곳의 원본 주소를 알 수 있기 때문에
값을 읽어 오는 것은 물론 값을 변경 하는 것도 가능
• 메서드의 매개변수 뿐만 아니라 반환타입도 참조형이 될 수 있다
Redis on Windows
윈도우용 레디스 릴리즈는 깃헙에서 관리되고 있다.
https://github.com/MicrosoftArchive/redis/releases
원하는 릴리즈 선택하고 .msi파일 다운로드
설치위치 지정하고 설치, 설치시 환경변수 등록과 방화벽 예외 등록은 체크하기
설치 위치에서 redis.windows-service.conf 파일을 redis.conf 로 이름 변경
관리자 권한으로 cmd 실행 후 레디스 설치 위치에서
> redis-server --service-install redis.conf --service-name redis6379
위의 명령 실행 시, 윈도우의 서비스에 redis6379가 등록됨
레디스 서버 시작
* `> redis-server --service-start --service-name redis6379
레디스 cli 시작하고 사용하기
* > redis-cli -p 6379
* > set key value
* OK
* > get key
* "value"
* > exit
레디스 서버 종료
> redis-server --service-stop --service-stop --service-name redis6379
레디스 서비스 해제
> redis-server --service-uninstall --service-name redis6379
오늘의 Tip
Q팀 프로젝트 도중 깃 병합할 때 충돌이 발생
A 먼저 충돌이 생기지 않도록 repository의 코드를 먼저 pull 받은 후
나의 소스 변경 내역을 commit !!
만약 pull 받을 때 충돌이 난다면 해결하기 위한 대화 상자가 열린다
그때는 코드를 잘 확인해서 remote의 최신 코드에 나의 변경 코드를 합친 상태로 만들어야 한다
'TIL' 카테고리의 다른 글
TIL - 2024/05/16 (0) | 2024.05.16 |
---|---|
TIL - 2024/05/14 (4) | 2024.05.14 |
TIL - 2024/05/10 (0) | 2024.05.10 |
TIL - 2024/05/09 (0) | 2024.05.10 |
TIL - 2024/05/08 (2) | 2024.05.08 |