부트캠프 기록/Section1 27

[ 객체지향 ] 추상화

추상화의 핵심 개념과 목적을 이해하고 설명할 수 있다. 기존 클래스들의 공통점을 모아서 상위 클래스를 만드는 것 abstract 제어자가 내포하고 있는 의미를 이해하고, 어떻게 사용되는 지 설명할 수 있다. 미완성 추상 메서드 추상 클래스 - 객체 생성이 불가 추상 클래스의 핵심 개념과 기본 문법을 이해할 수 있다. 메서드 시그니처만 존재하고 바디가 선언되어 있지 않은 추상 메서드를 포함하는 클래스 추상클래스는 상속 관계에 있어 새로운 클래스를 작성하는데 매우 유용 추상 클래스는 자바 객체지향 프로그래밍의 추상화를 구현하는데 핵심적인 역할 final 키워드를 이해하고 설명할 수 있다. 위치 의미 클래스 변경 또는 확장 불가능한 클래스, 상속 불가 메서드 오버라이딩 불가 변수 값 변경이 불가한 상수 자바 ..

[ 객체지향 ] 다형성

자바 객체지향 프로그래밍에서 다형성이 가지는 의미와 장점을 이해할 수 있다. 다형성: 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 허용하는 것 다형성 예시: 메서드 오버라이딩, 오버로딩 참조변수의 타입 변환에 대한 내용을 이해하고, 업캐스팅과 다운캐스팅의 차이를 설명할 수 있다. 사용할 수 있는 멤버의 개수를 조절하는 것 세가지 조건 서로 상속관계에 있는 상위 클래스 - 하위 클래스 사이에만 타입변환 가능 하위 클래스 타입에서 상위 클래스 타입으로 타입 변환(업캐스팅)은 형변환 연산자를 생략할 수 있음 반대로 다운캐스팅은 형변환연산자가 필수 instanceof 연산자를 언제 어떻게 활용할 수 있는 지 이해하고 설명할 수 있다. 캐스팅이 가능한 지 여부를 boolean타입으로 확인할 수 있는..

[ 객체지향 ] 캡슐화

캡슐화의 핵심 개념과 목적을 이해하고 설명할 수 있다. 캡슐화: 특정 객체 안에 관련된 속성과 기능을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것 목적: 1. 데이터 보호(외부로부터 객체의 속성과 기능이 함부로 변경되지 못하게 함) 2. 내부적으로만 사용되는 데이터에 대한 불필요한 외부 노출 방지 패키지의 개념과 import문이 어떻게 사용되는 지 이해할 수 있다. 패키지: 특정한 목적을 공유하는 클래스와 인터페이스의 묶음 클래스들을 그룹 단위로 묶어 효과적으로 관리하기 위함 클래스의 충돌을 방지해줌 Import문 : 다른 패키지 내의 클래스를 사용하기 위해 사용 자바에서 캡슐화를 달성하기 위한 핵심적인 수단으로 접근제어자 네 가지를 이해하고, 각각의 접근 가능 범위를 설명할 수 있다. 제어자:..

[객체지향] 상속

상위 클래스-하위 클래스의 상속 관계의 핵심을 이해하고, 그 장점을 설명할 수 있다. 상속: 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법 요소 두 클래스를 상위클래스와 하위클래스로 나누어 상위클래스의 멤버(필드, 메서드, 이너클래스)를 하위 클래스와 공유 => 코드 재사용률 높아짐 extends 키워드를 사용하여 두 개 이상의 클래스 간 상속 관계를 정의할 수 있다. 자바의 객체지향 프로그래밍에서는 단일 상속만을 허용함 인터페이스 구현을 통해서 다중 상속 효과를 낼 수 있음 포함관계와 상속관계의 차이를 설명할 수 있다. 포함: 상속처럼 클래스를 재사용할 수 있는 방법이지만 클래스의 멤버로 다른 클래스 타입의 참조변수를 선언하는 것 Employee는 Address를 가지고 있다 상속 관..

[객체지향] 내부클래스

📚학습목표 내부 클래스의 기본 개념과 장점에 대해 이해할 수 있다. 선언 위치에 따른 내부 클래스의 종류와 특징에 대해 이해하고 설명할 수 있다. 내부 클래스의 종류에 따른 유효 범위와 접근성을 이해할 수 있다. 1. 내부 클래스의 기본 개념 클래스 내에 선언된 클래스, 외부클래스와 관련 있는 클래스 2. 내부클래스의 장점 외부 클래스의 멤버들에 쉽게 접근 가능하고, 코드의 복잡성을 줄일 수 있음 캡슐화 3. 선언 위치에 따른 내부 클래스의 종류와 특징 종류 선언 위치 사용 가능한 변수 인스턴스 내부 클래스(instance inner class) 외부 클래스의 멤버변수 선언위치에 선언(멤버 내부 클래스) 외부 인스턴스 변수, 외부 전역 변수 정적 내부 클래스(static inner class) 외부 클래..

[ 객체지향 ] 생성자

생성자의 핵심 개념과 기본 문법을 이해하고 사용할 수 있다. 객체를 초기화하는 함수 생성자가 메서드와 구분되는 두 가지 차이를 이해하고 설명할 수 있다. 생성자는 클래스와 이름이 같아야 함 생성자는 리턴 타입이 없음 메서드 오버로딩이 생성자에서 어떻게 구현될 수 있는 지 확인하고 이해할 수 있다. 기본 생성자와 매개변수가 있는 생성자 기본 생성자와 매개변수가 있는 생성자의 차이를 설명할 수 있다. 매개변수가 있는 생성자를 사용하면 인스턴스마다 각기 다른 값을 가지고 초기화할 수 있음 this 와 this() 의 차이에 대해 설명할 수 있다. 해당 인스턴스를 가리킴 자신이 속한 클래스에서 다른 생성자를 호출하는 경우

[ 객체지향 ] 필드와 메서드

객체의 속성을 정의하는 필드를 이해하고, 세 가지 종류의 변수를 구분할 수 있다. 각각의 변수가 저장되는 위치를 설명하고, 그 차이를 설명할 수 있다. 클래스 변수: 클래스 영역 인스턴스 변수: 힙 영역 지역 변수: 스택 영역 클래스 영역에 있는 변수는 객체들이 공유 힙 영역에 있는 변수들은 초기화가 강제 됨, 객체가 사라지기 전까지 변수들도 사라지지 않음 스택 영역에 있는 변수들은 초기화되지 않으면 오류가 뜸, 메서드 호출이 끝나면 사라짐 static 키워드가 무엇이며, 언제 사용되는 지 설명할 수 있다. 객체의 기능을 정의하는 메서드를 이해하고, 메서드의 구성요소와 호출에 대해 설명할 수 있다. 메서드: 명령어의 집합 메서드 오버로딩을 이해하고 그 장점을 설명할 수 있다. 메서드 오버로딩은 메서드 명..

[ 객체지향 ] 클래스와 객체

객체지향 프로그래밍의 가장 기본적인 토대인 객체를 이해할 수 있다. 클래스를 토대로 만들어 지고, 속성과 기능을 가진 실체 객체를 만드는 데 필요한 클래스의 개념을 이해하고, 그 구성요소와 기본 문법을 설명할 수 있다. 클래스: 객체를 생성하는 데 사용되는 틀, 코드의 재사용성을 높임 객체의 두 가지 구성 요소, 속성과 기능이 무엇인지 이해할 수 있다. 속성: 객체가 갖고 있는 데이터 값, 필드 기능: 객체가 데이터를 다룰 수 있는 방법, 메서드 클래스에 기반하여 new 키워드를 통해 객체를 생성하고, 이를 활용할 수 있다. 클래스명 참조변수 = new 클래스명(); 클래스 영역, 스택 영역, 힙 영역에 따로 저장됨 스택영역에 저장된 참조변수는 힙 영역의 주소값을 가르키고 있음 메서드는 클래스 영역에 저..

아직 파릇파릇한 Section1 회고

이제 한 달이 지났다니 시간 참 빠른 것 같다. 교육자님은 한 달만에 우리의 파릇파릇함이 사라진 것 같다고 하셨지만 난 그렇게 생각하지 않는다. 아직 기력이 충분하다! (마인드 컨트롤 중) 첫 한달은 그래도 적응할 수 있는 시간이였던 것 같다. 하루하루 헛되게 보내진 않았지만 전력질주를 하진 않았기 때문이다. 앞으로 스프링이 있는 섹션에 들어가면 복습하느라 여유가 없을 것 같으니 비교적 여유로운 지금 체력을 길러둬야 겠다. 이번 한 달 동안 내가 잘했다고 생각하는 점은 적극적으로 참여했다는 거다. 페어프로그래밍을 할 때는 네비와 드라이버를 철저히 나누려고 노력했고, 1일 1커밋 스터디에도 가입했다. 배운 내용을 복습하는 코드를 작성하거나 프로그래머스 문제를 풀었다. 반대로 못한 점은 완벽하다고 생각할 정..

기술면접 회고

선택했던 질문들 1. 자바 데이터 타입 중 기본형과 참조형의 차이에 대해 설명해주세요. 7. 자바 객체지향 프로그래밍(OOP)에 대해 설명해주세요. 13. 컬렉션과 스트림의 차이에 대해서 설명해주세요. 1, 13번에 대해서는 크게 할 말이 없지만 개념이 순간 기억안나서 선택했다. 이번에 인터뷰어와 인터뷰이를 둘 다 해보니 개념을 알고 있는 건 기본이지만 평온하게 말하는게 중요한 것 같다. 너무 떨려 한다면 지식이 있더라도 잘 모르는 것 같다는 인상을 줄 듯 하다. 나머지 질문들도 생각해보고 구두로 설명하는 시간을 가져야겠다.