본문으로 바로가기

2. JAVA프로그래밍이란(2)

category 프로그래밍/java 2017. 8. 21. 22:59

1. 이클립스 설치


www.eclipse.org 사이트로 이동




제일 하단에 있는 다운로드 패키지 클릭'




컴퓨터 사양에 맞는 비트를 확인하여 다운로드 실시

아마 압축파일로 다운받게 될 것입니다.


workspace는 사용자가 디렉토리를 지정해서 설정할 수 있습니다.



실행 후 모습
자주사용하게 되므로 바로가기 아이콘을 만드는게 좋겠다.



2. 변수란?


변하는 수 

모든것을 담을 수 있는 주머니


현실세계:휴대폰,지갑,동전,휴지, 열쇠 등등

컴퓨터언어: 숫자, 문자, 문자열, 클래스, 등등



3. 프로젝트 생성

(1) 자바 프로젝트를 생성



(2) java package를 생성


(3) java class생성




정리하자면 java 프로젝트-java package-java class 순서대로 생성해주면 된다.


main을 입력후 ctrl+스페이스키를 같이 누르면 자동 어시스트 창이 뜬다. 메인메소드 선택




윗쪽에 보면 녹색바탕의 화살표표시가 된것이 있다. 실행하기 위해 그것을 클릭한다.

ctrl+F11 단축키




콘솔창에 보면 실행결과가 나타난것을 확인 할 수 있다.



i,j,h,c,d,e라는것이 변수이다. 변수라는 것은  숫자나 문자를 어딘가에 기억하여 그 값을 기억하여 두는 기능을 변수라고 한다.


식별자는 변수의 이름으로 사용할 수 있는 문자+숫자의 조합을 식별자라고 한다.

변수의 이름에는 식별자를 사용한다.


규칙

1 일반적으로 영문자, 숫자, 밑줄,$등을 사용

2. 길이 제한 없음

3. 미리 java가 예약한 키워드는 사용불가능 ex) retrun, class

4. 숫자로 시작할 수 없다.

5. 알파벳과 숫자는 다른 문자로 구별됨

 

 

예외


 

변수 선언

형명 식별자;
ex) int num;

     char c;

     double a, d;


위의 예제에서 i,j,h,c,d,e가 변수이자 식별자라고 말할 수 있다.

변수 값 대입

변수이름 = 식(expression);


class Sample1

{

    public static void main(String[] args)

    {

        int i = 10 --- > 변수 선언과 i에 10이라는 값을 할당. 이러한 처리를 변수를 초기화시킨다라고 한다.

        

        System.out.println("변수 i 의 값은  + i +  입니다.");

        System.out.println( i );

    }

}


문자 하나하나를 문자 리터럴(character literal)이라고 부른다.

'A'

'a'

'B'

' '으로 코드 안에 적는다.




[참고] 이스케이프 시퀀스


class sample4


{

 public static void main(string [] args)  

 {

   System.out.printIn("원화기호를 표시합니다. \\")

   System.out.printIn("작은 따옴표를 표시합니다. \'");  

 } 

}


실행결과 


원화 기호를 표시합니다. \

작은 따옴표를 표시합니다. '



 이스케이프 시퀀스

의미문자 

 \b

백스페이스 

 \t

수평 탭 

 \n

개행 

 \f

페이지 나누기 

 \r

복귀 

 \'

 \\

 \ooo

8진수ooo의 문자코드를 가지는 문자

(o는 0~7숫자) 

 \uhhh

16진수hhh의 문자코드를 가지는 문자

(h는 0 ~9의 숫자, A~F 영문자) 


문자 코드


컴퓨터 내부에서는 문자를 숫자로 취급하는데 이러한 각 문자에 대한 해당하는 숫자를 문자 코드라고 부른다.

java에서는 Unicode라는 문자 코드가 사용된다.


class Sample5

{    

public static void main (String [] args)   

{        

System.out.println("8 진수 101 의 문자 코드는 \101입니다.");    문자코드를 지정한다.

System.out.println("16 진수 0061 의 문자 코드는 \u0061 입니다.");    

}

}


출력결과


8진수 101은 문자 A입니다.

16진수 0061은 문자 a 입니다.


문자열 리터럴


문자가 1개일때는 문자 리터럴, 1개 이상일 경우에는 문자열 리터럴이라고 부릅니다.

java에서는 한개 문자일때는 ' ' 문자열일때는 ""로 표현한다. 아래와 같은 표기를 문자열이라고 합니다.


"java"

"할 수 있다"

"취업하자"


숫자 리터럴


java 코드에서 숫자를 표현 할 수 있다.

 정수 리터럴(integer literal) :1,2.3.4...

 부동 소수점 리터럴(floating- point literal): 3.14,5.0 등등

숫자 리터럴은 '' or ""를 사용하지 않는다.
정수 리터럴에는 다양한 표기법이 있다. 2진법, 8진법, 16진법
8진법 : 숫자 앞에 0을 붙인다.

16진법 : 숫자 앞에 0x를 붙인다.

10

2진수 1010

8진수 010

16진수 0x10

16진수 0xA


ex) 다음과 같이 화면에 출력하라

6
20

13


class Sample6
{
    public static void main (String [] args)
    {
        System.out.println("8 진수 6 은 " ++ " 입니다. "); + 기호를 사용한다.
        System.out.println("16 진수 20 은 " + 0xG + " 입니다.");
        System.out.println("16 진수 13 은 " + 0xD + " 입니다.");
     
    }
}



변수 문법




int                   i           =   10;

데이터 타입      변수명         데이터

(성질: 정수타입) 


char                c1          = 'a';

성질: 문자타입


기본자료형

컴퓨터언어에 이미 존재하고 있는 데이터 타입

ex) int(정수형), char(문자), double(소수점까지),Boolean(참,거짓),) 등등

                    short         float(부동 소수점)    

                                               


객체자료형


여러가지 데이터들이 모여 있는 복잡한 데이터로 기본 자료형에 비해 크기가 크다.

ex) string, System,ArrayList 등등


정수형


byte 1byte

short 2byte

int     4byte

long   8byte



실수형


float  4byte

double 8byte



package com.javalec.ex;


public class TestEx {

public static void main(String[] args) {

char c = '씨';  //문자타입

int i = 10;     // 정수타입

double d = 3.140; //소수 타입

boolean b = true;  //참, 거짓 타입

System.out.println("c는"+ c);

System.out.println("i는"+ i);

System.out.println("d는"+ d);

System.out.println("b는"+ b);

}

}


실행결과

c는씨
i는10
d는3.14
b는true



묵시적 형변환 : 작은 요술주머니의 데이터를 큰 요술주머니로 옮기는 것

package com.javalec.ex;

public class TestEx {
public static void main(String[] args) {
int i1 = 10;
double d1 = i1;
System.out.println("d1 데이타는 " + d1 + "입니다.");
double d2 = 10.0D;
int i2 = d2;
System.out.println("i2 데이타는 " + i2 + "입니다.");
}
}

에러메세지가 나온다... 큰 그릇 내용이 커서 작은 그릇에 다 못들어가기 때문이라고 비유할 수 있겠다.
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Type mismatch: cannot convert from double to int

at com.javalec.ex.TestEx.main(TestEx.java:15)




명시적 형변환 : 큰 주머니의 데이터를 작은 주머니로 옮기는 것. 데이터 손실이 있을 수 있으며, 코드에 명시해 주여야 한다.


package com.javalec.ex;

public class TestEx {
public static void main(String[] args) {
int i1 = 10;
double d1 = i1;
System.out.println("d1 데이타는 " + d1 + "입니다.");
double d2 = 10.0D;
int i2 = (int) d2; 아까랑 똑같지만은 변수앞에 (int)를 붙인다. 아까와 반대상황이다.
System.out.println("i2 데이타는 " + i2 + "입니다.");
}
}


예제) 다음과 같이 화면에 출력하는 코드를 작성하십시오. 8진수 16진수를 사용하여 코드를 작성하라

 

 

16진수는 숫자앞에 0X을 붙인다

6

20 

13

 




오른쪽 기준으로 끊는다. (8진수는 3자리, 16진수는 4자리씩)

 

6

 

2진수 -> 8진수     2진수 -> 16진수

0000 0110           0000/0110

 

00/000/110          0001/0100

0   0   6               1      4

 

20

 

2진수 -> 8진수     2진수 -> 16진수

0001 0100           0000/0110

 

00/010/100          0001/0100

0   2   4               1      4

 

13

 

2진수 -> 8진수     2진수 -> 16진수

0000 1101           0000/1101

 

00/001/101          0000/1101

0   1   5               0     13

 

 

A:10

B:11

C:12

D:13

E:14

F:15

 

16부터 10이다.

 

 


public class Sample1 {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  System.out.println("8진수 6은\t" + 006 + "입니다.");
  System.out.println("8진수 20은\t" + 024 + "입니다.");
  System.out.println("8진수 13은\t" + 015 + "입니다.");
  System.out.println("16진수 6은\t" + 0x6 + "입니다.");
  System.out.println("16진수 20은" + 0x14 + "입니다.");
  System.out.println("8진수 13은\t" + 0xD + "입니다.");
 }

}