오늘은 Java 설정에 대해서 주로 다뤄보고 기초에 대해서 배워보도록 하겠습니다.
목차 | |
1. | 설정 |
2. | |
3. | 변수 선언 |
4. | 연산자 |
5. | 자료형 변환 |
6. | Scanner |
7. | if문 |
8. | 예제 문제 |
9. | 느낀점 |
1. 설정
그러면 자바를 인터넷에서 먼저 설치를 해야합니다. 인터넷에서 jdk를 검색한 후 jdk-11를 다운로드 해줍니다.
Python에서 한 것처럼 환경 변수에 JAVA_HOME을 새로 만들고 변수 값에 jdk-11 파일의 bin 파일의 경로를 넣으면 됩니다. Path도 똑같이 해줍니다.
그 다음에는 Tool인 Eclipse를 다운로드 해야합니다. Eclipse를 검색한 후 Eclipse packages에서 오른쪽에 있는 More downloads의 Older Versions를 들어가줍니다. 2021 - 09에 들어가 Java and Web을 다운로드 해주시면 됩니다.
다운로드 하시면 압축을 풀어주시면 됩니다. 다만 알집말고 반디집으로 압축 풀어주시는 것을 추천드립니다. 다 다운로드 하시면 드라이브에 _java_workspace 파일을 새로 만들어줍니다.
이제 Eclipse를 압축을 풀어주시고 _java_workspace 파일에서 이클립스를 실행해줍니다. 그러면 파이썬처럼 실행 화면이 뜨게됩니다.
일단 나머지 창들을 다 지워줍니다. 그 다음부터는 전부 차례대로 해주시면 설정이 끝납니다.
Window -> Show View -> Other -> Package Explorer
File -> New -> Other -> Java_project (이름만 지어주고 나머지 동의 창은 거절해도 됨)
Window -> Prererences -> encoding 검색 (한글 깨짐 방지용) -> Workspace -> 하단의 Default를 Other : UTF - 8로 변경
Window -> Prererences -> complier 검색 -> level을 11로 변경
Window -> Prererences -> Installed JREs 검색 -> Add -> Standard VM -> JRE home에 jdk -11 파일 경로 삽입
java_project 파일 클릭 -> Properties -> Java Build Path -> Libraries -> Edit -> Workspace default JRE
파일 생성과 클래스 생성 방법은 다음과 같습니다.
파일 생성 : src파일 -> New -> Other -> Package
클래스 생성 : src파일 -> New -> Other -> Class (Public 박스는 항상 체크하기)
2. print
package day01;
public class HelloWorld {
public static void main(String[] args) {
// TODO Auto-generated method stub
//주석 : 프로그램이 인식하지 않는 라인 ctrl + /
//주석 : 한줄주석
/* 여러줄 주석
* java 반드시 ; 마무리
* println() : 줄바꿈이 있는 출력
* print() : 줄바꿈이 없는 출력
* printf() : 형식을 가지는 출력 (c언어 주로 사용)
* "문자열" '한글자만 가능' 'a' '가' "hello"
* */
System.out.println("Hello World~!!");
//선언 + 초기값
int num = 100;
//선언만
int num1;
//기본 자료형(8개) 자료형은 선언만하면 기본값 X 기본값을 자동으로 주지 않음.
num1 = 200;
System.out.println(num);
System.out.println(num1);
// 같은 자료형을 가지는 변수는 한번에 선언 가능.
int num2=1, num3=2, num4=3;
}
}
Python과는 다르게 Java에서는 print를 System.out.을 앞에 붙여야 합니다. 앞에 붙은 문자가 길기에 'syso' + ctrl + spacebar를 하면 System.out.을 바로 만들어줍니다. 단축키라고 생각하시면 됩니다.
3. 변수 선언
/* 변수선언
* 자료형(타입) 변수명;
*
* 변수선언 + 초기화
* 자료형(타입) 변수명 = 초기값;
* 기본 자료형은 초기값을 주지 않음. 반드시 초기값을 지정.
* 변수 = 지역변수 { 사용가능한 범위 }
* 메서드 { }
* 명령어 { }
* */
int num = 100;
System.out.println(num);
// int num = 200; // 변수는 중복선언 안됨.
int num1 = 1, num2 = 2, num3 = 3; // 같은 자료형 한줄 선언 가능.
System.out.println(num1);
//syso ctrl + space Bar
System.out.println();
num1 = 200; // = 대입연산자 오른쪽의 값을 왼쪽 변수에 덮어쓰기
System.out.println(num1);
// 기본자료형은 지역변수 범위(scope) { }
{
int num4 = 1000;
System.out.println(num4);
System.out.println(num1);
}
// System.out.println(num4); // 사용 가능 범위를 벗어남. error
/* 한글자만 저장 가능한 char
* "문자열" '한글자'
* String char
* */
char ch = 'a';
System.out.println(ch);
double dou = 3.1;
System.out.println(dou);
byte b = 2;
System.out.println(b);
//float / long 자료형은 접미사를 붙여야 사용가능.
float f = 1.2f;
System.out.println(f);
long l = 11L;
System.out.println(l);
boolean boo = true; //true / false만 가능.
System.out.println(boo);
// 0으로 시작하는 정수값 = 8진수로 인식 0~7 8 => 10
// 2진수(01), 8진수(0~7), 10진수(0~9), 16진수(0~15 0~9ABCDEF)
int a = 010;
System.out.println(a);
int a1 = 0x0B;
System.out.println(a1);
변수는 중복선언이 되지 않고 char이 어떤 역할을 하는지 float와 long을 사용할 때 f와 L을 같이 붙여준다는 점을 신경써주면 됩니다.
4. 연산자
// + - * / %(나머지)
// + 문자열 => 연결연산자
num1 = 100;
num2 = 200;
int sum = num1 + num2;
System.out.println(num1 + num2);
System.out.println("두 수의 합 : " + sum);
System.out.println("두 수의 합 : " + (num1 + num2));
// 정수 / 정수 = 정수
// 실수 / 정수 = 실수 정수 / 실수 = 실수 실수 / 실수 = 실수
// 대입 연산자 : += -=
// 변수 = 변수 + 변수2 => 변수 += 변수2 누적 합계
a = 1;
a += 5; // a = a + 5
System.out.println(a);
// 증감 연산자 : ++ --
// 변수 = 변수 + 1 변수 = 변수 - 1
a++; // 현재 a 값에 1증가
++a; //
System.out.println(a);
System.out.println("-----------");
System.out.println(a++);
System.out.println(++a);
소수점을 표현하기 싶다면 double를 주로 이용해주고 (정수 나누기 정수), (실수 나누기 정수), (정수 나누기 실수), (실수 나누기 실수)들의 차이점을 잘 알고 계셔야합니다.
// 연산자 정리
/* 대입연산자 : = += -= ...
* = 을 기준으로 오른쪽의 값을 왼쪽의 변수에 저장
* 왼쪽의 값은 반드시 변수여야 함.
* a = b; (O)
* 1 = a; (X)
* a+=1; a = a + 1; a++;
* */
int a = 10;
int b = 5;
a = b;
System.out.println(a);
a+=10;
System.out.println(a);
a++;
System.out.println(a);
a--;
System.out.println(a);
/* 산술연산자 : + - * / %(나머지)
* 나누기(/)
* 정수 / 정수 = 정수 (10/3 = 3.0) 소수점을 버림
* 정수 / 실수 = 실수
* 실수 / 정수 = 실수
* 실수 / 실수 = 실수
* 값 / 0 => 예외 발생(Exception)
* 자료형이 double / 0 => infinity 발생
* */
// System.out.println(a/0);
double c = 3.0;
System.out.println(c/0);
/* 비교 연산자 : 비교 연산자의 결과는 반드시 true / false
* >=(이상), <=(이하), >(초과), <(미만), ==(같다), !=(같지않다)
* 3 > 5 => false
* 논리연산자 : && || !
* a==0 && b==0 (and) 두 조건 모두 true일 경우 true 리턴
* a==0 || b==0 (or) 두 조건 중 하나만 true여도 true 리턴
* !(a==0) (not) a상태 반대
* */
System.out.println(3 < 5);
System.out.println(3<5 && 5> 9);
System.out.println(!(3 < 5));
/* 조건선택연산자 : 3항연산자
* (조건식) ? true : false;
* */
System.out.println((3<5) ? "참입니다." : "거짓입니다.");
/* 국어, 영어, 수학 세 점수의 합계와 평균을 출력
* 조건 선택 연산자를 이용하여 평균이 70점 이상이면 합격, 아니면 불합격
* */
int kor = 78;
int math = 89;
int eng = 78;
int sum = kor + math + eng;
double avg = (double)sum / 3;
System.out.println("합계:"+sum);
System.out.println("평균:"+avg);
System.out.println(avg >= 70 ? "합격" :"불합격");
int num1 = 26;
/* num1이 짝수인지 홀수인지 출력 (조건선택연산자 활용)
* %
* String 클래스를 활용하여 문자를 출력
* */
String str = num1 % 2 == 0 ? "짝수" : "홀수";
System.out.println(str);
Python과 다르게 조건 선택 연산자(3항 연산자)를 이용할 수 있다는 점을 기억해두면 나중에 함축해서 표현하실 수 있습니다.
5. 자료형 변환
// 자료형 변환 : casting
/* 자료형 (변수의 타입)
* a = b : a의 자료형과 b의 자료형이 맞지 않다면 오류
* 자료형변환 양쪽의 자료형을 맞춰주는 역할
*
* 자동 자료형 변환 : 생략해도 문제가 되지 않는 상황
* int a = byte 자료형의 값
* 명시적 자료형 변환
* */
byte a = 10;
int num = a; //자동 자료형 변환 케이스
double num1 = 10.1;
num = (int) num1; // 소수점은 날아감 명시적 자료형 변환
System.out.println(num);
double d = 1 / (double)2;
System.out.println(d);
대표적으로 활용할 수 있는 케이스는 '정수 / (double)정수 = 실수'입니다.
6. Scanner
// 콘솔입력 : 콘솔에서 값을 입력받는 것을 의미
// Scanner 클래스 : 콘솔에서 값을 입력받을 수 있게 도와주는 클래스
Scanner scan = new Scanner(System.in);
System.out.println("숫자를 입력해주세요 >> ");
int num = scan.nextInt(); //숫자 입력
System.out.println("내가 입력한 수 >> "+num);
System.out.println("문자를 입력해주세요 >> ");
String str = scan.next(); //한단어만 입력 (공백 허용안함.)
System.out.println("내가 입력한 문자 >> "+str);
scan.nextLine(); //위에서 입력한 enter 처리용
System.out.println("여러단어를 입력해주세요 >> ");
String str2 = scan.nextLine(); //공백 포함
System.out.println("내가 입력한 문자 >> "+str2);
System.out.println("소수점 포함 실수 입력 >> ");
double num2 = scan.nextDouble();
System.out.println("내가 입력한 수 >> "+num2);
// String 문자는 한글자마다 index를 가지고 있음. (0부터 시작)
// next() : String return
// charAt(0) : 그 중 1글자만 추출
System.out.println("한글자 입력 >> ");
char c = scan.next().charAt(0);
System.out.println("내가 입력한 글자 >> "+c);
scan.close();
Scanner 변수 = new Scanner (System.in);를 활용하기 위해서는 Scanner 자체에는 오류가 생깁니다. 그렇기에 Scanner 부분에 마우스 가져가면 quick fixes 중에서 import 'Scanner'를 적용시키면 됩니다.
7. if문
/* 조건문 : if , switch
* if(조건식){ 실행문; }
* 실행문이 한줄일 경우 { 생략가능 }
* 실행문이 2중이상으로 늘어날 경우 error (2줄이상일경우 {} 필수)
* 조건식은 반드시 true / false 형태로 나올수 있게 작성
* */
int num = -5;
if(num >=10) {
System.out.println("num는 10보다 큽니다.");
} else {
System.out.println("num는 10보다 작습니다.");
}
// num 가 0보다 크면 "양수" 0이면 "0입니다." 0보다 작으면 "음수" 라고 출력
if(num > 0) {
System.out.println("양수");
} else if(num == 0) {
System.out.println("0입니다.");
} else {
System.out.println("음수");
}
// num 가 0보다 크면 "양수" 10보다 크면 "10보다큽니다."
// 0이면 "0입니다." 0보다 작으면 "음수" 라고 출력
num = -15;
if(num > 0) {
System.out.println("양수");
if(num >10) {
System.out.println("10 보다 큽니다.");
}
} else if(num == 0) {
System.out.println("0입니다.");
} else {
System.out.println("음수");
}
// num가 짝수인지 홀수인지 if문으로 출력
num = 4;
if(num % 2 == 0) {
System.out.println("짝수");
} else {
System.out.println("홀수");
}
if문의 경우에는 Python과는 크게 다를 바가 없기에 Python에서 배우던 내용을 이용하시면 됩니다. 단지 { }를 if문 시작과 끝에 맺음을 잘 해주셔야합니다.
8. 예제 문제
◉ 문제 1번
/* 국어, 영어, 수학의 점수를 입력받아 합계, 평균, 결과를 출력
* 평균은 소수점 살려서 출력
* 결과는
* 평균이 90 이상이면 A
* 평균이 80 이상이면 B
* 평균이 70 이상이면 C
* 나머지는 D
*
* 국어, 영어, 수학의 입력값이 0~100 사이의 값으로 입력
* 점수가 0~100값이 아니라면 잘못된 값
* */
정답:
◉ 문제 1번
9. 느낀점
Python보다 Java의 설정 준비 과정이 복잡해서 어지러웠다. Python의 기초를 공부했는데도 Java 설정 준비 과정이 헷갈리기도 했다. 설정 준비 과정을 집에서 연습을 해보면서 왜 이렇게 하는 이유에 대해서 이해를 하게 되었다. 다른 언어들의 설정 준비 과정은 어느 정도 복잡할지 궁금하기도 하였다.
'Java' 카테고리의 다른 글
Java 기초(객체 지향 언어) - AWS 풀스택 과정 6일차 (0) | 2024.07.22 |
---|---|
Java 기초(String, Method) - AWS 풀스택 과정 5일차 (0) | 2024.07.19 |
Java 기초(배열) - AWS 풀스택 과정 4일차 (0) | 2024.07.18 |
Java 기초(While, Do ~ While) - AWS 풀스택 과정 3일차 (0) | 2024.07.17 |
Java 기초(Switch, For) - AWS 풀스택 과정 2일차 (0) | 2024.07.16 |