0. GitHurb 사용법 마무리 정리
다른 pc에 원격(리모트) 레파지토리에 있는 코드 내려받는 법
**원하는 폴더에 git실행 후 git clone https://github.com/kimkihyun123455/01_Java.git
이후 이클립스 실행 후 내려받은 코드폴더에 Launch한 후 import project 실행 후 01_Java에 적용한다
이후 코드를 변경 후 원격 레파지토리에 업데이트 하기 위해서는 다음과 같은 순서를 따른다
1) git add .
2) git commit -m”메세지”
3) git push
로컬 레파지토리에 원격 레파지토리의 업데이트 된 코드를 내려받기 위해 git pull 실행
git의 간단한 명령어 목록
ls : 하위 폴더 목록
cd 디렉토리명 : 해당 디렉토리로 이동
git init : 새로운 레파지토리 초기화(설정)시 사용
git status : 현재 스테이징 되어 있는 파일 상태 확인
git add : 해당 코드를 스테이징
git commit : 변경된 스테이징된 코드를 로컬 레파지토리에 기록
git push : 로컬 레파지토리에 기록된 코드 원격 레파지토리에 업데이트
git pull : 원격 레파지토리에 업데이트된 코드 로컬 레파지토리에 업데이트
git clone 주소 : 원격 레파지토리에 올라가 있는 파일 복사해서 같은 형식 폴더 만들기
1.출력 메소드
출력메소드의 종류
System.out.println() : 한 줄 출력용 메서드로 출력 후 줄바꿈이 자동 실행된다
System.out.print() : 단순 출력용 메서드로 출력 후 줄바꿈이 없다
System.out.printf() : 정해진 형식으로 값을 줄바꿈 없이 출력
System.out.printf() 의 형식에는 다음과 같은 종류가 있다
%d : 정수형, %o : 8진수, %x : 16진수, %c : 문자, %s : 문자열, %f : 실수, %e : 지수형태
%g : 대입값 그대로, %A : 16진수 실수, %b : 논리형
예제로
int iNum1 =10;
int iNum2 =5;
System.out.printf(“%d+%d=%d\n”, iNum1, iNum2, iNum1+iNum2); ** \n은 줄바꿈을 실행한다
10+5=15 가 출력된다
boolean isTrue = false;
char ch ='가';
String str = "안녕하세요";
System.out.printf("%b / %c / %s\n", isTrue, ch, str);
false / 가 / 안녕하세요 가 출력된다
출력문자의 정렬방법
%5d : 5칸 공간 확보후에 오른쪽 정렬
%-5d : 5칸 공간 확보후에 왼쪽 정렬
%.2f : 소수점 2자리까지 표시
*** % 이후의 숫자와 형식은 얼마든지 바꿀 수 있다
escape 문자 : escape 시퀀스를 따르며 \ 로 이를 고지한다
\n : 줄바꿈
\t : tab 역할
\u : 유니코드 상 문자 ex) \u0041 = A
\ : \를 출력한다
2.Scanner Class
Scanner Class : 사용자로부터 입력되는 정수, 실수, 문자열을 처리하는 클래스
Scanner Class 를 불러오기 위해서는 다음과 같은 절차가 필요하다
import java.util.Scanner; : java.util 안에 있는 Scanner 클래스를 import(들여오기)한다
Scanner sc = new Scanner(System.in); : 내 프로그램 안에 스캐너라는 기계를 새로 만드는 것
Scanner를 사용한 구문의 예시는 다음과 같다
System.out.print("정수 1 입력 : ");
int input1 = sc.nextInt();
다음 코드들은 Scanner 를 이용하여 만든 예시이다
package edu.kh.variable.ex2;
import java.util.Scanner;
// ctrl + shift + o : 현재 파일에서 import 되지 않는 클래스 모두 import 해주는 단축키
public class ScannerExample2 {
public static void main(String[] args) {
// 사칙연산 계산기
// 두 실수를 입력 받아 사칙연산 결과를 모두 출력
// 단 출력된 결과값은 소수점 이하 2째자리까지만 표현
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 실수 입력 : ");
double input1 = sc.nextDouble();
System.out.print("두번째 실수 입력 : ");
double input2 = sc.nextDouble();
System.out.printf("%.2f + %.2f = %.2f\n", input1, input2, input1 + input2);
System.out.printf("%.2f - %.2f = %.2f\n", input1, input2, input1 - input2);
System.out.printf("%.2f * %.2f = %.2f\n", input1, input2, input1 * input2);
System.out.printf("%.2f / %.2f = %.2f\n", input1, input2, input1 / input2);
nextInt(); 사용 직후 nextLine();을 사용하게 될 경우 정수값 이후 문자열을 입력 할 수 없는 문제에 빠진다. 이는 정수값과 함께 입련된 Enter값(\n)이 입력버퍼에 남아있어 nextLine();이 이를 인식하여 입력되는 것으로 발생하는 문제이다. 이는 두 구문의 사이에 sc.nextLine(); 을 추가하여 Enter값을 한번 사용하는 것으로 해결 가능하다
3.연산자
연산자의 종류와 우선순위
직접 접근 연산자 : () . []
단항 연산자 : + - ~ !(부정연산자)
산술 연산자 : / %
산술 비교연산자 : < > <= >=
일반 논리 연산자 : &&(그리고) ||(또는)
상향 연산자
순수 대입 : =
산술 대입 : += -= = /= %=
나열 연산자 : ,
논리부정 연산자(!) : 논리값을 부정하여 반대값으로 변경한다
증감 연산자(++, –) : 피연산자의 값에 1을 더하거나 빼는 연산자로 위치에 따라 결과 값이 다르게 출력된다
** 전위연산은 진행되는 코드 안에서 먼저 연산이 이루어지며 후위연산은 가장 늦게 이루어진다
다음 예시는 주어진 문제를 풀어본 것이다
int a = 3;
int b = 5;
int c = a++ + --b;
// 최종적으로 a,b,c는 각각 얼마로 출력될 것인가 a: 3 b: 5 c: 7
System.out.printf("%d / %d / %d\n", a, b, c); // 4 4 7 값이 출력된다
**나는 int a와 int b이후 int c의 값에서 연산된 a와 b의 값을 고려하지 못하여 a=3 b=5 c=7이라는 값을 도출하였다
하지만 최종적으로 출력되는 값은 int c에 있는 a++과 –b연산을 거친 이후의 a,b값이므로
a=4 b=4 c=7이라는 값이 옳다.
** int c = a++ + –b; 라는 연산은 a++ + –b한 값을 c에 대입한다고 생각하기보다는
‘나는 a++ 과 –b를 연산하면서 a++ + –b라는 값을 c에 대입할게’라고 생각하는게 좋다
즉 c만을 위한 독립적인 연산이 아닌 전체적으로 적용되는 연산이라는 것이다
4.클래스의 분리
코드가 작성되어 있는 기능용 메서드와 기능용 메서드를 통해 메인 메서드를 실행하는 실행용 클래스를 분류하여 사용해본다