📚학습 내용
1주차 강의는 IntelliJ의 활용과 객체 지향 프로그래밍 일부를 학습했습니다.
인텔리제이의 경우 단축키 위주로 알아보는 시간을 가졌고 객체 지향의 경우 객체 지향 개념이 생성된 과정을 위주로 공부했습니다.
IntelliJ
통합 개발 환경 (IDE - Integrated Development Environment)
jetbrains에서 개발한 자바 기반 IDE로 다양한 프로그래밍 언어를 지원하고 다양한 플러그인과 확장 기능을 제공한다.
이클립스와 굳이 비교하자면 이클립스는 무료라는 장점이 있고 그 외에는 인텔리제이가 좋다.
IntelliJ 활용
인텔리제이 활용
(본인이 window 이기 때문에 window 단축키를 기록함, 자주 필요한데 몰랐던 건 ⭐ 표시함)
- 자동 완성 ctrl + space
- 스마트 자동 완성 ctrl + shift + space
- 오류 해결 제안 alt + enter
- 라인 복사 ctrl + D
- ⭐ 이름 일괄 변경 shift + f6
- ⭐ import 최적화 ctrl + alt + O
- 라이브 템플릿 ctrl + J
- 주석 처리 ctrl + /
- java doc 활용하기 - 주석 처리
인텔리제이 검색
- 파일 검색 ctrl + shift + N
- 특정 메서드나 기호를 찾는 기능 ctrl + shift + ALt + N
- ⭐ 전체 검색 / 범위 검색 ctrl + shift + F
- 현재 파일에서 검색 ctrl + F
- 열려있는 파일 내에서 특정 텍스트 수정 ctrl + R
- 전체에서 특정 텍스트 수정 ctrl + shift + R
- 프로젝트 내 원하는 것 검색 shift 2번
인텔리제이 코딩
- ⭐ 코드 탐색 기능 - 메서드 사용 위치 이동 ctrl + B, ctrl + click
- 클래스 계층 구조 탐색 ctrl + H
- 메서드 오버라이딩 및 인터페이스 구현 간의 관계 표시 ctrl + alt + H
- 코드 생성 alt + insert
- 코드 정리 ctrl + alt + L
- 실행 shift + f10
인텔리제이 디버깅
🐛디버깅 : 소프트웨어에서 발생하는 에러나 버그를 찾고 수정하는 작업
🐞디버거 : 개발자가 코드를 단계별로 실행하면서 변수 값을 검사하고 조건에 따른 실행 흐름 파악을 도와줌
- breakpoint 한 번에 보기 ctrl + shift + f8
- 디버그 실행 shift + f9
- 현재 라인의 코드를 실행한 후 다음 라인으로 이동 f8
- 프로그램 계속 실행 f9
객체 지향 프로그래밍 시작 - 클래스로 객체 모델링
이제부터는 객체를 중심으로 객체를 설계하고 객체를 사용하는 클래스에 대한 학습을 진행할 것
사용자 정의 자료형
한 개의 정수 → int
한 개의 실수 → float
한 개의 문자 → char
한 권의 책 → ? 한 명의 헬스클럽 회원 → ? 한 편의 영화 → ?
real world 객체
객체(Object) → 모델 (Model) → 덩어리 (Value Object) → 바구니 → 이동(Data Trasfer Object)
BookDTO = 책 (제목, 가격, 출판사, 저자, 페이지 수, ISBN)
MemberDTO = 회원 (이름, 나이, 전화번호, 이메일, 거주지, 몸무게)
MovieDTO - 영화 (영화 제목, 개봉일, 주인공, 장르, 러닝 타임, 등급)
모델링 도구 → class (새로운 자료형을 만드는 도구)
클래스란 무엇인가
클래스는 : 객체를 설계하는 도구 (모델링하는 도구)
- 자료형 측면 : 새로운 자료형 만드는 도구
package (패키지) ← 폴더 : 기능이 비슷한 클래스를 모아 관리함
// 자바 파일에 패키지 안에 있다면 package 선언문이 꼭 필요함
// fc.java.part3.BookDTO : class’s full name
package fc.java.part3;
// 접근제어자와 함께 지정
public class BookDTO {
// 책의 속성 (상태, 프로퍼티) 을 필드로 지정
public String title;
public int price;
public String company;
public String author;
public int page;
public String isbn;
}
- 객체 지향 측면 : 현실 세계에 있는 객체를 객체 지향 프로그램에서 사용하기 위해 객체의 상태 정보(멤버 변수) 행위 정보(멤버 메서드)를 뽑아서 설계
public class Person {
// 상태 정보
public String name;
public int age;
public String phone;
// 행위 정보
public void play() {
System.out.println("운동을 한다");
}
public void eat() {
System.out.println("음식을 먹다");
}
public void walk() {
System.out.println("걷다");
}
}
객체 생성 과정의 이해
모델링 된 객체를 사용하기 위해서는 메모리에 객체를 생성해야 함
객체 자료형 크기 - 4byte
Person p; // 메모리 번지 생성
new Person(); // 인스턴스 생성
Person p = new Person(); // 메모리 번지 안에 Person 인스턴스를 넣음
생성자 메서드와 this
생성자(Constructor) : 객체를 메모리에 생성하는 역할
- new 연산에 의해서 호출
- 자신이 갖고 있는 멤버들을 메모리에 올려 객체를 생성하는 역할
- 생성자 메서드 이름은 클래스 이름과 동일해야함
- 접근제한자가 public인 경우에만 호출됨
- ⭐ 모든 클래스는 기본 생성자를 갖고 있음
- 객체의 초기화를 위해서 사용됨
- ⭐ 리턴 타입이 없음 - void 또한 없음
객체가 생성된 후 멤버에 접근하는 방법 - .(dot, 도트) 연산자
heap 메모리 인스턴스 접근
🎓소감
아직 시작 부분이라서 어려운 부분은 없었습니다.
새롭게 알게된 점이 있다면 인텔리제이에서 자주 사용하던 기능의 단축키입니다. 앞으로 유용하게 사용될 것 같습니다. 또한, 객체 지향의 개념이 현실 세계의 어떠한 것을 모델링하는 과정임을 깨달았습니다.
'🍫카카오 테크 캠퍼스 2기 BE' 카테고리의 다른 글
[카카오 테크 캠퍼스 / 2기] '웰컴 키트' 라는 것을 받다 (0) | 2024.05.14 |
---|---|
[카카오 테크 캠퍼스] 1단계 4주차 학습 일지 (0) | 2024.05.12 |
[카카오 테크 캠퍼스] 1단계 3주차 학습 일지 (1) | 2024.05.02 |
[카카오 테크 캠퍼스] 1단계 2주차 학습 일지 (1) | 2024.04.28 |
[카카오 테크 캠퍼스 2기 BE] 최종 합격 후기 (1) | 2024.04.17 |