본문 바로가기

STUDY/국비과정

[JAVA 웹 개발 공부] 국비지원 9일차 - 이클립스 설치 및 사용, Eclipse 단축키, do-while문, 삼항연산자, 객체지향 프로그래밍

IDE

 

​통합 개발 환경(IDE)이란 프로그래머가 소프트웨어 코드를 효율적으로 개발하도록 돕는 소프트웨어 애플리케이션이다. 

코드편집기, 디버거, 컴파일러, 인터프리터 등을 포함하고 개발자에게 제공한다.

대표적으로 이클립스, 인텔리제이 등이 있다.

 

Eclipse 설치 및 환경설정

다운로드 후 압축해제하여 eclipse.exe 실행 > 원하는 위치에 폴더 생성 후 Workspace 지정하여 설치

2. 폰트 설정

Window > Preferences > font 입력 > Colors and Fonts > Basic > Text Font > Edit > 폰트 설정

3. UTF-8 설정

encoding UTF-8 설정 : Window > Preferences > Workspace > Text file encoding > Other : UTF-8 설정

4. 프로젝트 생성

Create a Java project 클릭 > Project name 작성 > JRE > JavaSE-1.8 확인 > Finish

5. 클래스 생성

생성한 프로젝트 안에 src(자바 소스 코드 저장공간) 우클릭 > New > Class > Name 작성 > Finish

메인 메소드를 만들 경우 public static void main(String[] args) 체크박스 체크하기

 
 

Eclipse 단축키

 

Ctrl + F11

실행(Run)

Ctrl + space

자동 완성

Ctrl + /

주석처리, 주석해제

Ctrl + D

현재 라인 삭제

Ctrl + Alt +↓ / Ctrl + Alt +↑

작성된 코드를 아래로 또는 위로 복사

Alt +↓ / Alt +↑

코드를 아래 또는 위로 이동

Ctrl + A / Ctrl + I

코드 들여쓰기

sysout 입력 + Ctrl + Space

System.out.println(); 자동입력

Alt + Shift + R

동일한 이름 한번에 변경

do-while문

 

do-while문은 while문의 기본적인 구조는 같으나 조건식과 블럭{}의 순서를 바꿔놓은 것이다.

그래서 while문과 반대로 블럭{}을 먼저 수행한 후에 조건식을 평가한다.

while문은 조건식의 결과에 따라 블럭{}이 한번도 수행되지 않을 수 있지만, do-while문은 최소한 한번은 수행될 것을 보장한다.

한번은 반드시 실행해야하는 경우, 사용자 입력을 한번은 받아야 하는 경우, 잘못하면 다시 입력받게 반복해야할 경우 등에 do-while문을 사용한다.

do {

     // 조건식의 연산결과가 참일 때 수행될 문장들을 적는다.

} while (조건식);

 

Random 클래스

 

1. Random 클래스란?

범위를 설정하면 난수를 생성하는 클래스다.

2. import java.util.Random;

Random 클래스는 java.util 패키지에 있으므로 "import java.util.Random;"를 작성하여 Random 클래스를 포함시켜준다.

3. Random 클래스명 = new Random();

기본 생성자를 사용해서 생성하면 현재 시스템 시간을 seed값으로 가지는 Random 객체를 생성한다.

ex) 랜덤으로 지정된 숫자 맞추기

사용자에게 입력을 받아서 랜덤으로 지정된 숫자보다 크거나 작으면 힌트를 준다.

틀릴 경우 반복하여 기회를 주고 정답을 맞추면 시도횟수를 알려주며 반복문이 종료된다.

Random 클래스를 사용하여 난수를 생성하고, do-while문을 이용해 정답을 맞출때까지 답을 입력받는 것을 반복하여 수행한다.

 

삼항연산자

 

조건식, 식1, 식2 세 개의 피연산자를 필요로 하며, 조건식의 결과에 따라 다른 결과를 반환한다.

(조건식) ? 식1 : 식2

조건식의 결과가 true이면 식1이, false이면 식2가 연산결과가 된다.

if else 문을 삼항연산자로 표현하면 한문장으로 간단하게 사용할 수 있다.

ex)

int a = 10;

String value = a == 10 ? "10입니다." : "10이 아닙니다.";

System.out.println(value); // "10입니다."

객체지향 프로그래밍(OOP)

 

1. 객체지향 프로그래밍(Object-Oriented Programming)

우리가 실생활에서 쓰는 모든 것을 객체라 하며, 객체 지향 프로그래밍은 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말한다. 객체는 클래스라는 틀에서 생겨난 실체(instance)이다.

*절차 지향

절차 지향 모델링은 프로그램을 기능중심으로 바라보는 방식으로 "무엇을 어떤 절차로 할 것인가?"가 핵심이 된다. 즉, 어떤 기능을 어떤 순서로 처리하는가에 초점을 맞춘다.

*객체 지향

객체 지향 모델링은 기능이 아닌 객체가 중심이 되며 "누가 어떤 일을 할 것인가?"가 핵심이 된다. 즉, 객체를 도출하고 각각의 역할을 정의해 나가는 것에 초점을 맞춘다.

*절차지향 vs 객체지향

대형 프로그래밍의 경우 많은 기능을 수반하기 때문에 절차 지향보다는 객체 지향이 적합하다.

각 객체가 하는 역할이 많아도, 많은 역할을 객체로 묶을 수 있기 때문이다.

소형 프로그래밍의 경우 작은 기능을 수반하기 때문에 객체 지향보다는 절차 지향이 적합하다.

작은 기능을 객체별로 나눌 경우, 오히려 복잡해질 수 있기 때문이다.

2. 객체지향 언어의 특징

(1) 코드의 재사용성이 높다.

(2) 코드의 관리가 용이하다.

(3) 신뢰성이 높은 프로그래밍을 가능하게 한다.

3. 객체지향 프로그래밍의 특징

(1) 캡슐화 : 서로 관련된 데이터와 알고리즘을 캡슐에 넣어서 보호한다는 것을 의미한다.

(2) 정보은닉 : 객체의 외부에서는 객체의 내부 데이터를 볼 수 없게 한다는 의미이다.

(3) 상속 : 기존에 만들어진 코드를 이어받아서 보다 쉽게 코드를 작성하는 기법이다.

(4) 다형성 : 객체의 동작이 실제 타입에 따라서 달라지는 것을 의미한다.

(5) 추상화 : 불필요한 정보를 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는 기법이다.

4. 객체와 클래스

객체란 실제로 존재하는 것. 사물 또는 개념을 뜻하며, 객체가 가지고 있는 기능과 속성에 따라 용도가 다르다.

클래스란 객체를 생성하는데 사용된다. 클래스는 객체의 형태를 정의하는 틀과 같은 것이므로 클래스에는 객체의 모든 속성과 기능이 정의되어있다. 클래스로부터 객체를 생성하면, 클래스에 정의된 속성과 기능을 가진 객체가 만들어지는 것이다.

5. 객체의 속성과 기능

객체는 속성과 기능, 두 종류의 구성요소로 이루어져 있으며, 일반적으로 객체는 다수의 속성과 다수의 기능을 갖는다. 즉, 객체는 속성과 기능의 집합이라고 할 수 있다.

그리고 객체가 가지고 있는 속성과 기능을 그 객체의 멤버라고 한다.

*속성 : 멤버변수, 필드, 특성, 상태

*기능 : 메서드, 함수, 행위

6. 인스턴스

클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다.

인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야한다.

*인스턴스의 생성과 사용

클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언

변수명 = new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장

메서드

 

1. 메서드

메서드(method)는 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것이다. 기본적으로 수학의 함수와 유사하며, 어떤 값을 입력하면 이 값으로 작업을 수행해서 결과를 반환한다.

메서드는 크게 두 부분, '선언부(header)'와 '구현부(body)'로 이루어져 있다.

반환타입 메서드이름 (타입 변수명, 타입 변수명, ... )​  => 선언부

{

     // 메서드 호출시 수행될 코드                                      => 구현부

}

2. 메서드 선언부(method header)

메서드가 작업을 수행하기 위해 어떤 값들을 필요로 하고 작업의 결과로 어떤 타입의 값을 반환하는지에 대한 정보를 제공한다.

 

*매개변수 선언(parameter declaration)

매개변수(parameter)는 메서드가 작업을 수행하는데 필요한 값들(입력)을 제공받기 위한 것이며, 필요한 값의 개수만큼 변수를 선언하며 각 변수 간의 구분은 쉼표','를 사용한다.

매개변수도 메서드 내에 선언된 것으로 간주되므로 '지역변수'이다.

*반환타입(return type)

메서드의 작업수행 결과(출력)인 '반환값'의 타입을 적는다. 반환값이 없는 경우 반환타입으로 'void'​를 적어야한다.

3. 메서드의 구현부(method body)

메서드의 선언부 다음에 오는 괄호{}를 '메서드의 구현부'라고 하는데, 여기에 메서드를 호출했을 때 수행될 문장들을 넣는다.

*return문

메서드의 반환타입이 'void'가 아닌 경우, 구현부{}안에 'return 반환값;'이 반드시 포함되어 있어야 한다.

이 값의 타입은 반환타입과 일치하거나 적어도 자동 형변환이 가능한 것이어야 한다.

*지역변수

메서드 내에 선언된 변수들은 그 메서드 내에서만 사용할 수 있으므로 서로 다른 메서드라면 같은 이름의 변수를 선언해도 된다. 이처럼 메서드 내에 선언된 변수를 '지역변수'라고 한다.

4. 메서드의 호출

메서드를 정의했어도 호출되지 않으면 아무 일도 일어나지 않는다. 메서드를 호출해야만 구현부{}의 문장들이 수행된다.

메서드이름(값1, 값2, ...); // 메서드를 호출하는 방법