** 제어문 : 조건문, 반복문

 

* 조건문

1. if문

형식)

if (조건문) {

실행문1;

}

실행문2;

결과)

조건문 true : 실행문1 --> 실행문2

false : 실행문2

 

ex)

public class IfTest {
  public static void main(String[] args) {
    int x; //선언
    x = 19; //값을 할당
    if(x > 10) {
      System.out.println(x + "는 10보다 큽니다.");
    }

   int jumin = 1;
   /*if ( jumin % 2 == 0) {
      System.out.println("주민번호가 " + jumin + "인 사람의 성별 : 여자");
   }
   if ( jumin % 2 == 1)
     System.out.println("주민번호가 " + jumin + "인 사람의 성별 : 남자");*/

//(더 간단한 코드)
   String gender = "남자";
   if ( jumin % 2 == 0) {
     gender = "여자";
   }
   System.out.println("주민번호가 " + jumin + "인 사람의 성별 : " + gender);
   System.out.println("프로그램 종료!!!!");
  }
}
---------- run ----------
19는 10보다 큽니다.
주민번호가 1인 사람의 성별 : 남자
프로그램 종료!!!!

---------- run ---------- 1910보다 큽니다. 주민번호가 1인 사람의 성별 : 남자 프로그램 종료!!!!

 

 

2. if ~ else 문 : ~라면 ~가 아니라면

형식)

if (조건문) {

실행문1;

} else {

실행문2;

}

실행문3;

결과)

조건문 true : 실행문1 --> 실행문3;

false : 실행문2 --> 실행문3;

 

 

ex1)

public class IfElseTest {
  public static void main(String[] args) {
    int x =19;
    if (x>10) {
      System.out.println(x + "는 10보다 큽니다.");
    } else {
      System.out.println(x + "는 10보다 작습니다.");
    }

    int jumin = 2;
    String gender = null; 
//아직 만들지 않은 값 (String에만 들어갈 수 있다, boolean, int 등에는 null이 들어갈 수 없다)
    if ( jumin % 2 == 0) {
      gender = "여자";
    } else {
      gender = "남자";
    }
      System.out.println("주민번호가 " + jumin + "인 사람의 성별 : " + gender);
    System.out.println("프로그램 종료!!!");
  }
}

 

** ex2)

/*
주민번호의 7번째 숫자
1,2 : 1900년도 사람
3,4 : 2000년도 사람
1,3 : 남자
2,4 : 여자

샘플데이터
주민번호 :  3                      2
결과     : 3은 2000년대 남자입니다. 2는 1900년대 여자입니다.

만약에 주민번호가 5이상이면 5는 외국인입니다.
*/

public class IfElseTest2 {
	public static void main(String[] args) {
		int jumin = 5;
		if(jumin < 5) {
			int year;
			String gender;
			if(jumin < 3) {
				year = 1900;
			} else {
				year = 2000;
			}

			if(jumin % 2 == 0) {
				gender = "여자";
			} else {
				gender = "남자";
			}
			System.out.println(jumin + "은 " + year + "년대 " + gender);
		} else {
			System.out.println(jumin + "은 외국인입니다.");
		}
	}
}
---------- run ----------
1은1900년대남자입니다.

 

 

 

ex3)

public class Test0 { 
   public static void main(String[] args) {
     int x = 3;
     int y = 2;
     System.out.println(x!=y);

     int money = 2000;
     if (money >=3000) {
     System.out.println("택시를 타고 가라"); 
     } else {
     System.out.println ("걸어가라");
     }
  }
}
---------- run ----------
true
걸어가라

 

ex4)

/*

시험점수 : 89 score

학점 : 90점 이상 A grade

80점 이상 B

70점 이상 C

F

결과 : 89점은 B학점입니다.

*/

public class IfElseTest3{
   public static void main(String[] args) {
     int score = 89;
     char grade; //계속 바뀌는 값이니까
     if (score >= 90){
       grade = 'A';
     } else {
       if (score >= 80){
        grade = 'B';
       } else {
          if (score >= 70){
           grade = 'C';
          } else {
             grade = 'F';
            }
          }
       }
System.out.println(score + "점은" + grade + " 학점입니다.");
 }
}
---------- run ----------
89점은B 학점입니다.

 

 

 

 

3. if ~ else if ~ else 문 : ~라면 ~라면 ~라면 ~가 아니라면

형식)

if (조건문1) {

실행문1;

} else if (조건문2) {

실행문2;

} else {

실행문3;

}

실행문4;

결과)

조건문 1 true : 실행문1 --> 실행문4

false : 조건문2 true : 실행문2 --> 실행문4;

false : 실행문3 --> 실행문4;

 

ex1)

/*

시험점수 : 89 score

학점 : 90점 이상 A grade

80점 이상 B

70점 이상 C

F

학점은 X5점이상이면 X+

 

결과 : 89점은 B학점입니다.

*/

public class IfElseIfTest {
    public static void main(String[] args) {
        int score = 100;
        String grade; //Q.char가 안되는 이유는?
        if(score >= 90) {
            grade = "A";
        } else if(score >= 80){
            grade = "B";
        } else if(score >= 70) {
            grade = "C";
        } else {
            grade = "F";
        }

        if(score == 100 || score % 10 >= 5 && score >= 70) {
            grade += "+"; // grade = grade + "+" (grade에 +를 붙이겠다!!)
        }

        System.out.println(score + "점은 " + grade + "학점입니다.");
    }
}
---------- run ----------
100점은 A+학점입니다.

 

ex2)

if문 중첩

public class IfTest1{
	public static void main(String[] args) {
		int score = 75;
		String grade = " ";

		if (score >=90)	{
			if (score >= 95){
				grade = "A+";
			} else {
				grade = "A";
			}
		} else {
		if (score >=85)	{
				grade = "B+";
			} else {
				grade = "B";
			}
		}
			System.out.println(score + "는" + grade+ "학점입니다.");
	}
}

 

 

4. switch ~ case문 // equal 비교일 때만 사용

(단, JDK6까지는 값에 정수만 가능했지만, JDK7부터는 "문자열"도 가능)

(정수 : byte short int long char)

형식)

switch(값) {

case 값1 : 실행문1; break;

case 값2 : 실행문2; break;

 

ex1)

public class  SwitchCaseTest1 {
    public static void main(String[] args) {
            int x = 1;
            switch(x) {
                    case 0 :     System.out.println("x는 0입니다.");break;
                    case 1 :     System.out.println("x는 1입니다.");break;
                    case 2 :    System.out.println("x는 2입니다.");break;
                    default :    System.out.println("x는 0, 1, 2 모두 아닙니다.");
            }
     /*
                ASCII : 모든 문자는 숫자값
                '0' = 48번 (0~9 총 10개)
                'A' = 65번
                'a' = 97번
                */

                char c = 'b';
                //System.out.println((int)c);
            switch(c) {
                    case 'a' :     System.out.println("x는 a입니다.");break;
                    case 'b' :     System.out.println("x는 b입니다.");break;
                    case 'c' :    System.out.println("x는 c입니다.");break;
                    default :    System.out.println("x는 a b, c 모두 아닙니다.");
        }

                    String s = "java";
            switch(s) {
                    case  "java" :     System.out.println ("s는 java입니다.");break;
                    case  "oracle"  :     System.out.println ("s는 oracle입니다."); break;
                    case "spring" :    System.out.println ("s는 spring입니다."); break;
                    default :    System.out.println ("s는  java oracle,spring 모두 아닙니다.");
        }
    }
}
---------- run ----------
x는 1입니다.
x는 b입니다.
s는 java입니다.

 

ex2)

/*

시험점수 : 89 score

학점 : 90점 이상 A grade

80점 이상 B

70점 이상 C

F

학점은 X5점이상이면 X+

 

결과 : 89점은 B학점입니다.

*/

public class  SwitchCaseTest2 {
    public static void main(String[] args) {
            int score = 100;
            String grade;
            switch (score/10)    { //동등비교밖에 안되니까 10으로 나눠주기
            case 10 : case 9 : grade = "A"; break;
            case  8 : grade = "B"; break;
            case  7 : grade = "C"; break;
            default : grade = "F";
    }
     if(score == 100 || score % 10 >= 5 && score >= 70) { //범위비교가 필요(switch문 x)
            grade += "+"; // grade = grade + "+" (grade에 +를 붙이겠다!!)
        }

        System.out.println(score + "점은 " + grade + "학점입니다.");
    }
}
---------- run ----------
100점은 A+학점입니다.

ex3)

한번에 처리하기

int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
        String season = "";
        
        //case문을 한번에 사용하면 더 짧게 코드를 짤 수 있습니다.
        switch(month) {
            case 1:
            case 2:
            case 12:
                season = "겨울";
                break;
            case 3:
            case 4:
            case 5:
                season = "봄";
                break;
            case 6:
            case 7:
            case 8:
                season = "여름";
                break;
            case 9:
            case 10:
            case 11:
                season = "가을";
                break;
        }
        System.out.println("지금은 " + month + "월이고, " + season + "입니다.");
    }

 

 

 

(1) 문자열 연결 연산자 '+' : '+'는 oracle 에서 '||' 와 같다!!

public class VarTest1 {
  public static void main(String args[]) {
    int age;
    age = 25;
      System .out.println("age : " + age);

    char c;
    c='a';
      System.out.println("c:"+c);

    boolean flag = true; // boolean에는 true or false만 저장 가능 합니다.
      System.out.println("flag : " + flag);

//byte b = -129; //byte의 범위는 -128 ~ 127까지만 저장 가능하기 때문에 오류

/*
여
러
줄
*/

  }
}
---------- run ----------
age : 25
c:a
flag : true

 

( //한 줄 주석 달기)

( /* 여러줄 주석 달기 */)

 

 

(2) **연산자 (operator)

1. 증감 연산자 : ++, -- >> 1 증가(감소) 연산자

변수를 기준으로 했을 때 변수 ++(--) : 선실행 후증감

++(--) 변수 : 선증감 후실행

ex)

int x = 10; 출력값 실제값

S.o.p(x); // 10

S.o.p(++x); // 11 11

S.o.p(x++); // 11 12

S.o.p(--x); // 11 11

S.o.p(x--); // 11 10

S.o.p(x--); // 10 9

S.o.p(++x); // 10 10

S.o.p(--x); // 9 9

S.o.p(x++); // 9 10

S.o.p(++x); // 11 11

S.o.p(x--); // 11 10

S.o.p(x); // 10

 

2. 산술연산자 : + , -, *, /, %(나머지연산자)

 

public class OperTest2
{
public static void main(String[] args)
{
int x = 15;
int y = 8;
int z = 0;
System.out.println(" x : " + x + " \ty : " + y + " \tz : " +z);

z = x + y; // z에 x+y를 대입하라
System.out.println(" z : " + z); 

z = x - y;
System.out.println("z : " +z);

z = x / y;
System.out.println("z:" +z);

z = x * y;
System.out.println("z:" +z);

z = x % y;
System.out.println("z:" +z);
}
}
---------- run ----------
x : 15  y : 8  z : 0
z : 23
z : 7
z : 120
z : 1
z : 7

 

 

3. 비교연산자 : <, <=, >, >=, ==, !=

ex) 위에 이어서~

System.out.println( x > y); //true
System.out.println(z > y); //false
System.out.println(x > y && z > y); //false
System.out.println(x > y || z > y); //true (x>y에서 끝~ z>y는 볼 필요도 x)

 

* 문자열(String)은 비교연산자를 사용할 수 없다.

equals() 메소드를 사용해야 한다!!

ex) boolean result = str1.equals(str2);

 

4. 논리연산자 : &&(and), ||(or), !(not)

 

 

5. 대입연산자 : =, +=, -=, *=, /=, %=

ex)

int x = 10;

S.o.p(x);

x +=5; // x= x+5;

S.o.p(x); //15

 

Q. int x = 10;일때 x의 값을 1증가 시키는 방법을 아는대로 쓰시오.

++x, x++, x= x+1;, x+1;

 

6. 조건연산자(삼항연산자)

형식) 조건? 값1: 값2;

결과) 조건이 true면 값1

false면 값2

 

ex)

int x = 10;

int y = x < 10 ? 5 : 15;

S.o.p(y); //15

 

* 연산자 우선순위

( ) 최우선순위 연산 (어떤 것이 먼저인지 모르겠으면, ( )넣기)

대입연산자 최후위 연산

 

ex1)

/*
점수가 90점 이상이면 A등급
       80점 이상이면 B등급
       그 이하는     C등급
*/

public class ConditionalOperationExample {
	public static void main(String[] args) {
		int score = 60;
		char grade = (score >= 90)? 'A' : (score >= 80)? 'B' : 'C';
		System.out.println(score + "점은" + grade + "등급입니다.");
	}
}

 

 

ex2)

int jumin = 2;
String gender = (jumin ==1 || jumin ==3) ? "남자" : "여자" ;
System.out.println("주민번호가 " + jumin + "인 사람의 성별 : " + gender);

OR

int jumin = 2;
String gender = (jumin % 2 == 1) ? "남자" : "여자" ; //홀수면 남자, 짝수면 여자
System.out.println("주민번호가 " + jumin + "인 사람의 성별 : " + gender);

 

ex3)

/*
물건가격 : 3670원
투입금액 : 10000원
거스름돈 : 6330원
------------------------------
5000원 : 1장
1000원 : 1장
500원 : 0개
100원 : 3개
50원 : 0개
10원 : 3개
*/

public class VendingMachine {
  public static void main(String[] args) {
   int price = 3670;
   int myMoney = 10000;
   int change = myMoney - price;
    System.out.println("물건가격 : " + price + "원" );
    System.out.println("투입금액 : " + myMoney + "원");
    System.out.println("거스름돈 : " + change + "원");
   int c5000 = change /5000; //숫자로 시작할 수 없기에 c5000으로~
   int c1000 = (change %5000) / 1000; //change%5000 = change - 5000 *c5000
   int c500 = (change%1000) / 500;
   int c100 = (change%500) / 100;
   int c50 = (change%100) / 50;
   int c10 = (change%50) / 10;
    System.out.println( "-------------------------------------------");
    System.out.println( "5000원 :" + c5000 + "장");
    System.out.println("1000원 : " + c1000 + "장");
    System.out.println("500원 : " + c500 + "개");
    System.out.println("100원 : " + c100 + "개");
    System.out.println("50원 : " + c50 + "개");
    System.out.println("10원 : " + c10 + "개");
  }
}
---------- run ----------
물건가격 : 3670원
투입금액 : 10000원
거스름돈 : 6330원
----------------------------
5000권 : 1장
1000권 : 1장
500원 : 0개
100원 : 3개
50원 : 0개
10원 : 3개

 

(1) 변수 (variable) : 하나의 값을 저장하는 공간 (memory에 할당)

: 마음대로 지을 수 있음 (but, 몇 가지 규칙이 있다,)

 

int a;

String b;

(a,b가 변수)

 

(2) DataType (자료형) : 변수 앞에 위치한 것, 프로그래밍을 할 때 쓰이는 숫자, 문자 등 자료 형태로

사용하는 모든 것

a) 기본형 (primitive) DataType (8개)

- 논리형 boolean 1byte true, false (0,1 저장 x)

조건문,제어문 등의 실행 흐름 변경시 사용

두가지 상태값을 가질 경우 (맞냐?안맞냐?/ 시작?아직시작x?)

- 문자형 char 2byte 'a', '1', 'ab' (x, 문자열(String)이라 안됨 한글자만 ok) * 특수문자(escape문자) 5개 : \n (new line 줄바꿈), \t (tab), \' ('), \" ("), \\ (\)

- 숫자형

- 정수형 byte 1byte -128 ~ 127까지만 저장 가능( 1 byte = 8 bit)

실행중 범위가 초과한다면 128이 아니라 -128로 돌아간다.

short 2byte

int 4byte 가장 많이 사용

long 8byte

 

- 실수형 float 4byte

double 8byte 금융권에서 사용(소수점까지)

* 빈(empty) 문자 처리

- char c = ''; // 컴파일 에러

- char c = ' '; // 공백 가능

- String str = ""; // 가능

 

b) 참조형 (reference) DataType

- class (Object)

- array

 

(3) ** 접근제어자( access modifier) : private < default < protected < public 순으로 광범위

① private : 자기 클래스 안에서만 사용 가능.

② default : 생략, private (자기 클래스 안에서 사용 가능) + 같은 package에 있는 클래스간 사용 가능

③ protected : private(자기 클래스 안에서 사용 가능) + default (같은 package에 있는 클래스간 사용

가능) + package가 다르더라도 두 클래스가 상속 관계일 경우 사용 가능

(* package : 자바 클래스가 위치하고 있는 디렉터리명과 일치한다. 즉, 파일명이 동일하더라도 다른 패키지라면

동일한 클래스명 사용 가능)

④ public : 어떠한 제약 없이 사용 가능

 

(4) ** 명명 규칙

ⓐ 알파벳 대소문자, 숫자, 한글 가능 (단, 숫자로 시작할 순 X (int 1st; X))

ⓑ 특수문자 X (예외 : _, $ 사용 가능 but, $는 일반적으로 사용하지 x)

ⓒ 클래스는 대문자로 , 메소드나 변수는 소문자로 시작

합성어의 경우 다음 단어의 첫번째 문자는 대문자로~ >> camel case (낙타 표기법)

ex ) class : SportsCar

method : speedUp()

variable : carName, maxSpeed, firstName

constance (상수:절대바뀌지않는수) : CAR_MAKER

ⓓ 클래스나 변수는 명사, 메소드는 동사.

ⓔ 자바 예약어(keyword)는 변수명으로 사용 X

<자바 키워드>

  • 0열 선택0열 다음에 열 추가
  • 1열 선택1열 다음에 열 추가
  • 2열 선택2열 다음에 열 추가
  • 3열 선택3열 다음에 열 추가
  • 4열 선택4열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
  • 1행 선택1행 다음에 행 추가
  • 2행 선택2행 다음에 행 추가
  • 3행 선택3행 다음에 행 추가
  • 4행 선택4행 다음에 행 추가
  • 5행 선택5행 다음에 행 추가
  • 6행 선택6행 다음에 행 추가
  • 7행 선택7행 다음에 행 추가
  • 8행 선택8행 다음에 행 추가
  • 9행 선택9행 다음에 행 추가

셀 전체 선택

열 너비 조절

행 높이 조절

abstract

continue

for

new

switch

assert

default

goto

package

synchronized

boolean

do

if

private

this

break

double

implements

protected

throw

byte

else

import

public

throws

case

enum

instanceof

return

transient

catch

extends

int

short

try

char

final

interface

static

void

class

finally

long

strictfp

volatile

const

float

native

super

while

  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제

 

-(5) 기본형 DataType 사용

a) 변수 선언 (메모리 할당x)

형식) 접근제어자 기본형DataType 변수명;

ex)

public int age;

char c;

private boolean flag; 현재 클래스 안에서만 쓸 수 있는 참/거짓

 

b) 사용 (메모리 할당o) : 값 할당.

형식) 변수명 = 값; (변수에 해당 값을 대입)

ex)

age = 25;

c = 'a';

flag = true;

 

* 선언과 동시에 값 대입을 한번에도 가능

접근제어자 기본 datatype의 변수명 = 값;

ex)

public int age = 25;

char c = 'a';

private boolean flag = true;

 

(6) 변수는 선언된 블록{ } 내에서만 사용이 가능하다.

메소드 블록 내에서 선언된 변수는 전체 사용 가능

if 조건문 블록 내에서 선언된 변수는 if문 안에서만 사용 가능

for 반복문 블록 내에서 선언된 변수는 for문 안에서만 사용 가능

 

 

Q. 초기화란 ?

선언 후 값 대입까지 된 상태 ! 선언만 되어 있다면 초기화가 되지 않았기 때문에 컴파일 에러가 발생한다.

ex) int value = 30;

int result = value + 10; //초기화가 되었기 때문에 result변수에 대한 값으로 사용이 가능하다.

 

Q. 매번 cmd창에 입력하는 게 불편하다면?

EditPlus 설정 해주기~

도구 기본설정 - 사용자 도구 - 추가1 - 프로그램 (메뉴제목 : compile

명령 : C:\Program Files\Java\jdk1.8.0_221\bin\javac.exe

인수 : 옆에 밑에 화살표 눌러보면 파일이름 클릭

디렉토리 : 파일 디렉토리

추가2 - 프로그램 (메뉴제목 : run

명령 : C:\Program Files\Java\jdk1.8.0_221\bin\java.exe

인수 : 옆에 밑에 화살표 눌러보면 확장자를 뺀 파일이름

디렉토리 : 파일 디렉토리

 

ctrl + 숫자1 : compile

ctrl + 숫자 2 : run

(cmd창에서 자동으로 출력)

 

Q. 더 편리해지고 싶다면?

도구 기본설정 - 사용자 도구

 

동작에서 출력내용 캡처 선택해주기

(EditPlus 밑에 출력내용 나온다)

 

- Editplus에 메모장에 저장해 놓았던 main mathod 불러오기

도구 - 기본설정 - 파일 문서 탬플릿 - Java 클릭 - 파일이름(메모장 저장 파일 찾아서 열기) - 확인

 

 

Javascript : 클라이언트 스크립트 (브라우저에서 실행), HTML문서내에 포함되어서 실행

vs

Jsp(Java) : 서버 스크립트 (JVM에서 실행)

 

- JAVA란? 객체 지향 언어이다.

OOP(Object Oriented Programming) : 부품인 객체를 먼저 만들고, 이것들을 조합해서 전체 프로그램을 완성!!

 

- JAVA의 특징

1. Virtual Machine - 운영체제 (리눅스, 윈도우, 맥os)의 영향을 받지 않는다.

> 자바 프로그램 하나만 잘 만들어 놓으면 OS가 달라도 해당 OS의 Virtual Machine이 있다면 프로그램이 돌아감

2. Garbage Collection - 개발자는 메모리를 관리하지 않는다.

3. OOP - 객체지향 언어로 개발과 유지보수를 효율적으로 진행 할 수 있다.

 

- JDK : 개발자를 위한 버전, JRE가 자동으로 포함 (개발자라면? JDK 설치)

- JRE : 실제 동작을 하는데 필요한 JVM과 각종 라이브러리, 파일을 포함 (실행만 할 거라면? JRE 설치)

- JVM : 실제 구동되는 환경, 가상머신이기 때문에 어느 운영체제나 호환이 가능

대표사진 삭제

사진 설명을 입력하세요.

 

 

제어판 - 프로그램 및 기능 - java 11 제거 (지난번에 깔았던 거)

 

내 컴퓨터에서 오른쪽 마우스 클릭 후 속성 - 고급 시스템 설정 - 환경변수에서

 

java~~~ 삭제

path에서 c:\app부터 시작하게끔 앞에 지우기

 

cmd 창에서 java 입력

'java'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는

배치 파일이 아닙니다. (이렇게 나오면 다 삭제된 거OK)

 

editplus 보통문서 - 도구 기본설정 - 파일에서 저장시 백업 파일 생성 체크 해제

(나중에 파일이 수백개,수천개가 된다...)

 

** java 환경 setting

1.jdk(java development kit) download : Java SE (Java SE 8u221)

https://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html

밑으로 내려보면, Java SE 8 Documentation 다운로드

2.java se 이후 Java EE & GlassFish Server 공부~

3.java se deverlopment kit 8 설치 (껐다 켰을 경우, java 업데이트 뜨는데 절대 하지 말것!!!)

 

JAVA SE(Stanard Edition) : JAVA Application 개발 > 일반적인 애플리케이션 개발

JAVA EE(Enterprise Edition) : 기업 솔루션 개발 > 가장 핵심

 

4. https://www.eclipse.org/

접속 후, 화면 위쪽 다운로드 클릭 - 다운로드 패키지 클릭

Eclipse IDE for Enterprise Java Developers 다운로드

5.C:\Program Files\Java\jdk1.8.0_221\bin으로 들어가서 java, javac(java compiler)를 주로 사용

(bin 실행파일이 위치한 곳)

6.환경변수에서 새로 만들기 : 다른 경로에서 javac를 호출하더라도 실행 가능하도록 설정해 주는 것

- 방법 1

: 위쪽 사용자 변수에서 path > 편집 > 새로만들기 > C:\Program Files\Java\jdk1.8.0_221\bin

(java와 javac의 실행파일이 위치한 곳)

- 방법 2 (추천!!)

변수 이름 : JAVA_HOME

변수 값 : C:\Program Files\Java\jdk1.8.0_221 (직접 쓰지 말고, 해당 경로 복사하기!!)

 

변수 이름 : CLASSPATH

변수 값 : .

 

** PATH 편집 누르면 --? JAVA_NOME 추가해주기

변수 이름 : PATH

값 : %JAVA_HOME%\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\app\SIRENA\product\18.0.0\dbhomeXE\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common

 

7.설정 확인

cmd 창에서 java -version 으로 확인

java version "1.8.0_221"

Java(TM) SE Runtime Environment (build 1.8.0_221-b11)

Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

8.설정 확인

cmd 창에서 javac -version 으로 확인

 

9.메모장 켜서

public class HelloJava

{

public static void main(String args[])

{

System.out.println("Hello Java !!!!");

}

}

 

입력 후 저장 (ctrl + s)

 

D:\javadata\java에 메모장 저장 파일명 : HelloJava.java

(파일명은 반드시 class이름 설정한 것과 반드시 똑같이 저장해야 함!!!!! 복붙하기~)

 

10.cmd창에서 d:드라이브로 이동 후 dir로 저장 파일 확인

11.컴파일 : 프로그래머가 작성한 소스코드를 컴퓨터가 이해할 수 있는 말(기계어)로 바꾸는 행위

cmd창에서 javac 입력 Usage: javac <options> <source files>

12.javac HelloJava.java(확장자 포함) 입력

13.dir 입력하면 class파일 하나 더 생성으로 2개 파일 생겨남

14.실행 : java 입력하면 사용법 확인 사용법: java [-options] class [args...]

15.java HelloJava (확장자 제외)입력하면 java HelloJava !!!! 출력

16."안녕 자바" 추가

public class HelloJava

{

public static void main(String args[])

{

System.out.println("Hello Java !!!!");

System.out.println("안녕 자바 !!!!");

}

}

 

* 파일이 바뀌면??

javac HelloJava.java 로 컴파일을 다시 해야 한다 (매번)!!!!

 

다시 java HelloJava 입력하면

Hello Java !!!! 안녕 자바 !!!! (출력 ok)

 

17.System.out.print("안녕하세요~~~"); 추가

 

public class HelloJava

{

public static void main(String args[])

{

System.out.println("Hello Java !!!!");

System.out.print("안녕하세요~~~");

System.out.println("안녕 자바 !!!!");

}

}

 

print는 한줄이 안 떨어지고 쭉 붙여서 출력!!!

 

* 암기~~~ Main Method 외우기!!!! Java는 대소문자 중요!!!!

 

public class class이름

{

public static void main(String args[])

{

System.out.println("~~~~~~~~~~~~~~~"); println 은 줄변경

System.out.print("~~~~~~~~~"); print는 줄변경이 안되고 쭉~~ 이어져 나온다.

}

}

 

 

Q. compile 이란 ? 프로그래머가 작성한 소스코드를 컴퓨터가 이해할 수 있는 말(기계어)로 바꾸는 행위 (번역)

 

coding -----------------------------------------> run (JVM = Java Virtual Machine)

byte code

*.java ----------------> *.class ----------------> Hello Java !!!!

compile run

javac ClasName.java java ClassName

 

 

(설명)

소스코드를 작성하면 컴파일러는 자바 소스코드를 이용하여 클래스 파일을 생성한다.

컴파일 된 클래스 파일은 JVM이 인식할 수 있는 파일이다.

JVM은 클래스 파일의 바이너리 코드를 해석하여 프로그램을 수행한다.

 

* API 바로가기 만들기

D:\javadata\java\API\javaseAPI >> index.html (바탕화면에 바로가기 만들기)

 

1. 변수(variable) >> data type, 명명규칙, 접근제어자....... (19.10.15.)

 

2. 연산자 (operator) (19.10.16.)

 

3. 제어문 (19.10.17.~18.)

3-1. 조건문

if, if ~ else, if ~ else if ~ else (oracle case when then 이랑 비슷, 범위비교가능)

switch ~ case (oracle decode와 비슷 equal 비교만 가능)

3-2. 반복문

for

while

do ~ while

 

4. method (기능, 함수)

 

5. class (변수와 method의 집합), array (배열)

 

6. package (비슷한 기능을 갖는 class의 집합)

6-1. 사용자정의 package

6-2. system package

 

 

 

 

 

+ Recent posts