국비교육 2일차
1.한글 환경세팅
-이클립스 접속 후 window->preferences->enc검색->여기서 6개 쭉 UTF-8로 한글 설정!
2.이클립스 단축키 유용한 것들
-한 줄 삭제 : ctrl+d
-변수복사 : ctrl+space
-한 줄 복사 : ctrl + alt + 방향키
-코드라인이동 : alt + 방향키
소스코드 파일 구문 분석
-소스코드는 블록간의 중첩으로 구성된다
-하나의 블로 = {...} 대 괄호 안에 소스코드 입력
-블록안에 명시되는 명령어는 세미콜론(;)으로 문장의 끝을 표현한다
-Syntax error -> 자바 문법오류
-System.out.println(); : 괄호 안에 내용을 콘솔창에 출력하겠다는 명령어
주석문
4-1. 주석문이란?
-프로그램 소스코드안에 개발자의 필요에 따라 명시하는 설명문
-주석문은 컴파일 되지 않는다
-특정 명령문이 실행되지 않도록 차단하는 용도
4-2. 주석문의 종류
-한 줄만 처리하는 주석문 : 앞에 // 써주면 된다.
-여러 줄을 처리하는 주석문
/*
이 안에 내용들은 주석으로 처리할 수 있다.
*/
변수
-다양한 종류의 자료를 표현할 수 있는 값을 변수라고 부르며, 일반적으로 웹 페이지에서 처리하고자 하는 데이터에 해당한다.
5-1. 자료형(data type)
-프로그래밍 언어에서 변수의 종류를 구별하기 위해 사용되는 키워드
-자바에서 제공되는 자료형의 종류는 총 8가지 이다. 이를 기본 자료형(Primitive Date Type)라고 한다.
논리형
(1) blooean : true와 false를 할당하는 변수
정수형
(2) byte :
(3) short :
(4) int :
(5) long :
실수형
(6) float :
(7) double :
문자형
(8) char :
5-2. 자료형이 가지는 의미
-모든 변수는 컴퓨터의 메모리 영역에 생성된다.
-4byte의 크기를 갖는 변수값 하나를 생성할 경우, pc의 RAM에서 해당 용량만큼을 사용하게된다
-변수는 RAM의 크기를 넘지 않는 범위 안에서만 생성할 수 있다.(용량을 넘어서는 경우 OutOfMemomry발생)
5-3. 문자열 데이터
-프로그램 코드에서 "문장"을 표현하기 위해 사용되는 데이터 값
-Stringd으로 선언
-문자열을 표현하기 위한 자료형(첫 글자 대문자 주의)
-글자 수에 상관 없이 쌍따옴표("")로 묶인 내용을 할당할 수 있다.
-만약 숫자값의 경우 쌍따옴표로 묶이게 되면 물자열로 취급, 숫자와 문자열은 분명하게 구별해야 한다.
6.변수의 사용
6-1. 변수의 사용 방법
-변수를 사용하는 방법은 "선언"과 "할당"의 두 영역으로 구분이 된다.
6-2. 변수의 선djs
-선언은 데이터 형과 사용하고자 하는 변수의 이름을 지정, 세미콜론(;)으로 한 라인 종료
데이터형 변수이름;
int num;
int price;
String username;
-->여기서 변수이름을 가독성 좋게 만들어야돼
6-3. 변수의 할당
-선언된 변수에 원하는 값을 대입하는 과정을 의미한다.
-값의 대입은 대입연산자(=)를 사용하여, 우변에서 좌변으로 대입된다.
변수이름 = 값;
num = 100;
price = 35000;
usrname = "자바킴"
6-4. 변수의 선언과 할당 통합
-선언과 할당의 통합
데이터형 변수이름 = 값;
int num1 = 100;
int num2 = 200;
package value;
public class Main01 {
public static void main(String[] args) {
// 변수의 선언
int num1;
// 변수의 할당
num1 = 100;
System.out.println(num1);
num1 = 200; //변수의 재할당
System.out.println(num1);
}
}
//출력값:100
:200
6-5. 문자열 데이터
-String 형의 변수를 선언하고, 쌍 따옴표로 묶인 값을 대입
-빈 문자열이나 공백도 문자열 데이터이다.
// 공백포함 문장
String msg = "안녕하세요, 자바";
// 빈 문자열 값
String blank ="";
// 숫자값이 쌍따옴표로 묶였다면 문자열이다.
String age = "20";
6-6. 문자열 데이터의 덧셈
-문자열 + 기본자료형 -> 기본 자료형의 데이터가 문자열로 변환되고, 두 문장이 합쳐진다.
int age = 20;
String name = "자바학생";
String result = age +name;
//20자바학생
6-7. 변수 이름 명명 규칙
-변수 이름은 영문, 숫자, "_","$" 만 사용 가능하다.
-변수 이름의 첫 글자는 숫자로 시작될 수 없다.
-대/소문자를 엄격하게 구별하므로 오타에 주의한다.(num1과 Num1은 완전 다른 변수)
-자바에서 사용하는 예약어(키워드)를 사용할 수 없다.
-myname, (myName, my_name user_input, userPassword)-> 이렇게 사용함
6-8. 값의 할당 방법
-boolean은 true(참), false(거짓) 중의 한 가지만 갖는다.
boolean isKorean = ture;
boolean isJapanese = false;
-char는 홑따옴표('')로 감싸진 한 글자만 대입할 수 있다.
char first = '보';
-long, float, double은 다른 데이터 형과의 구별을 위해 값 뒤에 데이터 형의 첫 글자를 접미사로 가질 수 있다.
-접미사는 대/소문자를 가리지 않지만 가급적 대문자로 사용하는 것이 좋다.
long money = 500000000;(x)
long money = 500000000L;(0)
float PI = 3.14F;(0)
double lat = 128.231231D(0)
6-9. 변수 사용의 제약
(1) 반복하여 다른 값이 할당될 수 있지만, 선언은 중복 불가
int num1 = 100;
num1 = 200; // 변수 재할당
int num1 = 300; //임 num1의 선언된 변수이므로 에러
(2) 선언되지 않은 변수는 사용할 수 없다.
int num1 = 100;
num1 = 200;
num2 = 300; // 선언되지 않은 변수이므로 에러
(3) 값이 대입되지 않은 변수는 다른 변수에 대입하거나 출력할 수 없다.
int num1;
int num2 = num1; // 할당되지 않은 변수를 대입해서 오류
System.out,println(num1); // 할당되지 않은 변수를 출력해서 오류
(4) 생성된 변수는 다른 변수에 대입될 수 있다.
int num1 = 100;
int num2 = num1;
package value;
public class Main02 {
public static void main(String[] args) {
//각 할당되는 변수설정
int t = 250;
char s = '가';
boolean z = true;
//변수 출력
System.out.println(t);
System.out.println(s);
System.out.println(z);
System.out.println("-------------------");
//할당되는 변수 설정
long num1 = 12333132;
double num2 = 123.5D;
float num3 = 3.14F;
//변수 출력
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println("----------------");
//문자열 변수성정
String x = " java ";
int y = 10;
System.out.println(x+y);
//문자열+문자열
String language = "JA"+"BA";
System.out.println(language);
System.out.println("----------------");
int age = 20;
boolean iskorean = true;
String name = "자바학생의 나이:";
String name2 = "한국인 인가?";
String result = name+age;
String result2 = name2+iskorean;
System.out.println(result);
System.out.println(result2);
}
} //결과값:12333132
123.5
상수
7.1 상수 = 변하지 않는 수
-변수와 마찬가지로 메모리상에 존재하지만, 값이 변경될 수 없는 데이터
-final 키워드를 사용하여 선언된 변수는 상수로 생성된다.
->final를 앞에 사용하는 순간 변수는 재할당이 불가능하다.(읽기전용)
final int age = 20;
final float PI = 3.14F;
-메모리상에 이름이 생성되므로 접근은 가능하지만, 할당한 값을 변경할 수는 없다.
final int age = 20;
age = 21; //상수의 값을 변경하므로 에러
package value;
public class Main03 {
public static void main(String[] args) {
//일반변수
int width = 100;
//상수
final double PI= 3.14D;
System.out.println("width = "+ width);
System.out.println("PI = "+ PI);
// 값의 변경
width =200;
//상수 값이라서 재할당에 오류 생성
//PI = 3.141582D;
System.out.println("width = "+ width);
System.out.println("PI = "+ PI);
}
}
public class Main01 {
public static void main(String[] args) {
int num1 = 12;
int num2 = 8;
int result1 = num1 + num2;
System.out.println("12 + 8 = " + result1);
int result2 = num1 - num2;
int result3 = num1 * num2;
int result4 = num1 / num2;
int result5 = num1 % num2;
System.out.println("12 - 8 = " + result2);
System.out.println("12 * 8 = " + result3);
System.out.println("12 / 8 = " + result4);
System.out.println("12 % 8 = " + result5);
}
}
package operator;
public class Main02 {
public static void main(String[] args) {
// 나눗셈
int num1 = 7;
int num2 = 3;
int result = num1 / num2;
System.out.println("7 / 3 = " + result);
// 0으로 나누기
int zero = 0;
int result2 = num1 / zero; //여기서 오류 발생
System.out.println("7 / 0 = " + result2);
}
}
8-3. 단항 연산자
-어떤 변수(x)의 값에 대한 계산 결과를 다시 자기 자신에게 대입하고자 하는 경우의 약식표현
int x = 100;
x = x + 5; // x = 105
int x = 100;
x += 5; // x = 105
-단항 연산자는 모든 사칙 연산자에 표현이 가능하다.
-->+=, -=, *=, /=, %=
package operator;
public class Main03 {
public static void main(String[] args) {
int source = 100;
source += 100; //source = source + 100; 200
System.out.println(source);
source -= 50; // 150
System.out.println(source);
source *= 2; // 300
System.out.println(source);
source /= 100; // 3
System.out.println(source);
source %= 2; // 1
System.out.println("source = " + source);
}
}
8-4. 증감 연산자
-단항 연산자로 표현할 수 있는 식에서 계산 대상 값이 1인 경우, 덧셈과 뺄셈에 대해서는 다시 한번 축약할 수 있다.
-덧셈의 경우
(1) x = x + 1;
(2) x+= 1;
(3) x++;
(4) ++x;
-뺄셈의 경우
(1) x = x-1;
(2) x-= 1;
(3) x--;
(4) --x;
package operator;
public class Main04 {
public static void main(String[] args) {
int plus_num = 1;
plus_num = plus_num + 1;
plus_num += 1;
plus_num++;
++plus_num;
System.out.println(plus_num);
int minus_num = 5;
minus_num = minus_num - 1;
minus_num -= 1;
minus_num--;
--minus_num;
System.out.println(minus_num);
}
}
8-5. x++과 ++x의 차이 (x의 증가되는 시점이 다르다)
-증감 연산자는 그 자체가 다른 연산식의 피연산자로 사용될 수 있다.
-이 때, 증감 연산자의 표시 위치에 따라 결과가 서로 다르게 적용된다.
-X++
:증감 연산자가 뒤에 표시되는 경우, 현재 X의 값을 먼저 수식에 적용하고, 나중에 X에 대한 1증가를 처리한다.
int a =100;
int x =1;
int y = a + x++;
// y:101, x:2 (x가 y값을 먼저 수식하고 x값이 증가한다)
-++X
:증감 연산자가 앞에 표시되는 경우 먼저 현재 X의 값을 1 증가 시킨 후, 그 결과를 수식에 적용한다.
int a = 100;
int x = 1;
int y = a + ++x;
// y:102, x:2