전체 글 (74)

━━━━ ◇ ━━━━
Java/Java 공부

클래스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package Class;
 
class Car{ //클래스 명은 일반적으로 대문자로 시작한다.
  //멤버변수
  String color;
  int speed;
  int gear;
  
  //멤버메소드
  void print(){
    System.out.println("( "+color+", "+speed+", "+gear+" )");
  }
}
public class CarTest {
 
  public static void main(String[] args) {
    Car myCar = new Car(); // 객체 생성
    myCar.color = "red";
    myCar.speed = 0;
    myCar.gear = 1;
    
    myCar.print();
  }
 
}
 

cs


클래스란 특정한 종류의 객체들을 찍어내는 형틀(template) 또는 청사진(blueprint)이라 할 수 있다.

클래스로부터 만들어지는 각각의 객체를 그 클래스의 인스턴스(instance)라고 한다.


위의 소스코드를 보면 Car 라는 이름을 가진 클래스가 만들어져있다. (3번줄에서 13번줄까지)

Car클래스는 color, speed, gear라는 변수(속성)와 print() 라는 메소드(동작)를 가지고 있다.

즉, Car클래스로 만들어낸 객체는 color, speed, gear라는 변수와 print()라는 메소드를 가지고 만들어진다.


14번줄에서 25번 줄까지의 소스는 Car 클래스를 실험하기 위한 공간이다.

16번줄을 main메소드라고 부르는데, 이 메소드에서 프로그램이 실행된다.


17번줄의 new 연산자를 사용하여 Car클래스로 myCar라는 이름을 가진 객체를 만들었다.

객체를 만든다는 것은 메모리에 관련된 정보들을 저장할 공간을 할당했다는 뜻이다.

도트연산자(.)를 사용하여서 18번줄에서 20번줄까지 myCar의 속성(변수)들에게 값을 할당하였다.

이렇게 할당된 값들은 좀전에 생성한 메모리공간에 저장될 것이다.


Car클래스가 가진 print()메소드를 myCar객체에서 호출하였더니(22번줄)

10번줄에서 12번줄 사이에 정의되어 있던 print()메소드의 로직이 그대로 동작하여 아래와 같은 결과를 도출한다.



18~20번줄에서 저장된 값들이 호출된것을 확인 할 수 있다.


1
2
3
4
5
6
    Car yourCar = new Car();
    yourCar.color = "blue";
    yourCar.speed = 60;
    yourCar.gear = 3;
    
    yourCar.print();
cs

 

 

 


main메소드 안에  Car클래스로 yourCar라는 새로운 인스턴스를 만들었다.

yourCar 는 myCar와 다른 속성(변수)들을 가지고 있다.

하지만 color, speed, gear와 print()를 가지고 있는 것은 같다.

클래스 Car를 이용하면 속성들의 값만 입력해주면 쉽게 yourCar를 만들수 있다.


 


이처럼 클래스란 객체를 쉽게 만들기 위해서 각 객체의 공통된 속성과 동작들을 미리 만들어 놓은 틀이다.


'Java > Java 공부' 카테고리의 다른 글

String 클래스  (0) 2016.07.18
메소드  (0) 2016.07.18
객체 지향 프로그래밍  (0) 2016.07.18
break 와 continue  (0) 2016.07.18
반복문  (0) 2016.07.18
COMMENT
━━━━ ◇ ━━━━
Java/Java 공부

객체 지향 프로그래밍

[java 이론] 10. 객체 지향 프로그래밍


▽▼▽▼▽▼▽▼▽▼▽▼

이번 포스트의 내용


1. 객체 지향이란?

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

3.객체

4.메시지

△▲△▲△▲△▲△▲△▲


01. 객체 지향이란?


+ 기존에는 절차 지향 프로그래밍(procedural programming)이 많이 사용되었다. 

+ 절차 지향 프로그래밍은 문제를 해결하는 절차를 중요하게 생각하는 방법이다.

+ 즉, 프로그램을 짤때 어떤 함수를 사용할까가 이 방법의 핵심이라고 할 수 있다.


+ 최근에는 객체 지향 프로그래밍을 많이 사용한다.

+ 객체 지향 프로그래밍(object-oriented programming:OOP)은 실제 세계가 객체(object)들로 구성되어 있는 것과 비슷하게 소프트웨어도 객체 단위로 작성하는 방법을 말한다.

+ 다양한 기능을 하는 소프트웨어 객체들이 존재하고 이러한 객체들을 조합하여 자기가 원하는 기능을 구현하는 기법이다.

+ 예를 들어 자동차 라는 객체를 만들어 놓으면, 슈퍼카를 만들때에는 자동차라는 객체의 기능(움직인다, 멈춘다 등)을 받아와서 좀더 구체적(엔진, 터보 등)으로 만드는 방법이다. 트럭을 만들때에도 자동차라는 객체의 기능을 받아와서 트럭의 특징을 구체적으로 만든다. 이런식으로 객체단위로 기능을 설정하고 해당 객체를 실행하는 방법이 객체 지향 프로그래밍이다. 


▲ 파워 자바, 142쪽, 인피니티북스



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


★ 캡슐화(encapsulation)

+ 지금까지 소프트웨어 개발이 힘들었던 이유는 이전의 사람들이 작성하였던 수많은 코드가 있음에도 불구하고 새로운 소프트웨어를 개발하기 위해서는 다시 처음부터 모든 것을 개발하여야 한다는 점 때문이다.

+ 캡슐화는 데이터와 알고리즘을 캡슐에 넣어서 포장한다는 의미이다. 객체 지향에서는 이 캡슐을 클래스라고 부른다.

+ 만약 자기가 필요로 하는 클래스가 다른 사람에 의해서 작성되어서 이미 존재한다면 언제든지 가져다가 사용할 수 있다. 또 이 클래스는 이미 그 방면의 전문가가 테스트와 디버그를 마쳤기 때문에 안심하고 사용할 수 있다.

+ 따라서 개발자들은 보다 손쉽게 자신이 원하는 애플리케이션을 제작할 수 있다.


+ 캡슐화는 또한 내부의 데이터를 캡슐로 보호하는 역할도 한다. 이것을 정보 은닉(information hiding)이라고 한다.

+ 객체의 내부 데이터를 보호하고 사용자에게는 개체가 제공하는 메소드를 통하여 접근토록 해놓은 것이다.

+ 누구나 함부로 객체 내부의 데이터를 수정할 수 있다면 또 다른 사람이 객체를 사용하때 문제가 생길 수도 있기 때문이다.


★ 상속

+ 상속은 기존의 코드를 재활용하기 위한 기법으로 이미 작성된 클래스(부모 클래스=수퍼 클래스)를 이어받아서 새로운 클래스(자식 클래스=서브 클래스)를 생성하는 기법이다.

+ 자식 클래스는 부모 클래스의 모든 속성과 기능을 물려받는다.

+ 다른 사람의 클래스를 상속받아서 자신이 필요한 부분을 변경하여서 사용하면 된다.


★ 다형성

+ 다형성이란 객체가 취하는 동작이 상황에 따라서 달라지는 것을 말한다.

+ 예를 들어 말하다 라는 기능을 가진 부모 클래스를 상속받아서 개, 고양이 등의 자식 클래스를 만들었다면, 말하다 라는 기능을 사용하였을때, 각각 '멍멍','야옹' 이라는 결과가 나타날 것이다.

+ 프로그래머는 이 기능을 활용하여 보다 효율적인 코딩을 할 수 있다.


★ 객체 지향의 장점 정리

+ 신뢰성 있는 소프트웨어를 쉽게 작성할 수 있다.

+ 코드를 재사용 하기 쉽다.

+ 업그레이드가 쉽다.

+ 디버깅이 쉽다.



03. 객체(object)


+ 객체는 객체 지향 기술의 핵심 개념이다.

+ 객체는 상태와 동작을 가지고 있다.

+ 객체의 상태는 그 객체의 특징 또는 속성을 말한다.

+ 객체의 동작은 그 객체가 하는 기능을 뜻한다.


+ 예를 들어 자동차라는 객체의 경우, 속성은 차종, 색상, 현재 속도, 현재 기어 등등이다.

+ 자동차 객체의 기능은 출발하기, 멈추기, 가속하기, 감속하기 등이다.


+ 객체의 속성과 기능을 소프트웨어에서 각각 필드(field)와 메소드(method)라고 부른다.

▲ 파워 자바, 146쪽, 인피니티북스



04. 메시지


+ 대부분의 유용한 프로그램은 여러 개의 객체를 가지고 있고, 작업은 이 객체들의 상호 작용으로 이루어지며, 객체들이 다른 것들과 상호 작용하기 위해서는 어떤 종류의 통신 메커니즘을 필요로 한다.

+ 객체는 메시지(message)를 통해 다른 객체와 통신하고 서로 상호 작용을 한다.

+ 객체 지향 환경에서 메시지 전달은 "메소드 호출"로 구현된다. 즉, 객체가 다른 객체로 메시지를 보낼때, 실제로는 다른 객체의 메소드를 호출하는 것이다.

Car.setSpeed(100); 라는 코드가 있다고 하자.

Car = 메시지를 받는 객체 = Car 라는 이름을 가진 클래스에서

setSpeed = 메시지의 이름 = setSpeed 라는 이름을 가진 메소드(기능)을 사용하여

(100) = 메시지의 매개변수 = 100 이라는 값을 주어라

+ 자바에서는 객체들이 네트워크상의 서로 다른 위치에 존재한다고 해도 서로 메시지를 주고 받을 수 있다.





'Java > Java 공부' 카테고리의 다른 글

메소드  (0) 2016.07.18
클래스  (0) 2016.07.18
break 와 continue  (0) 2016.07.18
반복문  (0) 2016.07.18
조건문  (0) 2016.07.18
COMMENT
━━━━ ◇ ━━━━
Java/Java 공부

break 와 continue

[java 이론] 09. break 와 continue


▽▼▽▼▽▼▽▼▽▼▽▼

이번 포스트의 내용


1. break

2. continue

△▲△▲△▲△▲△▲△▲


01. break


+ break 는 반복 루프를 종료시키는 문법이다.

+ 특정한 레이블(이름표)이 없으면 현재 break가 들어가 있는 루프를 종료한다.

+ while 문의 조건식 란에 true를 넣으면 무한 반복문이 된다.

+ 이때 break가 없으면 n은 무한히 커질것이다.

+ if 문에서 n이 10이되면 break문을 실행하도록 하였기 때문에, 다음 문장인 println 은 실행되지 않고 루프가 종료되었다.


+ i가 51이 되는 순간 break 가 작동한다.

+ 레이블이 없는 경우에 break 는 각각이 속한 루프를 종료시킨다.

 

+ 레이블이 있는 경우 break 는 붙어있는 레이블의 루프를 종료시킨다.



02. continue


+ continue 는 반복문에서 continue 문장이 실행되는 시점에서 현재의 반복을 종료하고 다음 반복을 다시 시작하게 한다. 즉, 남은 문장은 건너뛰게 된다.

+ break 와 마찬가지로 레이블이 없으면 현재 속한 루프를 다시 시작하도록 한다.

+ 위 예의 if 문에서 홀수는 continue 가 실행되어 프린트 되지 않고 다음 루프가 실행된다.


+ 여기서도 i +3 이 20을 넘어가는 순간 continue가 실행되어 마지막에는 +가 프린트 되지 않는다.

+ 결과창에서 확인하면 18 뒤에는 +가 없는 것을 확인 할 수 있다.

'Java > Java 공부' 카테고리의 다른 글

클래스  (0) 2016.07.18
객체 지향 프로그래밍  (0) 2016.07.18
반복문  (0) 2016.07.18
조건문  (0) 2016.07.18
연산자 (operator)  (0) 2016.07.18
COMMENT
━━━━ ◇ ━━━━
Java/Java 공부

반복문

[java 이론] 08. 반복문


▽▼▽▼▽▼▽▼▽▼▽▼

이번 포스트의 내용


1. while 문

2. for 문     

△▲△▲△▲△▲△▲△▲



 

1. while 문

+ 반복 처리는 같은 처리 과정을 여러 번 되풀이하는 것이다.

+ 단순한 반복작업을 사람이 1000번 10000번 반복하는 것은 비효율적이다.

+ 컴퓨터는 인간이 수행할 경우 막대한 시간이 소요되는 반복작업을 빠르고 정확하게 처리 할 수 있다.

+ 반복문에는 크게 while문과 for문이 있다. ​ 

+ while 문은 미리 반복 횟수를 알수 없고 조건에 따라서 반복하는 경우에 사용한다.

+ for 문은 정해진 횟수만큼 반복하는 경우에 사용된다.



★ while 문

+ while 문의 문법


 while (조건식) {

 반복할 문장;

 }


+ 조건식이 참이면 블록(중괄호로 묶여져 있는 문장들)을 반복적으로 실행한다.

+ 조건식이 거짓으로 계산될 때까지 조건식의 계산과 반복 문장의 실행이 계속된다.


 


+ 만약 무한 반복이 필요한 경우라면 조건식에 true 를 넣으면 된다.

+ while 문은 참이면 반복하는 문법이기 때문에 조건식이 true 면 항상 참이고, 그 결과 무한히 반복하는 코드를 볼 수 있을 것이다.


 while (true) {

 반복할 문장;

 }



★ do-while 문

+ do-while 문은 while 문과 반대로 먼저 반복 문​장을 실행하고 조건을 나중에 검사하는 반복 구조이다.

+ do-while 문의 문법


 do {

 반복할 문장;

 } while (조건식);

+ do-while과 while의 차이점은 do-while은 조건식을 루프 구조의 바닥에서 계산하기 때문에

+ do 블록 안에 있는 문장이 적어도 한 번은 실행 된다는 점이다.

 

 ▲ 숫자 알아맞히기 게임은 do-while 문과 if문을 사용하여 만들어 보았다.



2. for 문


★ for 문 (=for loop)


+ for 문은 일정한 횟수만큼 반복할 때 유용하게 사용

+ 흔히 for 루프라고 부름

+ 왜냐하면 특정한 조건이 만족될 때까지 반복적으로 루프를 돌기 때문

+ for 문의 문법

 for (초기식; 조건식; 증감식) {

 반복할 문장

 }


+ 초기식은 루프를 초기화 한다. 루프가 시작될 때 딱 한 번 실행된다.

+ 조건식이 참(true)이면 반복할 문장이 실행된다. 조건식이 거짓(false)이면 루프가 종료된다.

+ 증감식은 한 번의 반복 뒤에 실행된다. 대부분 증감식은 루프 제어 변수를 증가하거나 감소하는 역할을 한다.

+ 루프 제어 변수란 루프를 제어할 목적으로만 사용하는 변수이다.



▲ for문 예제 및 풀이



★ 중첩 for문


+ 반복문 안에 다른 반복문이 실행 될수 있다.

+ 외부에 위치하는 반복문을 바깥쪽 반복문(outer loop)라 하고, 내부에 위치하는 반복문을 안쪽 반복문(inner loop)라고 한다.

+ 중첩 반복문에서 가장 주의할 점은 각각의 반복문을 제어하는 변수가 서로 달라야 한다는 점이다.

+ 만약 같은 변수가 사용되면 논리적인 오류가 발생할 가능성이 높다.


 


▲ 중첩 반복문의 예제


+ 9번 줄을 보자. 루프 제어 변수인 i 와 j 가 어떻게 변하는지를 콘솔창에 보여지도록 문장을 짰다.

이를 통해 중첩 반복문이 어떤식으로 진행되는지 살펴보자.


+ 첫번째 루프

+ 우선 처음에 변수 i = 0 , j = 0 이다. (7번줄 과 8번줄 초기식)

+ 변수들의 값이 콘솔창에 출력되었다. (9번줄 i = 0 , j = 0)

+ 이너 루프가 종료되면서 j 값은 1이 되었다. 후치수식이므로 기존의 j값이 한번 사용된 후에 증감이 이루어 진것 (8번줄 증감식)

+ 이너 루프의 두번째 루프가 시작된다. (8번줄 조건식)

+ 변수들의 값이 콘솔창에 출력되었다. (9번줄 i = 0 , j = 1)

+ 이너 루프의 두번째 루프가 종료되면서 j값은 2가 되었다. (8번줄 증감식)

+ 이너 루프의 세번째 루프가 시작된다. (8번줄 조건식)

+ 이너 루프의 세번째 루프는 거짓(false) 이므로 이너 루프가 종료된다.

+ 아우터 루프가 계속 실행되고 공백이 출력되었다. (11번줄)

+ 아우터 루프가 종료되면서 i 값은 1이 되었다. 역시 후치수식 (7번줄 증감식)


+ 두번째 루프

+ 변수 i가 3보다 작으므로(현재1) 아우터 루프의 두번째 루프가 시작된다. (7번줄 조건식)

+ 이너 루프가 실행된다. (8번줄 초기식)

+ 변수들의 값이 콘솔창에 출력된다. ( 9번줄 1 , j = 0 )

+ 이너 루프가 종료되면서 j 값은 1이 된다. (8번줄 증감식)

+ 이너 루프의 두번째 루프가 실행된다. (8번줄 조건식)

+ 변수들의 값이 콘솔창에 출력된다. ( 9번줄 i = 1 , j = 1 )

+ 이너 루프가 종료되면서 j 값은 2이 된다. (8번줄 증감식)

+ 이너 루프의 세번째 루프가 실행된다. (8번줄 조건식)

+ 이너 루프의 세번째 루프는 거짓 이므로 이너 루프가 종료된다.

+ 아우터 루프가 계속 실행되고 공백이 출력된다. (11번줄)

+ 아우터 루프가 종료되면서 i 값은 2가 된다. 후치수식의 결과 (7번줄 증감식)


+ 세번째 루프는 생략


+ 글을 읽으며 손으로 따라가 보면 쉽게 중첩 반복문의 진행 순서를 이해할 수 있을 것이라 본다.


'Java > Java 공부' 카테고리의 다른 글

객체 지향 프로그래밍  (0) 2016.07.18
break 와 continue  (0) 2016.07.18
조건문  (0) 2016.07.18
연산자 (operator)  (0) 2016.07.18
변수 (variable)  (0) 2016.07.18
COMMENT
━━━━ ◇ ━━━━
Java/Java 공부

조건문

[java 이론] 07. 조건문


▽▼▽▼▽▼▽▼▽▼▽▼

이번 포스트의 내용


  1. if 문           

2. switch 문

△▲△▲△▲△▲△▲△▲



1. if 문


+ 프로그램의 각 문장들은 위에서 아래로 순차적으로 실행된다.

+ 제어문(control statement)을 사용하면 그 순서를 바꿀 수 있다.

+ 제어문에는 조건문과 반복문이 있다.

+ 조건문은 조건을 만족하느냐 못하느냐에 따라 다른 문장이 실행되도록 한다.

+ 반복문은 설정한 구간에서 조건을 만족할때까지 반복 실행되도록 한다.


★ if - else 문

+ if-else 문의 형식

 


 if ( 조건식 )

 문장1;

 else

 문장2;

 

+ 조건식이 참(true)이면 문장1을 실행하고, 거짓(false)이면 문장2를 실행한다.

+ 문장1을 다른 말로 then 절 (then clause) 라고 하며, 문장2를 다른 말로 else 절 (else clause) 이라고 한다.


 


+ 박스 친 부분이 if 절이다.

+ score 가 80 이상이면, "합격입니다." 문구를, score가 80미만이면, "불합격입니다." 문구가 콘솔창에 표시 될 것이다.

+ 설정된 변수 score 가 60 이므로 콘솔창에 "불합격입니다."가 표시될 것이다.


+ 만약 조건에 따라서 두 개 이상의 문장이 실행되어야 한다면 중괄호를 이용하여 문장들을 묶어서 한번에 실행시킬 수 있다. 이러한 문장 그룹핑을 복합문 (compound statement) 또는 블록(block) 이라고 한다.


 


+ 중괄호에 의해서 2개의 문장이 한꺼번에 실행된다.

+ 중괄호가 없으면 바로 아래의 문장만 실행된다.


☆ 중첩 if 문

+ if문도 하나의 문장이다. 따라서 if-else 문의 문장1 이나 문장2에 다른 if 문이 들어갈 수도 있다.


 


+ 숫자가 100보다 크다가 참일때, 숫자를 2로 나눈 나머지가 0이다가 참이면 짝수, 거짓이면 홀수

+ 숫자가 100보다 크다가 거짓일때, "0~100"사이의 값을 입력하세요." 문구가 표시된다.


★ 연속적인 if 문


+ 여러 가지 조건에 의해 다중으로 분기되는 결정을 내려야 하는 경우

+ if 문 다음에 else if 문을 계속적으로 사용

+ 하나의 조건식이 참이면 관련된 문장이나 블록이 수행되고, 더 이상의 비교는 이루어지지 않는다.


 


+ 첫 조건이 참이면 바로 문장1을 실행하고 종료, 거짓이면 다음 조건으로

+ 두번째 조건이 참이면 그 다음 문장을 실행하고 종료, 거짓이면 그 다음 조건으로

+ 이런식으로 밑으로 계속 내려간다.


☆ 중첩 if + 연속 if


+ 중첩 if 와 연속 if 를 함께 사용할 수도 있다.

+ 위는 사용자가 월을 입력하면, 계절이 표시되는 프로그램을 만들어 보았다. 

+ 다양한 방법으로 만들수 있는데, 나는 연속적인 if 문을 사용하여 만들었다.

+ 조건식에는 관계연산자 == 과 논리연산자 || 를 이용하였다.


2. switch 문


+ switch 문은 switch안에 들어 있는 수식을 계산하여서 case 절과 비교한다.

+ 집에서 전등 스위치를 켜는 것과 유사하다.

+ 어떤 스위치를 누르냐에 따라 방의 불이 켜지기도 하고, 화장실의 불이 켜지기도 한다.

+ 마찬가지로 switch안의 수식의 결과에 따라 다양한 case가 실행되는 것이다.

+ switch 문은 정수형(byte, short, int, long)에 대해서만 동작한다.



+ 수식은 입력받은 숫자

+ 0 이면 "없음"

+ 1 이면 "하나"

+ 2 이면 "둘"

+ 나머지는 "많음"



+ if 문에서 만들어 보았던 계절구하는 프로그램을 switch문으로 만들어 보았다.



'Java > Java 공부' 카테고리의 다른 글

break 와 continue  (0) 2016.07.18
반복문  (0) 2016.07.18
연산자 (operator)  (0) 2016.07.18
변수 (variable)  (0) 2016.07.18
Java Programming basic  (0) 2016.07.18
COMMENT
━━━━ ◇ ━━━━
Java/Java 공부

연산자 (operator)

CH05 변수, 연산자, 수식


03. 연산자


+ 연산자(operator)는 특정한 연산을 나타내는 기호

+ 피연산자(operand)는 연산의 대상

+ 예 ) a + b 


a, b - 피 연산자

+ - 연산자


★ 연산자

 

▲ 자바에서 지원하는 연산자, 출처: 교재 84쪽


+ 연산자들 사이에는 우선순위가 존재한다.

+ 위 스샷에서 위에 있을 수록 우선 순위가 높다.

+ 우선 순위가 높을 수록 연산시 먼저 실행된다.

+ 우선 순위가 같은 연산자는 대입 연산자를 제외하고 왼쪽에서 오른쪽으로 계산한다.

+ 대입 연산자는 오른쪽에서 왼쪽으로 계산한다.



04. 대입, 산술, 단항 연산자


★ 대입 연산자

+ 대입 연산자(=)는 왼쪽에 있는 변수에 오른쪽에 있는 수식의 값을 계산하여 대입한다.

+ 왼쪽은 반드시 변수이어야 한다.


★ 산술 연산자


 

▲ 산술 연산자의 종류, 교재 87쪽


 

▲ 산술 연산자를 이클립스로 돌려본 스크립트


+ 사칙연산은 비교적 익숙할것

+ 나누기(/)의 경우 소수점 이하는 버리고 몫만 나옴

+ 나머지(%)의 경우 몫은 버리고 나머지만 나옴


★ 단항 연산자


▲ 단항 연산자의 종류, 교재 88 쪽


+ 증감 연산자는 ++ 기호나 -- 기호를 사용하여 변수의 값을 증가시키거나 감소시키는 연산자

+ 증감 연산자가 피연산자의 앞에 붙냐 뒤에 붙냐에 따라 해석이 다름

+ 앞에 붙으면 전치수식 이라하여, 먼저 증감한 뒤에 변수를 사용함

+ 뒤에 붙으면 후치수식 이라하여, 먼저 변수를 사용하고 그 후에 증감을 실행함



+ 10번줄: 'n' 은 i 값이 먼저 대입 된 다음에 ++ 한다. 그래서 n = 1

+ 11번줄: 'i' 는 n을 계산하는 과정에서 ++ 되었다. 그래서 i = 2

+ 12번줄: 'j' 도 m을 계산하는 과정에서 ++ 되었다. 그래서 j = 2

+ 13번줄: 'm' 은 ++한 j 값이 대입되었다. 그래서 m = 2 


★ 복합 대입 연산자


 

▲복합 대입 연산자의 종류와 의미

  


+ 대입 연산자(=)와 산술 연산자를 합쳐 놓은 연산자

+ 소스를 간결하게 만들기 위해 사용
 

★ 관계 연산자


 

▲ 관계 연산자의 종류와 의미, 출처: 교재 89쪽

 


+ 두개의 피 연산자를 비교하기 위해 사용

+ 그 결과는 참(true)과 거짓(false)으로 나온다.


★ 논리 연산자

 

▲ 논리 연산자, 출처: 교재 90쪽

★ 삼항 연산자

+ 논리연산자의 확장판 같은 것

+ 첫번째 항의 연산결과가 참이면 두번째 항을, 거짓이면 세번째 항을 결과값으로 가진다.

+ 방법 : 조건식 ? 참 : 거짓

→ 세미콜론(;)이 아니라 콜론(:) 임을 주의해야 함.



05. 형변환


+ 형변환(cast)은 어떤 자료형의 값을 다른 자료형의 값으로 바꾸어 주는 연산

+ 방법

→ (새로운 자료형) 수식;


예) y = (double) x;

→ int형인 x를 위와 같이 double형으로 형변환하여 y에 대입할 수 있다.


★ 자동적인 형변환

+ 자바는 자동으로 형변환을 한다.

+ 수식에 서로 다른 자료형이 등장하면 그 중 가장 큰 타입으로 변환한다.


예) double d = 1 + 1.1;

→ 1은 정수지만 실수인 1.0으로 변환된 후에 1.1과 더해져 2.1이 된다.


★ 축소 변환(narrowing conversion)

+ 더 작은 크기의 타입으로 형변환

+ 정밀한 숫자나 큰 숫자를 나타내는 정보를 잃을 가능성이 있다.


예) int i = (int) 1.1;

→ 1.1은 실수지만 정수형으로 형변환 하였기 때문에 i 에는 1만 저장된다.


★ 확대 변환(widening conversion)

+ 더 큰 크기의 타입으로 형변환


예) double d = (double) 1;

→ 정수 1이 실수 1.0으로 형변환 되어 저장

→ 정수 10을 실수 3.0으로 나눈 결과 실수3.3333333333333 이 나옴



'Java > Java 공부' 카테고리의 다른 글

반복문  (0) 2016.07.18
조건문  (0) 2016.07.18
변수 (variable)  (0) 2016.07.18
Java Programming basic  (0) 2016.07.18
이클립스 (Eclipse) 설치  (1) 2016.07.18
COMMENT
━━━━ ◇ ━━━━
Java/Java 공부

변수 (variable)

CH05 변수, 연산자, 수식


01. 변수와 자료형


 변수란?

+ 변수는 데이터를 담아두는 상자와 같다.

+ 변수는 저장된 값의 변경이 가능하지만, 상수는 저장된 값의 변경이 불가능 하다.


+ 자바에는 크게 나누어 기본형(primitive type)과 참조형(reference type)의 두 가지 타입의 변수가 있다.

+ 기본형은 다시 정수형, 실수형, 문자형, 논리형이 있고, 참조형은 클래스, 배열, 인터페이스 등이 있다.

+ 기본형 변수에는 변수의 값(value)이 저장되고, 참조형 변수에는 객체의 위치(참조 또는 주소)가 들어가 있다.


★ 변수의 선언

+ 변수는 사용하기 전에 미리 선언을 해야한다.

+ 변수를 선언하는 방법은 원하는 자료형을 쓰고 이어서 변수 이름을 쓰면 된다.

+ 변수 선언도 하나의 문장이므로 반드시 세미콜론으로 종료하여야 한다.


예 ) int size ;


int - 정수형을 뜻하는 type

size - 변수의 이름

; - 문장의 종료


+ 변수가 선언되어도 변수의 값은 아직 정의 되지 않은 상태

+ 변수 선언과 동시에 값을 넣는 방법은 변수 이름 뒤에 대입 연산자 '='을 붙이고 초기값을 적으면 됨


예 ) double i = 3.14 ;


double - 실수형을 뜻하는 type

i - 변수의 이름

= 3.14 - 변수 i 의 초기값은 3.14

; - 문장의 종료


★ 변수의 이름

+ 변수의 이름은 식별자(identifier)의 일종으로 몇가지 규칙이 있다.

+ 식별자는 유니코드 문자와 숫자의 조합 = 한글도 가능

+ 식별자의 첫 문자는 일반적으로 유니코드 문자

+ 대문자와 소문자는 구별

+ 식별자의 이름으로 Keyword를 사용하면 안됨



▲ 자바 키워드, 이미지 자료 출처 : http://biju.tistory.com/77


+ true, false, null 등은 키워드는 아니지만 변수의 이름으로 사용할 수 없다.



▲ 올바른 변수 선언의 예, 출처: 파워 자바 2판 ppt자료


▲ 잘못된 변수 선언의 예, 출처: 파워 자바 2판 ppt자료


★ 식별자 이름 작성 관례

+ 변수의 이름이나 메소드의 이름을 식별자라고 함

+ 식별자를 만들때 관례가 있음



▲ 식별자의 관례, 출처: 교재(파워 자바 2판) 78쪽



02. 기초형


+ 기초형은 일반적인 데이터를 나타내는 형으로 모두 8개가 있다.

+ 기초형은 객체로 되어 있지 않다.

+ 하지만 대응되는 클래스가 있다.

+ 예) 정수를 객체로 포장해야 하는 경우 - int 대신 Interger 클래스 사용



▲ 기초 자료형, 출처: 교재(파워 자바 2판) 79쪽


★ 정수형

+ 기초 자료형 이미지에서 byte ~ long 까지

+ 가장 많이 사용하는 정수형은 int

+ 크기를 벗어나는 값을 대입하면 컴파일 오류와 실행 오류가 발생




+ byte 는 -128 ~ 127 사이의 값은 가진다. 하지만 7번 줄을 보면 변수 n 은 300으로 정의 되었다. 정수 byte의 범위를 벗어난 값을 가지게 된것.

+ 그 결과 type mismatch 에러가 발생한 것을 확인 할 수 있다.


★ 정수형 상수

+ 상수 또는 리터럴(literal)은 여러 진법으로 표시가 가능

+ 16진수는 앞에 0x(영 엑스)를 붙임

+ 8진수는 앞에 0(영)을 붙임

+ 2진수는 앞에 0b(영 비)를 붙임






▲ 정수형 상수 예제, 교재 81쪽


+빛의 속도와 거리는 천문학적으로 큰 수 이기 때문에 long이라는 정수형을 사용하여 변수를 선언했다


★ 기호 상수

+ 상수는 기호 상수를 이용하여 변수처럼 보이도록 표현할 수 있다.

+ 변수 선언 앞에 키워드 final을 붙여서 만든다.

+ 예 ) final double PI = 3.141592;


final - 더이상 변경되지 않는다는 의미


★ 논리형

+ 논리형은 boolean을 사용한다.

+ 그 결과 값은 true와 false만 가질 수 있다.

+ 논리연산을 사용할때 사용한다.


▲ 논리형 예제, 출처: 교재 81쪽

 

★ 실수형

+ float 와 double이 있다.

+ float 는 32비트

+ double 은 64비트

+ 주로 double을 사용한다.


▲ 실수형 예제, 출처: 교재 82쪽


★ 실수형 상수

+ 실수형 상수는 일반 표기법이나 과학적 표기법으로 표현할 수 있다.


▲ 실수형 상수 표기법, 출처: 교재 83쪽


+ 실수형 상수는 double이 기본


★ 문자형

+ 문자형인 char는 하나의 문자를 저장할 수 있다.

+ 자바에서는 유니코드를 지원하기 위해 문자 하나가 16비트로 표현


★ 문자형 상수

+ 따옴표를 사용하여 표시

+ 예 ) 'a', 'b', '가, '나' 등등


+ 특수문자는 역슬래시(\)를 사용하여 나타냄

+ 예 ) \t : 수평 탭

+ 참고로 \키를 누르면 역슬래시가 사용된다.


★ 문자열(String)

+ 자바에서는 클래스로 제공

+ String 타입의 변수에는 "Hello World!"와 같은 문자열 상수를 대입할 수 있다.


'Java > Java 공부' 카테고리의 다른 글

조건문  (0) 2016.07.18
연산자 (operator)  (0) 2016.07.18
Java Programming basic  (0) 2016.07.18
이클립스 (Eclipse) 설치  (1) 2016.07.18
Java 개발 도구 설치  (0) 2016.07.18
COMMENT
━━━━ ◇ ━━━━
Java/Java 공부

Java Programming basic

01. "Hello World!" 예제


 


▲ 새 클래스를 생성


■ 주석


 


▲ 표시된 부분은 주석문(comment)라고 부른다. 주석문은 소스의 설명을 적어놓는 곳이다. 주석문은 컴파일러는 무시하지만 소스를 읽는 다른 프로그래머들한테는 아주 유용하다. 자바에서의 주석문에는 세 가지 종류가 있다.


 


▲ 교재 p.56

 


■ 클래스 와 메소드


 


+ 객체 지향 언어에서는 프로그램 개발의 단위가 클래스이다.

+ 일반적으로 하나의 소스 파일은 하나의 클래스를 포함한다.

+ 하나의 클래스 안에는 여러 개의 메소드가 포함될 수 있으며, 하나의 메소드 안에는 여러 개의 문장이 포함될 수 있다.

+ 메소드(method)는 프로그램이 해야 하는 작업을 적어놓는 곳이다.

+ 메소드는 안에 들어 있는 문장들을 차례대로 실행한 후에 작업의 결과를 외부로 반환한다.



 


 



 



 

 

▲ 교재 58쪽 


■ 문장


+ 문장(statement)은 사용자가 컴퓨터에게 작업을 지시하는 단위이다.

+ 보통 프로그램의 한 줄이 하나의 문장

+ 문장의 끝은 항상 세미콜론(;)


02. "Add" 예제 #1


 

 

▲ 교재 60쪽


■ 변수(variable)

+ 변수란 프로그램이 사용하는 데이터를 일시적으로 저장할 목적으로 사용하는 메모리 공간이다.

+ 변수는 데이터 값을 저장하고 있는 상자로 생각하면 이해가 쉬움

+ 변수는 어떤 데이터를 저장하느냐에 따라 여러 가지 타입으로 구분






 

▲ 변수 생성시 유의사항


 

▲ 기본형 타입


 

▲ 참조형 타입


■ 진수


+ 인간은 10진수에 익숙하지만 컴퓨터는 2진수를 사용한다.

+ 상황에 적합한 진수는 따로있다.





▲ 위 HTML의 11번 줄을 보면 색상을 16진수로 표현한 것을 볼 수 있다. 이처럼 색상의 조합을 표현할때에는 16진수가 적절하다.

 


■ 상수(constant)

+ 상수란 그 값이 프로그램이 실행하는 동안 변하지 않는 수 또는 변경 불가능한 수를 의미

+ 상수는 변수와 반대되는 개념

+ 변수는 프로그램 도중에 변경될 수 있는 수

+ 상수는 처음부터 끝까지 그 값이 변하지 않음


■ 수식(expression)

+ 수식은 일반적으로 상수나 변수와 연산자의 조합

+ 하지만 상수나 변수만도 수식이라고 함

+ 수식은 항상 결과 값을 가짐


■ 대입 연산

+ = 연산자는 변수에 값을 저장함.

+ 이때 =  연산자를 대입 연산자라고 부름

+ =의 좌변은 값을 저장 할 수 있는 변수가 위치, 우변에는 저장할 값을 계산하는 수식이 위치


■ 산술 연산

 




 




03. "Add" 예제 #2


 

▲ 교재 65쪽



'Java > Java 공부' 카테고리의 다른 글

연산자 (operator)  (0) 2016.07.18
변수 (variable)  (0) 2016.07.18
이클립스 (Eclipse) 설치  (1) 2016.07.18
Java 개발 도구 설치  (0) 2016.07.18
Java 소개  (0) 2016.07.18
COMMENT
━━━━ ◇ ━━━━
Java/Java 공부

이클립스 (Eclipse) 설치

01. 이클립스란? 


이클립스(eclipse)는 자바 프로그램을 쉽게 개발하기 위한 통합 개발 환경(IDE)의 하나이다.


■ 이클립스의 구조

+ 이클립스는 플러그인(plug-in)의 개념으로 구성되어 있다. 플러그인은 코드나 데이터가 묶여진 것으로 특정 기능을 제공한다. 사용자들이 이클립스 플랫폼에 자신이 필요한 플러그인을 설치함으로써 다른 프로그래밍 언어를 위한 개발 도구로 변환할 수 있다. 


02. 이클립스 설치


http://www.eclipse.org/


 


▲ 이클립스 홈페이지에서 Download 를 클릭

 


▲ 자신의 운영체제에 맞는 파일을 선택


참고로 자신의 운영체제를 확인하기 위해서 window키 + pause/break 키를 누르면 시스템창이 뜬다.

 


▲ 다운로드

 


▲ 만약 다운로드가 활성화 되지 않으면, 위의 미러사이트 에서도 다운이 가능하다.

 


▲ 다운받은 설치 파일을 실행

 


▲ Browser 단추를 클릭 하여 작업공간 경로를 바꿔주자

 


▲ 자바폴더를 선택하고, 다음부터는 이 창이 뜨지 않도록 체크박스를 선택한 다음 OK를 클릭한다.


 


▲ 설치 완료가 되면 자동으로 이클립스가 실행된다.


03. 이클립스 한글패치 하기


 


▲ 이클립스 홈페이지 우측상단 검색창에 'babel'을 검색한다.

 


▲ 바벨 프로젝트를 선택

 


▲ 다운로드 클릭

 


▲ 설치된 이클립스 버전에 맞는 것을 찾은 다음 URL 주소를 복사한다.

 


▲ 이클립스에서 Help → Install New Software

 


▲ add 클릭


 


▲ 이름은 아무거나 써도 좋다. 두번째칸(Location)에 좀 전에 복사한 URL를 붙여넣는다.

 


▲ Babel Language Packs for eclipse 를 선택한다. 여기서 체크를 하는것은 아니고 가장 왼쪽의 ' > ' 를 눌러서 하위 메뉴가 나오도록 확장시켜준다.


 


▲ 내려서 한국어를 찾는다. 한국어 옆의 빈 네모칸을 체크하고 진행한다.

 


▲ 설치전 확인 창이 나오면 Next를 클릭

 


▲ 약관에 동의하고 Finish 를 클릭하면

 


▲ 설치가 진행된다.

 


▲ 설치중에 경고창이 뜨는데 OK를 클릭하면 된다.

 


▲ 설치가 완료되면 이클립스를 재시작해야 한다는 알림창이 뜬다. Yes를 눌러주면 된다.

 


▲ 이클립스가 재시작 되고...

 


▲ 한글패치된 이클립스를 만날 수 있다.


04. 한글패치 된 이클립스를 다시 영어로 사용하는 법


 


▲ 이클립스의 바로가기 파일(원본 파일은 안됩니다)을 우클릭합니다.

 


▲ 속성을 눌러 줍니다.


▲ 대상 끝에 -nl en_US 를 써 붙여 줍니다. 확인을 눌러주시고 이클립스를 실행하면...


▲ 다시 영어로 사용할 수 있습니다.

'Java > Java 공부' 카테고리의 다른 글

연산자 (operator)  (0) 2016.07.18
변수 (variable)  (0) 2016.07.18
Java Programming basic  (0) 2016.07.18
Java 개발 도구 설치  (0) 2016.07.18
Java 소개  (0) 2016.07.18
COMMENT
1 ··· 5 6 7 8 9