객체 지향 설계 원칙 단일 책임 개방-폐쇄 리스코프 치환 인터페이스 분리 의존 역전
왜 클래스를 정의하고 클래스를 통해 객체를 생성해야 할까? 일반적으로 왜 인스턴스 변수의 접근 제어자는 private, 생성자, 메서드의 접근 제어자는 public으로 지정할까? -> 클래스의 어떤 멤버는 어떤 경우에 어떤 접근 제어자를 지정하나?
System.arraycopy(원본 배열명, 원본 배열에서 복사 시작할 인덱스, 2차원 배열이 메모리 상에 어떻게 생성되어있는지 그림 그려보기 Arrays.copyOfRange(복사 대상 배열명, 시작 위치, 배열 크기)
🌱 .iml 파일은 무엇인가?** iml은 **IntelliJ IDEA가 생성하는 모듈 파일로, Java, 플러그인, 안드로이드, Maven 컴포넌트와 같은 개발 모듈에 대한 정보, 모듈 경로, 의존성 및 기타 환경 설정을 저장한다. iml 파일은 코드와 상관 없이 항상 변경되는 바, 유의하지 않으면 다른 개발자들과 check in할 때마다 이 파일을 merge하게 될 것이다. 🌱 .iml 파일을 어떻게 관리할 것인가? 따라서 .gitignore에 포함시킴으로써 Git으로 관리되지 않도록 하는 것이 좋다. ✔️ References Stack Overflow - .iml 파일은 무엇인가? Stack Overflow - .iml 파일과 gitignore
목표 Mac OS에 적합한 JDK를 설치합니다. IntelliJ IDEA를 설치합니다. Java 프로젝트를 생성합니다. Git 및 GitHub으로 버전 관리할 수 있도록 세팅하고 GitHub 레포지토리와 연결합니다. 🌿 1. JDK 설치 Zulu OpenJDK 다운로드 페이지에 접속합니다. Java Version과 Operating System, Architecture를 선택합니다. MacOS M1은 Architecture에서 ARM 64-bit를 선택하고, MacOS Intel은 x86 64-bit을 선택해 줍니다. 선택을 모두 완료했다면 ‘.dmg’ 버튼을 눌러 다운로드합니다. 다운로드한 파일을 실행하면 보이는 화면에서 상자를 더블클릭합니다. 상자를 더블클릭하면 설치 창이 나타납니다. '계속' 버튼을..
2021.11.19(금) 🌿 Set 담고자 하는 값(value)만 저장 + index 개념 없는 바, 저장하고 꺼낼 때 순서 유지x + 새로 넣는 값과 기존 값 비교해서, 중복 값 허용x 똑같은 요소는 넣을 수 없는 + 순서 없는 커다란 바구니 null도 중복을 허용하지 않음 → 1개의 null만 저장됨 원하는 순서대로 뽑아내기 어려움 특징이 조금 다르지만, 사용하는 방법은 list와 똑같음 사용 예시: 중복 체크해야 할 때 e.g. 웹사이트 방문자 수, 회원 가입 시 같은 사람은 중복되면 안 될 때 등 🌱 HashSet HashSet의 특징: 값이 추가될 때마다 equals() 메소드와 hashcode()로 비교 후, 둘 다 결과가 true일 경우 동일 객체로 판단 - equals(): 현재 객체의 주..
2021.11.18(목) 🌿 Collection Java = 클래스 기반 언어 -> Java에 있는 모든 내용(제공되는 것 + 내가 만드는 것)은 반드시 어떤 클래스 안에 들어가 있음 컬렉션(collection): [사전적 의미] 모음, 수집 -> [Java] 자료구조가 내장되어있는 클래스, Java에서 제공하는 자료구조를 담당하는 프레임워크 → 데이터가 새롭게 추가/삭제/수정되는 기능(알고리즘)들이 이미 정의되어있는 tool 자료구조: 데이터를 효율적으로 다룰 때(자료/데이터를 다루다 = 데이터 조회, 정렬, 추가, 수정, 삭제) 필요한 개념 -> 데이터 관리가 수월해짐 frame(틀)work(작업): 효율적인 기능들이 이미 정의되어 있는 틀/tool 다량의 데이터를 관리하고자 할 때 지금까지는 배열로..
2021.11.17(수) 🌿 Wrapper 클래스 기본자료형(boolean, char, byte, short, int, long, float, double)을 객체로 포장해줌 기본자료형을 객체로 취급해야 하는 경우 메소드 호출 시 = 기본자료형에 대해 메소드를 사용하고 싶을 때 e.g. equals(), compareTo(), 메소드의 매개변수로 기본자료형이 아닌 객체 타입만 요구될 때 다형성을 적용시키고 싶을 때 String 자료형을 기본자료형으로 parsing할 때 ← Java에서 parser는 메소드로 구현되어 있음 표현법: 해당Wrapper클래스이름.parse기본자료형XXX(변환할문자열); 기본 자료형 → String 변환할 때: String.valueOf(변환할기본자료형값) → 반환형 = Str..
2021.11.16(화) 🌱 String클래스 실습 문제 영어 알파벳으로만 이루어진 문자열(띄어쓰기 포함)을 입력받은 뒤, 각 단어의 첫 글자만 대문자로 변환하는 프로그램을 만드시오. Run 클래스 public class ToUpperCaseRun { public static void main(String[] args) { ToUpperCaseView tucv = new ToUpperCaseView(); } } View 클래스 public class ToUpperCaseView { private ToUpperCaseController tucc = new ToUpperCaseController(); private String userStr = ""; private String upperStr = ""; p..
2021.11.15(월) 🌿 API Application Programming Interface 프로그램/applications를 프로그래밍하기 위한 인터페이스 언어적 측면에서 제공 + 사용자는 세부(구성)내용 몰라도 됨 API의 메소드는 오버로딩이 많이 되어있음 + 사용 가능한 메소드 종류, 사용법 등 잘 모르겠으면 API 문서를 먼저 찾아보기 🌿 java.lang 패키지 🌱 Object 클래스 모든 클래스의 최상위 = 모든 클래스는 Object 클래스를 상속받음 모든 클래스는 Object 타입으로 형 변환 가능 🌱 Math 클래스 모든 필드와 메소드(의 접근제한자)가 static으로 되어있음 → static 메모리 = 프로그램 시작~끝 사용 가능, 객체 생성 필요없이 사용 가능 → 굳이 생성자 필요없..