전체 글 88

Java ■ 생성자, this, this()

◈ 생성자 ◈ 객체를 생성할 때 호출되며, 객체를 초기화하는 메소드 * 멤버 변수들을 기본값으로 초기화 • 생성자 호출 아래와 같이 이미 자신도 모르게 생성자를 호출해왔음 • 참고 생성자를 따로 만들지 않았는데, 위와 같이 사용이 가능했던 이유는 컴파일 시 생성자가 하나도 없을 경우 자동으로 생성자를 만들어줌 • 생성자 규칙 1. 클래스 이름과 동일해야 함 2. 리턴값이 없음 (void 없음) -> 생성자의 경우 항상 반환되는 값이 없기 때문에 void를 생략하고 사용함 3. 모든 클래스는 최소 1개 이상의 생성자를 가져야 함 -> 이러한 이유로 컴파일 시 생성자가 하나도 없다면 자동으로 생성해줌 • 생성자의 종류 생성자에는 기본 생성자와 매개변수가 있는 생성자가 있으며 기본 생성자는 매개변수가 하나도 ..

Java ■ 호출 스택과 기본형,참조형 매개변수

◈ 스택 vs 큐 ◈ • 스택(Stack) 쌓아 올리는 형태를 가진 자료구조이며 후입선출(LIFO, Last In First Out)의 구조 ex) 1. 데이터 0을 꺼내기 위해서는 데이터 1, 2를 모두 꺼내야 함 2. 데이터 1을 꺼내기 위해서는 데이터 2를 꺼내야 함 • 큐(Queue) 줄을 서서 기다리는 형태를 가진 자료구조이며 선입선출(FIFO, First In First Out)의 구조 ex) 1. 데이터 0을 바로 꺼낼 수 있음 2. 데이터 1을 꺼내기 위해서는 데이터 0을 먼저 꺼내야 함 ◈ 호출 스택(Call Stack) ◈ 메소드 호출과 관련된 정보를 저장하는 메모리 영역으로 후입선출(LIFO) 구조를 가짐 • 설명 main 메소드가 호출되어 스택에 올라가있는 상태 • 설명 main 메..

Java ■ 객체 배열

◈ 객체 배열 ◈ 객체를 배열 형태로 사용 • 인덱스(Index) 배열 내의 각 요소(element)에 접근하기 위해 사용되는 번호로써 인덱스는 0부터 시작함 ◈배열의 메모리 구조 ◈ 배열은 참조형 변수이기 때문에 힙 메모리에 값을 저장함 ◈ 객체 배열의 메모리 구조 ◈ • 설명 객체 배열은 동적으로 크기가 결정되기 때문에 일반 배열과는 다름 ◈ 객체 배열의 선언과 할당 ◈ • 객체 배열 선언 1. 클래스[] 배열명; 2. 클래스 배열명[]; • 객체 배열 생성 1. 클래스[] 배열명 = new 클래스[배열크기]; 2. 클래스 배열명[] = new 클래스[배열크기]; • 각각 배열 인덱스의 객체 생성 1. 배열명[인덱스] = new 클래스(); • 객체 배열 선언+생성+객체화 클래스[] 배열명 = { n..

Java ■ 객체 문제풀이

문 제 풀 이 [Q1] 오버로딩을 활용하여 덧셈을 수행하는 계산기 프로그램을 만드시오. 1. 스캐너로 사용자로부터 숫자를 입력받으세요. 2. 오버로딩을 활용하여 덧셈을 수행하고 결과를 출력하세요. 3. 클래스명 : QuizCalc 4. 메소드명 : add 5. 정수와 실수도 같이 계산이 가능해야 합니다. (ex. 3+3.5) 6. 오버로딩은 총 5개 이상 활용 하세요. [Q2] 멤버 변수를 활용하여 물품 구매 기능을 구현하시오. 1. Buy 클래스 생성 2. 초기 금액(소지금)을 설정하기 위한 변수 설정 -> int balance = 100000 3. 물건들의 가격 설정 (상수) -> 모니터 20000 (변수명 : MONITOR_PRICE) -> 모니터 18000 (변수명 : MOUSE_PRICE) ->..

Java ■ 객체

◈ 객체 지향 프로그래밍 (Object-Oriented Programming, OOP) ◈ 프로그래밍에서 필요한 데이터들을 추상화 시켜 객체를 만들고, 객체들간의 상호작용을 통해 프로그램을 개발하는 프로그래밍 패러다임 중의 하나 • 자바 객체 지향 개념에서의 핵심 4가지 캡슐화, 상속, 추상화, 다형성 • 캡슐화(Encapsulation) 변수와 메서드를 클래스로 묶어 독립적으로 동작하지 않도록 하거나 불필요한 정보를 노출시키지 않는 개념 1. 코드의 유지보수성을 향상 2. 객체의 내부 구현을 외부로부터 숨김 (정보 은닉) 3. 객체의 내부 상태를 제어하고, 잘못된 접근으로부터 보호함 • 상속(Inheritance) 부모 클래스가 가지고 있는 것을 자식 클래스가 물려받아 확장(extends)하는 개념 1..

Java ■ 배열(Array)

◈ 배열 ◈ 같은 자료형을 가진 변수를 하나로 묶어 관리함 • 인덱스(Index) 배열 내의 각 요소(element)에 접근하기 위해 사용되는 번호로써 인덱스는 0부터 시작함 ◈ 배열의 메모리 구조 ◈ 배열은 참조형 변수이기 때문에 힙 메모리에 값을 저장함. ◈ 배열의 선언과 할당 ◈ • 배열 선언 1. 자료형[] 배열명; 2. 자료형 배열명[]; • 배열 할당 1. 자료형[] 배열명 = new 자료형[배열크기]; (사용 권장) 2. 자료형 배열명[] = new 자료형[배열크기]; • 참고 개발자 스타일에 따라 조금씩 다르지만, 대부분 1번 형식을 선호함. 1. 가독성 : 자료형에 []가 직접적으로 연결되어 있어 배열임을 쉽게 파악 가능 2. 일관성 : 자바에서는 1번 형식을 권장하고 있어, 대부분의 코..

Java ■ 제어문(반복문)

◈ 반복문 ◈ 지정한 횟수 또는 조건에 따라 반복하여 실행하며 개발자에 따라 코드의 가독성이 좋아지거나, 코드 중복을 줄일 수 있음 ◈ for문 ◈ 초기식, 조건식, 증감식으로 구성되며 반복할 횟수를 알고 있는 경우에 사용함. 대부분의 경우 for문으로 사용됨. for(초기식; 조건식; 증감식) { 반복 실행할 코드 } *특정 조건이 만족할 때 까지 코드를 반복 ex) • for문 활용하기 (1) 스캐너를 통해 입력 받은 값 만큼 반복 • for문 활용하기 (2) 문자열의 길이만큼 반복 할 때는 입력 받은 변수.length()를 사용하여 문자열 길이만큼 반복 횟수를 지정함 ◈ 중첩 for문 ◈ 1. 첫번째 for문이 실행 : i = 0 2. 안에 있는 for문이 실행 : j = 0부터 9까지 반복 3. ..

Java ■ 제어문(조건문)

◈ 제어문 ◈ 프로그램의 흐름을 제어한다고 하여 제어문이라고 함. • 제어문의 종류 1. 조건문 : if, switch 2. 반복문 : for, while, do-while 3. 제어문 : break, continue * 조건문, 반복문 안에서 또 다른 흐름을 제어하는 역할 ◈ 조건문 ◈ 특정 조건을 검사하여, 참(true)이면 코드를 실행하고 거짓(false)이면 실행하지 않음 ◈ if문 ◈ 어떠한 조건이 만족되었을 때 명령을 수행할 수 있도록 해주는 문법 개발자가 가장 자주 사용하는 제어문으로, 특정 범위나 여러가지 케이스에 대한 대응이 가능함. - 조건이 참(true)일 경우 { } 안의 코드가 실행 - 조건이 거짓(false)일 경우 실행되지 않음 ex) • if 문 활용하기 - 스캐너를 통해 입..

Java ■ 연산자(Operator)

◈ 연산자 (Operator) ◈ 특정 변수나 리터럴(값)에 대해 주어진 식을 계산하여 결과를 얻어내는 연산을 수행하는 기호 ◈ 연산자 우선 순위 ◈ ◈ 산술 연산자 ◈ • 산술 연산자(+, -, *, /, %) 사칙연산(+, -, *, /)과 나머지 값을 구하는 나머지 연산자(%)를 뜻함 ex) ◈ 증감 연산자 ◈ • 증감 연산자(++, --) : 피연산자를 1 증가 또는 감소 시킴 ex) ◈ 전/후위 증감 연산자 ◈ 증감 연산자의 위치에 따라 피연산자의 값을 1 증가 또는 감소한다. • 전위 연산자 • 후위 연산자 ◈ 비교 연산자 ◈ • 비교 연산자(>,

Java ■ 변수(Variable)

◈ 변수 ◈ : 어떠한 값(data)을 저장할 수 있는 저장 공간 ex) 변수를 사용하지 않을 경우 아래와 같이 100을 수정하기 위해서 하나하나 총7번 수정해야함. 여기서 변수를 사용하면 총 1번만 수정하면 끝! ◈ 변수 선언 ◈ : 메모리에 값(data)을 저장할 공간을 확보하는 과정 ◈ 선언 방법 ◈ : 자료형 변수명 ; ◈ 자료형(Data Type) • 자료형의 크기 ◈ 바이트(byte)와 비트(bit) ◈ • 비트(bit) : 컴퓨터에서 정보를 표현하기 위한 최소 단위로써 0 또는 1로 표현됨 • 바이트(byte) : 1byte는 8개의 bit로 이루어진 단위를 의미함 (1byte = 8bit) ◈ 변수명 네이밍 규칙 ◈ 대소문자를 구분하며 길이 제한이 없음. 예약어 사용 불가 ex) int ,..