Class
객체를 만들기 위한 일종의 설계도.
자바에서 모든 코드는 반드시 클래스 안에 존재 해야 하며,
서로 관련된 코드들을 그룹으로 나누어 별도의 클래스를 구성
클래스들이 모여 하나의 Java 애플리케이션 구성
OOP 객체 지향 프로그래밍, Class가 반드시 필요, 붕어빵틀
주석
코드에 대한 설명이나 그 외 다른 정보를 넣을 때 사용하는 것으로
컴파일 시 컴파일러가 주석 부분은 건너 뜀
/* / : 범위 주석, / 와 */ 사이 내용은 주석으로 간주
// : 한 줄 주석, // 뒤의 내용은 주석으로 간주
Main
public static void main(String[] args) 는 고정된 형태의 메서드 선언부로
Java Application을 실행하는데 필요한 메서드 (프로그램 실행 시 java.exe에 의해 호출됨)
모든 클래스가 main메서드를 가지고 있어야 하는 것은 아니지만
하나의 Java애플리케이션에는 main메서드를 포함한 클래스가 반드시 하나 이상 존재해야
함.
[] == 스트링 배열
import == 다른 패키지에서 클래스 가져오기
클래스는 필드, 생성자, 메서드 로 이루어져 있고 필요할 때 사용 (필수는 아님)
예시) System.out.println(); 메서드(기능) 함수
//"" 안에 작성된 코드는 단순 문자열로 인식
//"" 안에 작성되지 않은 코드는 숫자, 변수로 인식
System.out.println("1+2"); //문자열 출력 1+2
System.out.println(1+2); //연산 3
System.out.println("90+70+65="+90+70+65); //+를 문자열 이어쓰기로 인식
System.out.println("90+70+65="+(90+70+65)); //실제 연산을 위해 소괄호 사용
자바는 사칙연산의 우선 순위를 그대로 따른다
우선 계산을 원하면 () 소괄호 사용
변수
상자 비유 (옷 넣은 상자에 '의류' 이름 기재)
변수에 기록된 값은 지속적으로 사용 가능
CPU(중앙처리장치)는 연산만
기억은 메모리(RAM 주기억장치)가
RAM이 기억하고 있는 것들을 CPU가 불러들여서 연산 처리
RAM은 휘발성 메모리 (지속기억X)
보조기억장치(HDD/SSD)+RAM
보조기억장치 -> 램 -> CPU -> 출력
클래스 이름 바꾸기 익스플로러에서 해당 클래스 선택 후 F2
생성된 .java파일과 class 오른쪽에 작성된 클래스명(이름)은 같아야 한다!
변수 (Variable)
-메모리(RAM)에 값을 기록하는 공간
-공간에 기록되는 값(Data)이 변할 수 있어서 변수라고 한다.
-변수는 여러 종류 존재 (저장되는 값의 형태, 크기가 다름)
변수 사용의 장점
1. 가독성 증가
2. 재사용성 증가 (한번 만든 변수를 계속 사용)
3. 코드 길이 감소
4. 유지보수성 증가(코드 수정이 간단해짐)
비트 - 컴퓨터가 나타내는 데이터의 최소 저장 단위로서 2진수 값 하나를 저장할 수 있는 메모리공간을 의미
8bit = 1byte = 256가지의 값 표시 가능
bit byte kB mB gB tB pB eB zB yB ...
1byte로 영어나 숫자등의 문자 표시 가능
2byte로 세상 모든 문자 표시 가능 (유니코드 문자체계 ex) a=97)
변수의 선언 : 메모리 공간에 데이터를 저장할 수 있는 공간을 할당하는 것
변수 값 대입 : 변수에 값을 집어 넣는 것
자바에선 저장 크기 단위 때문에 숫자 타입 분류
문자형 - 문자 하나
문자열 - 여러 문자
논리형 - 참이냐 거짓이냐 true/false
String - 참조형
String을 제외한 나머지 형태의 변수(boolean, char, int, double ...) - 기본 자료형
int iNum; 정수형 4byte - 가장 많이 사용
프로그래밍에서 대입되는 데이터(값 자체)를 리터럴 이라는 단어로도 표현
리터럴 : 변수에 대입되거나 작성되어지는 값 자체
자료형에 따라 리터럴 표기법이 다름
long longNumber = 10000000000L;
리터럴 값 자체를 int 로 인식하고 있다
뒤에 L을 붙여줌으로써 long 자료형인 것을 나타내줌
float floatNumber = 1.2345f;
1.2345까지만 쓰면 double 자료형으로 인식하기 때문에
변수 타입인 float과 일치하지 않아 Type mismatch 라는 에러가 발생
문자형(char)리터럴 표기법 : ''(홑따옴표)
변수 명명 규칙
1. 대소문자 구분, 길이 제한 X
2. 예약어 사용 X
3. 숫자 시작 X
4. 특수문자 $, _ 만 사용 가능 (하지만 쓰지 않는다)
5. 카멜표기법 (맨 처음 소문자 시작, 후속 단어 첫 글자 대문자)
6. 변수명은 언어를 가리지 않는다 (하지만 쓰지 않는다. 주로 영어)
상수란?
수학에서는 변하지 않는 값 의미
컴퓨터(Java)에서는 한 번만 저장(기록)할 수 있는 메모리 의미
상수 초기화 방법
1) 선언과 동시에 초기화
final int NUM = 100;
2) 선언 후 초기화
final int NUM;
NUM = 100;
형변환(casting)
값(Data)의 자료형을 바꾸는 것 (boolean 제외)
컴퓨터의 값 처리 원칙
같은 종류 자료형만 대입 가능
같은 종류 자료형만 계산 가능
계산의 결과도 같은 종류의 값이 나와야 함
이러한 원칙이 지켜지지 않은 경우에 형변환이 필요함
형변환 하고자 하는 값과 자료형의 표현 범위 차이에 따라 형변환 방법이 나뉨 (자동 형변환, 강제 형변환)
자동 현변환
값의 범위가 큰 자료형과 값의 범위가 작은 자료형의 연산 시
컴파일러가 자동으로 값의 범위가 작은 자료형을 값의 범위가 큰 자료형으로 변환
강제 형변환
값의 범위가 큰 자료형을 값의 범위가 작은 자료형으로 변환
강제 형변환 시 데이터 손실이 발생할 수 있음 → 데이터의 변형, 손실을 감수하고 강제 변환
Git hub
강사님의 repositories(레파지스토리)를 통해 그날 코딩 재확인 가능
Git 설치
01_java폴더 -> open git bash here
git init : 깃 초기화 명령어 (해당 폴더를 깃이 추적 관찰 할 수 있는 대상으로 지정함)
최초 한번만
숨김폴더 .git을 삭제하는 것으로 삭제 가능
git status : 현재 로컬 레파지스토리의 상태 조회 (중간중간 확인)
로컬(지역의 == 현재 컴퓨터) 레파지토리 원격(==리모트 remote) 레파지토리(깃허브에서 만든 저장소)
git add 올릴파일명(스테이징 처리 : 스테이지로 올리는 것)
-1. git add .(모든 파일 올리기)
git reset (모든 파일의 스테이징을 취소)
-2. commit (git에서 말하는 저장 단위 -> commit이 가능하려면 이전에 스테이징이 되어 있어야 함)
git commit -m "커밋메시지"
.metadata 폴더 (작업 내역 등 모여있는 필요 없는 내용. 깃허브에 업로드하면 귀찮아짐)
git ignore.io
ec 검색 - 나오는 내용 복사해서 메모장에 붙여넣기 저장 (모든 파일, 01_java 위치에(git이 추적중인 폴더), 파일명은 .gitignore)
git bash 에서의 복사 붙여넣기 ctrl c / shift insert
config 메세지에서 user.email, user.name 입력 (최초 한번)
Profile 아이콘 - your repositories - New
자바 코딩 깃허브에 올리는 것을 Push라 함
-3. git push (로컬에 저장된 commit 을 원격으로 업로드 하는 것)
CLI : 터미널 창에서 직접 명령어를 실행해가며 작업하는 것
GUI : 화면에서 클릭해가며 작업하는 것(Graphic User Interface) ex 소스트리
명령어 공부, 메모리 소모 등의 이유로 GUI 보다 CLI 권장