주말에 정리를 해보자
어떤식으로 정리를 해야할까...
프로그램/ 정의 / 메서드 / 수업중 꿀팁
위 4가지로 나눠서 하는 정리를 하는게 좋으려나
자바 개발 도구 (Java Development Kit)
amazon correto 아마존 코레토 : 오픈 JDK
컴파일러 : 사람의 언어를 기계어로 번역 해주는 프로그램?
환경변수을 설정해야 컴퓨터 어디서든 사용할 수 있게 해줌
통합 개발 환경
자바는 이클립스로 연습을 한다.



위 압축파일을 다운 받아서 압축 해제 하면 사용이 가능하다.

화면 구역 정리

클래스 처음 화면

프로젝트와 패키지, 클래스를 만들면 이클립스 저장폴더에 자동으로 폴더가 생긴다.
bin : binary = 2진수 : 컴퓨터가 보는 파일
src : 우리가 만들고 보는 파일
자바 클래스 (Java Cless) : 자바의 파일 단위

Java Comsole Application
자바 콘솔 어플리케이션을 실행하기 위해서는 메인 메서드가 필요하다.

프로젝트 만들기



패키지 만들기

클래스 만들기

1. 패키지를 같이 생성/ 이미 패키지가 있으면 생성 돼있는 패키지 이름 자동
2. 클래스 이름
3. 메인 메소드 자동 생성
소스관리(형상 관리) 도구
git 설치
git hub 설치
프로젝터 생성> 프로젝트 이름 오른쪽클릭 > show in> system explorer
>자바 폴더로 들어가서 위에 파일 > window powershell
git init
git config --local --list
git config --global user.name 'seonjangwon'
git config --global user.email 'wkddnjs740@naver.com'
git config --global --list
차례대로 입력

확인
네임, 이메일 지우는 법
git config --global --unset user.name
git config --global --unset user.email
이제 git hub홈페이지로 들어가서
git hub의 내 정보에서 your repositories에서 new를 눌러서 만들어서

1. 이름
2. 저장소 설명
3. 만들기
다 만들고 나면 이런 페이지가 뜬다.

여기서 빨간 부분을 복사해서 윈도우 파워셀에 입력
git config --local --list 을 입력해서 확인

파워셀에
git status를 입력

빨간색이 수정된 파일들
깃허브랑 지금 파일이랑 다른애들
git add .입력( . 중요)

git commit -m ‘나의 첫 커밋’ 입력

git branch -M main입력
git push -u origin main
git push -u origin master
을 입력하면 처음으로 설정하는 사람은

의 크롬 페이지가 뜨는데 초록색을 눌러주면 된다.

ranch를 안하면 master에 해야 하고 main에 사용하려면 git branch -M main입력을 해줘야한다.
이제 처음 등록 끝!
이제부터는 파일을 생성하고나서 올릴 때
이클립스로 파일을 추가하고 git status를 치고

git add .
git status

git commit -m ‘test2’

git push -u origin main

한번더 클래스를 수정을 해보면

git add .
git status
git commit -m '뭐가 수정된 것인지 쓰자'
git push -u origin main
위 과정을 하고 깃 허브에 들어가보면

클래스 안에서 뭐가 수정된 것인지 나온다
빨간줄은 삭제
초록줄은 추가
long 타입 변수
long longVar = 10L;
long 롱타입 변수 뒤에는 L을 쓰지만 출력 되지 않는다.
float 타입 변수
float floatVar = 1.234f;
float 타입의 변수 뒤에는 f 를 붙여준다
double 타입 변수
double doubleVar = 1.234;
double
bool 타입 변수
boolean booleanVar = false;
string 타입 변수
string stringVar = “스트링 타입의 데이터는 더블쿼터로 묶어줍니다. 123asdf”;
정수(int) -> 실수 (double) : 형 변환
실수 8byte > 정수 4byte : 강제 형 변환(casting)
실수는 8byte 정수는 4byte라서 정수에서 실수를 가는 형변환은 다른 조치가 없이도 가능
하지만 실수에서 정수로 가는 형 변환은 byte가 줄어드는 형 변환이라서 (int) 라는 코드??가 필요하다.
하지만 (int)를 사용하면 소수점 밑으로 반올림이 아니라 제거다.
` : 밸택, 그레이브
~ : 틸드
! : 느낌표
@ : 앳
# : 샾
^ : 캐럿
& : 앰퍼센트
* : 애스터리스크
- 하이픈, 대시
_ : 언더스코어, 로우대시, 언더바
= : 이퀄스
" : 쌍따옴표, 더블쿼터
' : 싱글쿼터, 어포드트로피
: : 콜론
; : 세미콜론
/ : 슬래시
| : 버티컬바
\ : 백슬래시
() : 소괄호
{} : 중괄호
[] : 대괄호
<> : 꺽쇠괄호
패키지 : 클래스를 모아둔 묶음

패키지 이름 X :default package

클래스를 만들 때 패키지를 지정하면 패키지 이름이 표현됨
클래스 기본 구조
패키지 이름
클래스 이름
메인 메서드
종류 : and연산(&&), or연산(||), not연산(!)
a와 b가 모두 true라면 결과는 true
a와 b 중 하나라도 false가 잇으면 결과는 false
a와 b 가 모두 false라면 결과는 false
a와 b 중 하나라도 true가 있으면 결과는 true
반전시키는 역할
기존에 있는 값이 true라면 결과는 false
기존에 있는 값이 false라면 결과는 true
종류 : ++, --
변수 앞 또는 변수 뒤에 위치 할 수 있음
앞이냐 뒤에 따라서 계산 결과가 달라짐.
++이 붙으면 무조건 1씩 증가
--가 붙으면 무조건 1씩 감소
++var : var이 가지고 있는 값에 1을 증가기킨 뒤 전체 연산에 사용함
var++ : var이 가지고 있는 값을 전체 연산에 사용한 뒤 var의 값을 1 증가 시킴
반복문 같은 곳에 많이 사용 된다고 한다.
반복 숫자를 구하거나 등등
System이라는 클래스에서 println이라는 메서드를 가져다 쓴다.
메서드를 가져다 쓴다 = 메서드를 호출한다
print() : ()안에 있는 내용을 출력하고 줄은 그대로
println() : ()안에 있는 내용을 출력하고 줄을 바꿈
String 클래스에서 제공하는 length()메서드 호출
length() : String 변수의 길이값(글자수)을 알려줌
공백도 한글자
스캐너 객체를 선언해야 활용가능
파이썬의 input과 같은 사용
Scanner scan = new Scanner(System.in);
위 문장은 스캐너객체를 선언한다.
우변
new : 새로운 객체 (인스턴트)선언 (키워드)
나머지 스캐너 클래스 생성자 (생성자 : 객체 생성양식) : 생성자랑 객체만 기억해도 된다고 하심 아직 생성자 객체에 관한 것을 안배워서 그런가
가로 안 : 매개변수
System.in : 사람의 의해서 시스템에게 주는 것
System.out : 시스템에 의해서 사람에게 주는 것

오류를 눌른 후 import ‘Sanner’ (java.util)를 누르면
클래스 이름 위 쪽에 import java.util.Scanner; 가 생김
아니면 클래스 이름 위에 import java.util.Scanner;를 친다.
nextInt(); : 정수를 입력
next(); : 띄어쓰기 또는 엔터 전까지 입력한 내용을 저장
nextLine(); : 엔터 전까지 입력한 모든 내용을 저장
int num = 0;
num = scan.nextInt();
어떤 상황(조건)에 따라 프로그램 실행을 제어(조건문,반복문)하는 문장
if
if ~ else
if ~ else if ~ else
if ~ else if ~~~else
if (조건식)
사용 방법
if (조건식){
조건이 true일 때 실행하는 부분
} else {
w조건이 false일 때 실행하는 부분
}
if(조건식1) {
조건식1이 true일 때 실행
} else if(조건식2) {
조건식2가 true일 때 실행
} else if(조건식3) {
조건식3이 true일 때 싱행
} else {
조건식 123 모두 해당되지 않을 때 실행
}
if문 안에 if문을 하나 더 만들어서 더 자세하게 만든 if문
비교연산신을 사용해서 합쳐서 만들 수도 있다.
if 양수판단
if 홀짝판단
else
else
스위치 케이스는 실행을 했을 때 1~4번 을 선택하는 옛날에 마우스가 없던 시절처럼??
이게 왜 나오는 건지 모르겠지만
스위치 케이스는 한계가 많아서 잘 안쓴다.
케이스가 끝 날때 break;를 써준다
break;를 안쓰면 브레이크를 만날 때 까지의 숫자를 출력
변수 값을 다른 타입으로 해도 조건용 변수와 변수값이 같은 타입이라면 가능하다.
어떠한 조건에서 동일한 코드를 반복해서 실행할 때
특정 조건을 도달할 때까지 반복해서 실행 할 때
반복문에는 반복 조건 반복종료 조건들이 필요함
반복 조건 : 반복문 내용을 실행 할지를 판단하는 조건
조건을 만족(true) 해야만 반목문 내용이 실행 된다.
반복문 종류
실행방법
for (반복변수 초기화; 반복변수 종료조건; 반복변수 증감식){
반복 실행 문장
}

for문의 실행 순서
반복문
무한 반복 등을 사용할 때 많이 쓰임
사용 방법
while (반복조건) {
반복 실행 내용
}
do {
반복 실행 내용
} while (반복 조건); // 세미콜론 필수
while문은 조건이 맞지 않으면 반복실행내용을 전혀 실행하지 않음!
do while문은 조건이 맞든 맞지않든 일단 한번은 실행하고 반복조건을 따짐
do while문 뒤에 ;(세미콜론)을 찍어줌
주의사항

랜덤으로 숫자를 출력
특정 범위를 지정하면 해당 범위 내에서 숫자를 무작위로 발생시킴
0~1 사이의 실수
(int) (Math.random() 10) + 1;
(int) : 실수를 정수로 형변환 자세한건 조금 뒤에
(Math.random() 10) + 1 : 0~1이라 *10을 해서 1~10으로 나오게해줌

클래스 안으로 들어가서 타입 확인

정수는 실수로 변환은 다른 코드가 없어도 가능하지만
실수를 정수로 변환은 (int)를 앞에 붙여서 변환을 해줘야한다
실수를 정수로 교환을 할 때는 무조건 소수점 이하는 버린다
random()메서드는 0~1의 작은 실수를 출력해서 (int)를 사용하면 0이 나온다.
반올림이 아니라 소수점이하는 버린다. 그래서 (int)를 사용하면 0이 나온다.
그래서 (int)를 하기 전에 *10을 사용해서 정수부분만 사용하자
import java.io.*; 또는
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
를 먼저 해야함
메인 메서드 앞에서 throws IOException를 하거나 try catch를 해야함
Buffer에 저장해서 flush로 보낸다.
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); : 선언
bw.write(); : 이거는 문자열 출력, 정수 출력하려면 String.valueOf(); 사용
bw.flush(); : 이거는 보낼 때 마다 사용
bw.close(); : 이거는 클래스 마지막에 해줘야함
bw.flush()메서드를 많이 사용하면 느려짐 한번에 보내는 것이 좋음
\n : 문자열(""안)에서 띄어쓰기로 사용
bw.newLine(); : \n말고 이 메서드로 띄어쓰기 가능
Buffer에 저장해서 받는다?
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); : 선언
br.readLine(); : 이거는 문자열을 받는다
num = Integer.parseInt(br.readLine()); : 정수를 받을 때 문자열로 받아서 정수로 변환
String.valueOf() : 정수를 문자로 형변환
br.close(); : 클래스 마지막 해줘야함
import java.util.StringTokenizer;을 먼저 해줘야한다.
String var = “”; 을 하나 선언해주고 (입력으로 받는다면)
StringTokenizer st = new StringTokenizer(var);을 사용해서 var 변수에 있는 문자열을 띄어쓰기로 구분해서 나눠준다.
num = Integer.parseInt(st.nextToken()); = nextToken()을 이용해서 var에서 첫자리를 가져오고 문자열로 가져왔으니 Integer.parseInt()를 이용해서 정수로 형 변환을 시켜준다.
컨트롤 쉬프트 f : 자동 줄 정리
알트 + 위아래 화살표 : 줄이동
sysout + 컨트롤 + 스페이스바를 같이 누르면 System.out.println();이 자동으로 나온다
ln은 자동으로 나오니 지워서 사용하자
\t: 문자열(""안)에서 사용하면 탭키 들여쓰기를 해줌
컨트롤 + 쉬프트 + o : 자동 import기능
이클립스 메뉴에서 window > preference에서 generel에서 Workspace에서
MS949에서 UTF-8으로 교환해 주면 된다.

& : 앤퍼센트 = 그리고 의 의미를 가짐

노란줄은 오류는 아니고 주의 요망 정도??
위 노란줄은 이 변수는 사용하고 있지 않다
InputMismatchException
타입 미스매치
맨 밑에 줄에 예외가 발생한 위치


The left-hand side of an assignment must be a variable
좌변 : left hand
우변 : right hand
Integer.parseInt(); : 문자열을 정수로 형 변환
String.valueOf() : 정수를 문자로 형 변환
(int) : 실수를 정수로 강제 형 변환
정수를 실수로 형변환은 그냥 정수에 실수를 덮어쓴다는 느낌으로?
오 일주일 조금 넘은 내용을 한 곳에 넣으면서 보기 쉽게하는 것은 너무 어렵네
내가 잘 정리 한 것인지도 모르겠고
주말에 한번더 보는 겸 정리 겸??