Java_basic 시리즈는 부트캠프에 들어가기전 프리코스로 들은 온라인 Java 강의를 정리한 내용이 올라갑니다.
변수는 사람의 나이, 학생의 학년과 같이 변하는 수를 뜻합니다. 반대로 값이 고정되어 변하지 않는 수를 상수라고 합니다.자료형(데이터타입) 변수이름 ;int age;변수를 선언하는 방법은 int age;와 같이 자료형(데이터타입)을 써주고 그뒤에 변수의 이름을 설정해
자바에서 자료형은 기본형 혹은 참조형 2가지로 구분됩니다자바언어에서 기본적으로 제공해주는 자료형입니다. ( 메모리의 크기가 정해져있습니다.)종류로는 정수형, 문자형, 실수형, 논리형이 있습니다.프로그래머가 정의한 클래스를 자료형으로 하기에 클래스 타입의 자료형이라고
문자자료형도 다른자료형과 같이 내부적으로 비트의 조합으로 저장을 하는데 각 문자의 특정한 숫자값을 부여하여 저장합니다.각 문자를 저장 할 때 숫자화 하는 것을 '인코딩'이라고 하고 숫자화된 자료를 문자화 하는 것을 '디코딩' 이라고 합니다.ex) 'A' -> 65, /
자바에서 실수는 기본적으로 double을 자료형으로 사용합니다. => double dNum = 3.14;다른 실수 자료형인 float도 사용할 수도 있는데 그때는 값뒤에 f, F 식별자 넣어서 사용해야 합니다.자바에서는 실수는 부동 소수점 방식을 사용하여 표현합니다
상수는 변하지 않는 수로 앞에 파이널이란 키워드를 사용하여 선언합니다.리터럴은 프로그램내에서 사용되는 모든 숫자, 값, 논리 값을 나타내는 말입니다. ex) 10, 3.15, 'A', ture 등 우리가 사용하는 모든 '값'그림과 같이 모든 리터럴은 상수 풀에 저장 되
앞에서 배운 변수를 이용하여 각종 연산을 할 때 사용하는 연산자들의 종류를 배워 봅니다.항(operand)는 연산에 사용되는 값으로 연산이 되는 대상을 나타냅니다.연산자(operator)는 항을 이용하여 연산하는 기호입니다.연산자는 사용되는 항의 갯수에 따라 단항연산자
비교 연산자라고도 하며 우리가 수학시간에 배웠던 부등호를 생각하시면 됩니다. 관계연산자의 결과는 true 혹은 false 값인 boolean 자료형으로 반환이 됩니다. 뒤에서 배울 제어문에서 많이 사용되는 연산자 입니다.관계 연산자의 대부분의 연산자들은 수학의 연산자
프로그래밍에서 제어문은 조건문과 반복문이 있으며 그 중 조건문을 먼저 배워 볼 것입니다.가장 많이 사용되는 조건문으로 조건식의 결과에 따라 수행문이 실행되는 조건문으로 구조는 다음과 같습니다.if문if (조건식) { 수행문;}if-else문if (조
은 if-else if 같은 기능을 하지만 조건의 값이 정수 혹은 문자열이어야 사용할 수 있다는 제약이 있어 if -else if 보다는 한정적으로 사용되는 조건문입니다. 하지만 다음 예제를 통해서 알 수 있듯이 if-else if 문보다 코드를 깔끔하게 정리할 수 있
제어문의 한종류인 반복문은 동일한 수행문을 조건식이 맞는(ture) 동안 수행하도록 하는 기능을 합니다. 자바에서 반복문은 while문 do-while문 for문이 있습니다.while문은 조건식이 참인 수행문을 수행하고 다시 조건식을 검토해서 참이라면 수행을 반복하는
앞에서 배운 while문 do-while문에 이어 마지막 반복문인 for문을 알아보겠습니다. 먼저 for문의 구조는 다음과 같습니다.for(초기화식; 조건식; 증감식) {}for문은 다른 반복문들에 비해 가독성이 좋고 일정 횟수에 기반한 반복을 구현할 때 효율적이란 특
제어문에서 활용될 수 있는 break문과 continue문에 대해 알아보도록 하겠습니다. break문 감싸고 있는 블럭의 제어를 빠져 나오는 기능을 하며 제어문에서 어떤 조건하에 반복문을 빠져나온다라는 방식으로 활용 됩니다. 하나의 블럭만 빠져나오기 때문에 중첩 반
지금까지 배운 제어문을 활용하여 두 가지 예제를 풀어보도록 하겠습니다.Q1. 연산자와 두 수를 변수로 선언한 후 사칙연산이 수행 되는 프로그램을 만들어 보세요. if - else ife -else if, swtich -case 두 방식 모두 구현해 봅니다.if -el
구구단을 단계별로 구현하며 지금까지 배운내용들을 복습해보겠습니다.간단한 계산 및 System.out.println()을 활용해 결과를 출력을 하는 방법을 복습해 봤습니다. 단순 반복작업이 많음을 알 수 있습니다. Scanner를 통해 int number라는 변수의 값을
이번엔 나중에 더 자세히 배울 내용인 배열, 메소드, 클래스를 가지고 구구단을 구현하며 에습해보겠습니다. 위의 개념들은 제가 아직 정확하게 이해하지 못하였고 이런식으로 활용하는구나 정도만을 이해한 것임을 참고해주시기 바랍니다.지금까지는 하나의 변수에 하나의 값만을 대입
앞에서 배운 내용을 바탕으로 단계별로 캘린더 만들기를 해보겠습니다.먼저 달을 입력받고 Maxdays라는 배열을 만들어 각 월별 최대일수를 저장해놓은 다음 조건문을 통해 각월에 맞는 최대일수를 출력합니다. Maxdaysinput-1인 이유는 입력값은 1~12이지만 배열은
캘린더 1에서 만들어본 달력에 기능을 추가해서 더 정교한 달력을 만들어 보도록 하겠습니다.시작하는 날짜의 요일을 입력하는 달력만들기다음 결과 값 같이 첫번째 요일을 입력하여 그 날을 기준으로 1일을 시작하는 달력을 만들어 보겠습니다.시작 요일을 입력받기 위해 Promp
앞에서 수동으로 시작하는 요일을 입력하는 달력에서 연과 월을 입력하면 자동으로 시작하는 요일을 계산해서 출력해주는 달력을 만들어보겠습니다.먼저 Calendar 클래스에 요일을 구하는 getWeekDay 메소드를 만들어 보겠습니다.달력의 요일을 계산하는 방법은 여러가지가
이번엔 만들어 놓은 달력에 일정을 등록하고 등록한 일정을 검색하는 추가 기능을 구현해보겠습니다.메뉴 목록을 만들기 위해 Prompt 클래스에 printMenu 메소드를 추가합니다.메뉴 항목에 맞추어 입력값을 입력 받기 위해 runPrompt() 안에 for문과 if-
Java 기초 실습을 마치고 다음 단원으로 넘어가 객체지향 프로그래밍을 배우기 위한 첫시간으로 객체지향 프로그래밍과 클래스에 대해 알아보도록 하겠습니다.객체는 '의사나 행위가 미치는 대상'이라는 사전적 의미를 가지고 있습니다.자바에서는 하나의 역할을 수행하는 메소드와
클래스안에서 사용되는 함수(function)의 일종인 메서드를 만들기 위해 함수의 개념과 함수의 구조, 그리고 호출될 때 사용되는 메모리에 대해서 배워보도록 하겠습니다.함수는 다른 프로그램 언어들에도 많이 사용되는 개념으로 하나의 기능을 구현 하는 일련의 코드를 뜻합니
인스턴스의 개념을 알아보고 생성된 객체가 어떻게 메모리에 잡혀 있는지 알아보도록 하겠습니다.지난 시간 만들었던 StudnetTest에 studnetKim을 추가로 생성해서 만들었습니다.studentLee 나 studenKim 처럼 하나의 클래스를 기반으로 생성자라는 n
클래스와 객체에 대해 배운내용들을 바탕으로 2가지 예제를 풀어보도록 하겠습니다.Q1.다음 객체에 대한 설명에 맞는 클래스를 만들고 값을 출력해 보세요.나이가30살, 이름이 James라는 남자가 있습니다. 이 남자는 결혼을 했고 자식이 셋 있습니다.<출력결과>나이
생성자와 생성자 오버로딩에 대하여 알아보도록 하겠습니다.객체를 생성할 때(인스턴스를 만들 때) new 키워드와 함께 호출합니다. 다른 메서드들이 언제든 불러서 사용할 수 있는 것과는 다르게 객체를 생성할 때 만 사용할 수 있습니다.생성자는 인스턴스를 생성할 때 멤버 변
변수의 자료형은 int,long,float,double와 같은 기본 자료형과 String, Date, Student등과 같은 참조자료형이 있습니다.그 중 참조 자료형은 클래스형으로 변수를 선언하는 것으로 기본자료형은 메모리가 정해져 있지만, 참조 자료형은 클래스에 따라
객체지향 프로그래밍의 가장 큰 특징인 정보 은닉에 대해 알아보도록 하겠습니다. 접근 제어자는 변수, 메서드, 생성자에 대한 접근 권한을 지정하는 역할을 하고 public, private, protected, 생락(기본접근 제어자) 4가지 종류가 있습니다.public은
객체 지향 프로그래밍에서 자기 자신을 나타내는 this라는 키워드에 대하여 살펴보도록 하겠습니다.자기자신의 메모리를 가르키는 역할을 합니다.생성자에서 다른 생성자를 호출 하는 역할을 합니다. 인스턴스가 자기 자신의 주소를 반환할 때 사용합니다.인스턴스,힙 메모리에서 배
객체 지향 프로그래밍은 객체를 정의하고 협력 한다고 배웠는데 예제를 통해서 객체간 협력이 어떻게 구현되는지 알아보도록 하겠습니다.다음과 그림과 같이 학생이 버스나 지하철을 탔을 경우 학생이 가진돈과 교통수단의 수입이 어떻게 변화하지는지 구현해보시오.1번 : Bus 클래
날짜의 유효성을 검증하는 프로그램을 구현해 보세요다음과 같은 MyDate 클래스가 있습니다. \-day, month, year변수는 private으로 선언합니다.\-각 변수의 getter, setter를 public으로 구현합니다.\-MyDate(int day, in
클래스 하나에서 생성되는 여러개의 인스턴스가 하나의 값을 공유할 필요가 있을 때 사용하는 변수로 하나의 변수인스턴스가 힙메모리에 생성되는 것과는 다르게 다음 그림과 같이 데이터 영역 메모리에 생성되며 인스턴스의 생성과 상관없이 사용할 수 있습니다.클래스 이름으로 참조되
학교와 학생의 클래스가 있다면 학생은 여러명일 수 있으나 학교는 하나여야 합니다. 이렇듯 한 클래스에 인스턴스가 하나만 존재하게 구현 하는 것을 singleton pattern이라고 합니다.sigleton patter에서는 생성자를 prviate으로 만들고 클래스 내부
카드 회사가 있습니다. 카드회사는 유일한 객체이고, 이 회사에서는 카드를 발급하면 항상 고유번호가 자동으로 생성됩니다.10001부터 시작하여 카드가 생성될 때 마다 10002, 10003식으로 증가 됩니다.다음 코드가 수행 되도록 Card클래스와 CardComapny
배열은 자료들을 모아놓는 자료구조의 일종으로 동일한 자료형을 순차적으로 관리하는 기능을 합니다.배열을 선언하기 위해선 '자료형\[] 변수명 = new 자료형인덱스 크기'으로 사용하고 예를 들어int\[] arr= new int10;와 같이 선언합니다.배열의 메모리 구조
int\[] arr = new int10; Book\[] library = new Book5; 객체 배열은 자료 값을 담는 기본 자료형 배열과는 다르게 객체를 담는 배열이다. 여기서 객체는 생성자를 통해 만드는 인스턴스를 뜻한다. 위의 식은Book이란 클래스의 생성된
2차원 이상의 배열로 지도, 게임, 평면이나 공간을 구현할 때 사용나는 배열입니다.아래의 예시처럼 하나이상의 배열이 결합되어 구성되어 있습니다..예시1번 : new를 사용하지 않고 바로 값을 대입해 2차원 배열을 만들었습니다. 다차원 배열에서는 중괄호 안에 중괄호를 써
ArrayList는 자바에서 제공되는 객체 배열이 구현된 클래스로 객체 배열을 사용하는데 필요한 여러 메서드들이 구현되 어있어서 사용하는데 편의를 제공합니다주요 메서드 알아보기배열을 입력하고 값을 출력해보기.1번 : ArrayList 클래스를 사용하기 위해 list인스
\_ArrayList를 활용한 응용 프로그램어느\_학교에 학새잉 3명이 있고 각 학생마다 읽은 책을 기록하고 있습니다.Student 클래스를 만들고 각 학생마다 읽은 책을 Student클래스 내에 ArrayList를 생성하여 관리하도록 합니다.다음과 같이 출력 되도록
상속은 객체 지향프로그래밍에 특징 중에 하나로 어떤 클래스보다 좀 더 확장된 기능을 구현하고 싶을 때 새로 클래스를 구현하는게 아니라 이미 구현된 클래스를 상속받아서 속성이나 기능 확장시킨 클래스를 구현하는 것을 말합니다.코드의 재사용의 개념이 아닌 기존의 클래스를 가
상속 관계에서 하위 클래스가 생성 될 때 상위 클래스가 먼저 생성 됩니다. 이는 하위 클래스에서 상위 클래스의 변수나 메서드를 사용기 위해서는 상위클래스를 생성할 필요하기 때문입니다. 생성되는 순서는 상위 클래스의 생성자가 호출되고 하위 클래스의 생성자가 호출됩니다.
상위 클래스에서 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우 하위 클래스에서 동일한 이름의 메서드를 재정의 할 수 있고 그것을 오버라이딩 이라고 합니다.예제의 Customer 클래스의 calPrice()와 VIPCustomer 의 calP
다형성은 하나의 코드가 여러 자료형으로 구현되어 실행되는 것을 뜻하며 이는 같은 코드에서 여러 실행 결과가 나올 수 있는 것을 말합니다.정보은닉, 상속과 더불어 객체지향 프로그래밍의 가장 큰 특징 중 하나인 다형성은 객체지향 프로그래밍의 유연성, 재활용성, 유지보수성에
묵시적으로 상위 클래스 형변환된 인스턴스가 원래 자료형(하위클래스)으로 변환되어야 할 때 다운캐스팅이라고 합니다.아래의 예와 같이 묵시적으로 이루어진 상위클래스와는 다르게 하위 클래스로의 형 변환은 명시적으로 되어야 합니다.1번 : Animal 클래스에서 Human,
배열을 활용하여 구현하기고객은 현재 5명입니다. VIP 1명, GOLD2명, SILVER 2명 일 때, 각 고객이 10000원 짜리 제품을 구매한 경우 지불한 금액과 적립된 보너스 포인트를 출력해보세요.ArrayList를 활용하여 구현해봅니다.VIPCustomer 클래
추상 클래스는 추상 메서드를 포함한 클래스를 말하고 추상 메서드는 구현부(body)가 없이 선언부만 있는 메서드입니다. 여기서 선언부는 반환값, 메서드 이름, 매개변수를 만합니다.추상 클래스는 abstract 예약어를 사용하고, new 생성자를 사용해 인스턴스화 할 수
틀이나 견본을 의미하는 템플릿을 붙인 템플린 메서드는 추상 메서드나 구현된 메서드를 활용하여 전체의 흐름(시나리오)를 정의 해놓은 메서드를 뜻합니다. final로 선언하여 하위 클래스에서 재정의 될 수 없게 하고 그렇기에 전체의 흐름이 정의되있다고 얘기할 수 있는 것입
위의 예제는 PlayerLevel를 상위 클래스로 하여 3가지 하위 레벨 클래스를 가지고 있고 Player가 PlayerLevel을 사용하게 되는 구조를 가지고 있고 그것을 관계도로 표현하면 다음과 같습니다.상위클래스인 PlayerLevel을 abstract 클래스로
Car 추상 클래스를 상속받는 Sonata, Avate, Gradeur, Genesis 클래스가 있습니다. 각 차는 주행하기 위해 다음 메서드의 순서로 움직입니다.run() 메서드를 템플릿 메서드로 구현하고 CarTest 클래스를 ArrayList를 활용하여 다형성이
인터페이스는 어떤 객체에 대한 명제로 이 객체가 어떤 메서드들을 제공하고 어던 역할을 하는지에 대한 일종의 설명서로 대부분 설계단계에서 만들게 됩니다.인터페이스란 클래스의 일종으로 추상메서드로만 이루어진 클래스로 추상클래스에는 추상메서드와 일반 메서드가 동시에 있을 수
인터페이스는 클라이언트 프로그램에 어떤 메서드를 제공하는지 알려주는 명세(specification) 또는 약속입니다. 그 이유는 어떤 객체가 어떤 인터페이스 타입이라는 것은 그 메서드들을 다 구현했다는 의미이기 때문입니다. 그렇기 때문에 클라이언트 프로그램은 실제 모듈
인터페이스의 요소 상수 : 선언된 모든 변수는 상수로 처리됩니다. 메서드 : 인터페이스에 모든 메서드는 추상 메서드입니다. 디폴트 메서드 : 구현코드가 없는 인터페이스에서 공통적으로 구현되야 하는 메서드가 있는 경우 추상클래스의 구현메서드 처럼 기본적인 구현을 가
다음과 같이 여러 정렬 구현 알고리즘이 입력에 따라 실행될 수 있도록 구현해 보세요.Sort인터페이스를 만들고 int\[] arr을 매개변수로하는 asceding()과 descending()메서드를 만든 후 default메서드로 description 을 추가합니다.인스
Object 클래스는 모든 클래스이 최상위 클래스로 모든 클래스는 Object 클래스에서 상속을 받습니다. 그렇기 때문에 모든 클래스는 Object클래스의 메서드를 사용 가능하고 그 중 일부는 재정의 하여 사용할 수 있습니다. 위치는 java.lang.Object 클래
자바의 모든 클래스와 인터페이스는 컴파일 후 class 파일로 생성됩니다. class파일에는 멤버변수, 메서드, 생성자 등 객체의 정보가 포함되어 있는데 Class 클래스는 이 class파일에서 객체에 정보를 가져올 수 있습니다.Class 클래스는 위와 같은 방법으로
날짜를 구현한 클래스 MyDate가 있습니다.날짜가 같으면 equals()메서드의 결과가 true가 되도록 구현해 보세요hashCode()메서드도 구현해 보세요.Mydate 클래스에 날짜를 구현할 수있도록 변수와 생성자를 입력합니다.equals()를 재정의하여 2개의
프로그램에 필요한 자료구조와 알고리즘을 구현해 놓은 라이브러리자료구조와 알고리즘은 데이터들을 어떤 구조로 관리했을 때 가장 효율적인 알고리즘을 적용해서 최적의 퍼포먼스를 보일 것인 것에 대한 내용.이 부분은 강사님이 애매하게 설명해주셔서 보충이 필요할 것 같다확실한건
Colletion의 하위 인터페이스객체를 순서에 따라 저장하고 관리하는데 필요한 메서드가 선언된 인터페이스배열의 기능이 구현하기 위한 메서드가 선언된다종류로 ArrayList, Vector, LinkedList가 있다객체 배열 클래스Vector는 자바2부터 제공된 클래
Stack은 이미 java에서 제공을 하고 Queue는 ArrayList를 통해 많이 사용되는데 둘다 ArrayList를 통해 구현해보도록 하겠습니다Last In First Out(LIFO) : 맨 마지막에 추가된 요소가 가장 먼저 꺼내지는 자료구조상자가 쌓여있는 구조
Colletion 의 개체를 순회하는 인터페이스iterator()메서드 호출Iterator에 선언된 메서드hasnext() 이후에 요소가 더 있는지 확인하는 메서드, 요소가 있다면 true 반환next() 다음에 있는 요소를 반환예제Colletion 하위의 인터페이스중
kye-value pair의 객체를 관리하는데 필요한 메서드가 정의 됨key는 중복 될 수 없음value는 중복되도 괜찮다검색을 위한 자료 구조key를 이용하여 값을 저장하거나 검색, 삭제 할때 사용하면 편리함내부적으로는 hash 방식으로 구현됨key가 되는 객체는 객