1. 접근 제어자해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용 or 제한좋은 프로그램이란?: 무한한 자유도가 주어지는 프로그램이 아니다.⇒ 적절한 제약을 제공하는 프로그램이 좋은 프로그램이다! 1-1. 접근 제어자 종류private모든 외부 호출을 막음클래스 안으로 숨길 때 사용(default)(package-private) 이라고도 함같은 패키지 안에서는 허용패키지 안으로 숨길 때 사용protected같은 패키지 안에서 호출 허용(패키지가 달라도) 상속 관계 호출 허용상속 관계로 숨길 때 사용public모든 외부 호출 허용숨기지 않을 때 사용📌 차단 순 private > (default) > protected > public 1-2. 접근 제어자 사용 위치클래스클래스 레벨의..
1. 생성자1-1. 생성자는 왜 필요한가?객체를 생성하고 나면 멤버 변수 값을 초기화 해야 함생성자가 없다면? ⇒ 객체의 멤버 변수 초기화 과정을 반복해야 함(객체 지향 프로그래밍) 객체 생성 시점에 객체가 자기 자신의 데이터를 초기화하는 기능 ⇒ 생성자 통해서! 1-2. this"자기 자신 객체 (인스턴스) 의 참조"public class Student { String name; int age; int grade; void initStudent(String name, int age, int grade) { // this : 자기 자신 객체를 가리킴 this.name = name; this.age = age; this.grade = grade; }} 멤버 변수와 메서드의 매개변수 우선순위매개변수..
1. 객체 지향 프로그래밍 1-1. 절차 지향 프로그래밍절차를 지향 ⇒ 실행 순서를 중요하게 여김프로그램의 흐름을 순차적으로 따르며 처리하는 방식어떻게 를 중심으로 개발 1-2. 객체 지향 프로그래밍객체를 지향 ⇒ 객체를 중요하게 여김사물이나 사건등을 객체로 봄 ⇒ 객체들 간의 상호작용을 중심으로 프로그래밍무엇 을 중심으로 개발 1-3. 절차 지향 프로그래밍 vs 객체 지향 프로그래밍 📌 정리) 객체 지향 프로그래밍클래스를 사용하는데 필요한 모든 속성(멤버변수) 과 기능 (메서드) 이 하나의 클래스에 포함=> 클래스를 사용하는 입장 : 클래스 내부에 어떤 속성(데이터)이 있는지 몰라도 됨 단지 필요한 기능만 호출해서 사용만 하..
1. 기본형, 참조형기본형 (Primitive Type)사용하는 값을 변수에 직접 넣음int, long, double, boolean 등참조형 (Reference Type)객체가 저장된 메모리의 위치를 가리키는 참조값(주소)를 넣음클래스(객체), 배열, String 2. 기본형 vs 참조형2-1. 전체적인 차이점 기본형참조형이름모두 소문자로 시작 (int, long, double … )클래스는 대문자로 시작 (Student, Person … )사용자 정의사용자가 정의 불가클래스만 직접 정의 가능 2-2. 차이점 - 변수 대입📌 자바 대원칙"자바는 항상 변수의 값을 복사해서 대입한다"변수 대입 기본형참조형변수 대입변수에 들어있는 실제 값을 복사해서 대입변수에 들어있는 참조값을 복사해서 대입Student..
1. 클래스가 필요한 이유학생 정보를 관리할 때 ⇒ 배열 여러개 사용해서 이름, 나이, 성적 등을 관리한다면?데이터 관리하기에 매우 복잡함학생이라는 개념을 하나로 묶는 것이 관리하기 좋음!📌 데이터를 상위 개념으로 묶어서 관리하기 좋은 것이 클래스 2. 클래스 (Class)객체를 생성하기 위한 ‘틀’ or ‘설계도’객체가 가져야 할 속성 (변수) 과 기능 (메서드) 를 정의함 2-1. 클래스와 사용자 정의 타입타입 : 데이터 종류 or 형태클래스 사용 ⇒ 사용자가 정의하는 타입을 만들 수 있음사용자 정의 타입을 만들기 위한 설계도 ⇒ “클래스”클래스 사용해서 실제 메모리에 만들어진 실체를 “객체” or “인스턴스” 라고 함 3. 클래스 선언클래스 선언 방법// 클래스 선언접근제어자 class 클래스이름..
1. 로컬에서 commit 하고 push 하지 않은 경우1-1. 아래 명령어 입력git commit --amend1-2. vi 편집기로 열리고 커밋 메시지 수정하면 됨수정 완료후 esc > :wq 2. 로컬에서 commit 하고 push 한 경우 (원격지에 반영된 경우)2-1. 아래 명령어 입력git log# 한 줄로 보기git log --oneline 2-2. 커밋 변경하고 싶은 것 찾기 2-3. rebasegit rebase -i (HEAD 메세지)git rebase -i HEAD~변경순번 2-4. vi 에디터에서 수정pick 수정 ⇒ reword 커밋 메세지 수정 2-5. git log로 변경 확인 2-6. 원격지에 변경 내용 반영git push --force origin (브랜치 이름)
1. Git과 GitHub / GitLabgit : local에서의 git을 의미원격저장소 (GitHub / GitLab)gitlab : 사내용 서버 구축 가능github : 공공적인 repository가 모인 공간git - 원격저장소 사이의 관계서로 remote control이 가능함 (원격으로 push, pull 등) 2. clone원격 저장소에 있는 프로젝트의 전체 히스토리와 파일들을 로컬 컴퓨터로 복사"원격 저장소의 프로젝트를 로컬에서 작업할 수 있도록 하는 기본적인 Git 명령어"git clone "깃헙/깃랩 주소" 3. pull원격 저장소에 새로운 커밋이 있는지 확인 > 그 커밋들을 로컬 저장소로 가져오고 > 로컬 저장소의 브랜치를 원격 저장소의 브랜치와 자동 merge (병합)"원격 저장소에..
1. 문제 상황터미널에서 현 디렉토리에서 어떤 git branch 로 연결되어 있는지는 표시되지 않음확인하기 위해서는 git branch 등의 명령어로 직접 확인해야 함 2. 터미널에서 현재 git branch 표시 방법vim 에디터를 사용해서 .zshrc 파일 열기vi ~/.zshrc .zshrc 파일 수정i 키를 눌러 Insert 모드로 변경아래의 코드 복사 붙여넣기 (이미 내용이 있다면 아래에 붙여넣기)저장 후 나가기 (esc > :wq > 엔터)터미널 재시작autoload -Uz vcs_infoprecmd_vcs_info() { vcs_info }precmd_functions+=( precmd_vcs_info )setopt prompt_substRPROMPT=\$vcs_info_msg_0_# PR..