특정 사물이 가지는 속성과 기능을 하나의 독립적인 레고 조각으로 만들고, 이를 하나씩 하나씩 결합하여 원하는 결과물을 만들어가는 과정이 바로 객체지향적 설계가 가지는 핵심이라 할 수 있습니다.즉, 객체지향 프로그래밍은 실제 사물의 속성(state)과 기능(behavio
for문은 조건식이 참인 동안 주어진 횟수만큼 실행문을 반복적으로 수행합니다.초기화는 for문이 시작할 때 최초 한 번만 수행되며, 사용할 변수의 초깃값을 정합니다.조건식은 계속 반복할지 여부를 결정하는 조건입니다. 조건식 안의 값이 true라면 실행문을 실행시키고,
String이 무엇인지 이해한다.String을 선언하고 사용하는 법을 이해한다String 메서드들을 이해한다.StringTokenizer가 무엇인지 이해한다.String Builder, Buffer가 무엇인지 이해한다.선언한 변수에 문자열을 할당하는 방법문자열 리터럴을
자바의 특징을 이해하고 기본적인 개발 환경을 설정할 수 있다.타입, 변수, 상수 형 변환 등을 이해하고 활용할 수 있다.연산자, 입/출력과 제어문(조건문, 반복문)을 이해하고 활용할 수 있다.배열을 이해하고 활용할 수 있다.자바의 기초 문법을 활용하여 계산기를 구현할
클래스란 객체를 만들기 위한 설계도 혹은 틀이라고 이해하면 좋다.이렇게 클래스를 통해 생성된 객체를 인스턴스(instance)라고 하며 이 과정을 인스턴스화(instantiate)라고 한다. 객체와 인스턴스의 차이? 객체는 모든 인스턴스를 포괄하는 넓은 의미, 인스턴스
생성자는 인스턴스 변수들을 초기화하는 데 사용되는 특수한 메서드라고 할 수 있다.생성자는 메서드와 비슷한 구조를 가지고 있지만 두 가지 부분에서 차이가 있다.생성자의 이름은 클래스의 이름과 반드시 같아야 한다.생성자는 리턴타입이 없다. 따라서 반환타입이나, void키워
상위 클래스-하위 클래스의 상속 관계의 핵심을 이해하고, 그 장점을 설명할 수 있다.extends 키워드를 사용하여 두 개 이상의 클래스 간 상속 관계를 정의할 수 있다.포함관계와 상속관계의 차이를 설명할 수 있다.상속 관계에서 사용할 수 있는 메서드 오버라이딩의 정의
상속 포함관계 포함(composite)은 상속처럼 클래스를 재사용할 수 있는 방법이다. 다른 클래스 타입의 변수를 클래스의 멤버로 선언하는 것을 의미한다. 상속관계 vs 포함관계 기준 객체지향 프로그래밍에서 상속보다 포함관계를 사용하는 경우가 더 많다. 클래스 간의
영단어 override의 사전적 의미가 "~위에 덮어쓰다"를 의미한다는 것을 생각하면 메서드 오버라이딩을 이해하기 쉽다.메서드 시그니처(반환타입, 메서드이름, 매개변수)가 상위클래스의 메서드와 같아야 한다.접근제어자의 범위는 상위클래스의 메서드보다 같거나 넓어야 한다.
속성과 기능을 하나로 감싸 외부로부터 데이터를 보호하고 내부적으로만 사용되는 데이터를 외부로 노출시키지 않도록 하는 것을 의미한다. 캡슐화의 가장 큰 장점은 정보 은닉이다.속성과 기능을 외부로부터 변경할 수 없도록 데이터를 보호한다.만일 변경되었다 하더라도 다른 객체에
JVM의 목적은 자바 프로그램이 어느 기기나 운영체제 상에서도 실행될 수 있도록 하는 것이다.프로그램 메모리를 관리하고 최적화한다.우리가 Ctrl+S 로 자바소스파일을 저장하면 javac.exe 자바컴파일러는 자바소스파일(.java)을 바이트코드파일(.class)로 변
poly(여러개) + morphism(형태) = 다형성(polymorphism)즉 다형성이란, 하나의 객체가 여러가지 형태를 가질 수 있다는 뜻이다.자바에서의 다형성이란, 한 타입의 참조변수를 통해 여러타입의 인스턴스를 참조할 수 있도록 한 것이다.💡 하위클래스의 인
instanceof 연산자는 상속관계에 있는 참조변수의 타입변환(캐스팅)이 가능한지의 여부를 boolean타입으로 확인할 수 있는 자바문법이다.💡 캐스팅가능여부를 판단하는 두 가지 기준이 있다.객체를 어떤 생성자로 만들었나클래스 사이에 상속관계가 존재하는지// 기본문
자바에서는 주로 추상 클래스와 인터페이스라는 문법 요소를 사용해서 추상화를 구현한다.추상화를 한마디로 정리하면 “객체의 공통적인 속성과 기능을 추출하여 정의하는 것” 이라 정리할 수 있다.상속: 하위클래스를 정의하는 데 상위클래스를 사용추상화: 기존 클래스들의 공통적인
인터페이스란?인터페이스의 기본 구조인터페이스의 구현인터페이스의 다중 구현인터페이스의 장점자바 객체지향 프로그래밍 추상화에서 가장 핵심적인 역할을 담당하는 것이 추상클래스와 인터페이스이다.interface는 "-간/사이"를 뜻하는 inter와 "얼굴/면"을 의미하는 fa
애너테이션의 개념을 설명할 수 있다.표준 애너테이션을 이해하고 사용할 수 있다.메타 애너테이션이 무엇이고, 왜 필요한지 이해한다.사용자 정의 애너테이션을 정의하는 기초적인 문법을 이해한다.애너테이션은 소스 코드가 컴파일되거나 실행될 때에 컴퓨터에게 필요한 정보를 전달해
람다식이란? 람다식은 어떻게 사용할 수 있는가?함수형 인터페이스를 통해 람다를 다루는 방법을 이해하고 설명할 수 있다.람다식을 메서드 참조 방식으로 변환할 수 있다.람다식을 이해하기 전에 익명객체에 대해 먼저 살펴보자.💡 익명 객체 : 이름이 없는 일회용 객체👉🏻
원래 메서드는 클래스 안에서 정의되어야 한다. 메서드는 독립적일 수 없기 때문이다. 다른 클래스의 메서드를 호출해야할 경우 클래스 객체를 먼저 생성한 뒤 그 객체를 통해 메서드를 호출해야 한다.우리는 메서드와 동일시 여겼지만 따지고 보면 람다식은 객체다. 이름없는 익명
프로세스(Process) : 프로세스는 데이터/컴퓨터자원/스레드로 구성되어 있다. 프로세스는 실행중인 애플리케이션이다. 실행에 필요한 만큼 메모리를 할당받아 프로세스가 된다.스레드 (Thread): 데이터와 컴퓨터자원을 활용하여 소스코드를 실행한다. 스레드는 코드의 실
학습내용 JVM이란? JVM 메모리구조 가비지 컬렉션이란? JVM이란? 한마디로 정의하면 자바 프로그램을 실행시키는 독립적인 프로그램이다. 소스코드를 해석하고 실행하는 프로그램이라고 할 수 있다. 원래라면 내가 필요한 컴퓨터 자원을 운영체제로부터 할당받아야 한다.
재귀란 원래의 자리로 돌아오다라는 뜻을 가지고 있다.재귀함수를 사용하는 이유는 불필요한 반복문들이 필요없고 코드의 간결성과 수정의 용이함이다. 또한 여러개의 변수를 사용할 필요도 없다.그러나 반복문과 달리 코드흐름을 직관적으로 파악하기 어렵고 자기 자신을 계속 호출하는
int arrSum(int\[] arr){} 의 경우 가장 단순하게 쪼갠다면 이런 형식이 될것이다.arrSum:int => int 일반적으로 입력값을 기준으로 문제를 구분하지만 문제푸는 순서나 크기를 기준으로 문제를 구분할 수 있다. 만일 이 모든것이 관계없이 같다면
나는 그저 "\\" 에 대해서 알고 싶었을 뿐이었는데...😭 String.format() 이 이렇게 야한 문자인줄 몰랐다.. 이래서 구글링도 실력이라고 하는구나.. 오늘 페어과제를 하면서 다양한 형태의 타입을 JSON형태로 변경하는 문제를 풀었다. 응~ 이정도면 괜찮
ORACLE Naming Conventions 참고Naming conventions make programs more understandable by making them easier to read. They can also give information about t
자바는 컴파일러를 통해 기계어로 변환되는 언어다.컴파일이란, 번역과정 이라고 할 수 있다.프로그래밍 언어 ➡️ 기계가 이해할 수 있는 언어ex) java(언어) ➡️ 바이트코드로 변환JVM(기계)이 이해할 수 있는 바이트코드(이해할 수 있는 언어)로 변환이런 과정을 거
데이터의 묶음을 저장하고, 사용하는 방법을 정의한 것대부분의 자료 구조는 특정한 상황에 놓인 문제를 해결하는 데에 특화되어 있다. 따라서 많은 자료 구조를 알아두면, 어떠한 상황이 닥쳤을 때 적합한 자료 구조를 빠르고 정확하게 적용하여 문제를 해결할 수 있다.Stack