Java
자바에서는 타입을 꼭 지정해야 한다!!!!
객체
- 사물함 안에 들어있는 물건
- 만들어진 물건을 사용하는 느낌...
=> 만들어진 물건을 이용해서 우리가 원하는 목적을 달성하는 것
=> 객체는 기능(method)와 저장소(field)로 이루어져 있다
- 객체 안의 field에 객체가 들어갈 수 있음 = 함수 안에 변수로 함수가 들어갈 수 있는 것처럼
java
- project 하나 당 앱 하나!
- package = 폴더
- xxx.java도 java문법을 갖고있는 text 문서
<font-size 변경하기>

main method
- public static void = 시작점


정적 타이핑
- 지역 변수를 지정할 때는 타입이 붙어야 함
- 우리가 타입을 지정할 수 있기에 사용할 수 있는 타입은 무한대
- 타입이 붙기에 유지 관리는 편할 듯...
compile
- MainClass.java -> MainClass.class로 이클립스가 컴파일 해주고 class파일이 실행됨
- 그러면 MainClass.java라는 텍스트 파일은 우리의 작성용
- src : source code 작성하는 곳
- bin: 실제로 code가 실행되는 곳

숫자형 데이터 타입
- 정수
- byte < short < int < long
- int 많이 사용
- 실수
- float < double
- double 많이 사용
- flotat는 꼭 끝에 f를 붙여야함
- 정수, 실수의 연산
- 정수끼리의 연산은 정수가 나옴
- 실수가 적어도 하나 있어야 실수가 나온다
디버깅
풍뎅이,,,,
원래는 main 클래스는 하나여야 함
boolean
- 논리형 타입
- 비교연산 혹은 논리 연산의 결과로 얻어낼 수 있음
8가지 기본 데이터 type
1. 값이 실제로 들어가는 타입
- 값을 만들면 그 안에 값이 진짜로 들어가 있음
- 숫자형
- 논리형
- 문자형(char): 사실은 숫자에 대응되는 문자를 보여줌
2. 키값이 들어가 있는 타입
- String type
public class MainClass05 {
public static void main(String[] args) {
//"김구라"라는 String type 객체를 heap 영역(사물함)에 만들고 그 참조값을 변수에 담기
String name ="김구라";
//name 안에 있는 참조값을 tmp변수에 복사해 주기
String tmp=name;
//"원숭이"라는 String type 객체를 heap 영역에 만들고 그 참조값을 name 변수에 덮어쓰기
//"원숭이"라는 객체가 사물함에 만들어지고 그 참조값은 덮어씀
name="원숭이";
//name 변수를 비우기(null은 참조 데이터 type 이 담길 수 있는 빈 공간을 의미한다)
name=null;
}
}

null
- 자바는 무조건 null이라도 값이 들어가야 함
- null은 비어있는 값으로 연산, 비교가 가능함
(단, oracle에서는 알 수 없음 이라는 의미도 있기에 불가능)
상수(read only)
- final이라는 예약어를 type 선언 앞에 붙여주기
final int MY_ID=999;
.은 하위폴더를 만드는 것임
-tesmain : .은 하위폴더를 만든다
패키지명의 이름
- 보통 패키지명을 길게 작성하여 겹치는 일을 없게 만든다!
type casting(형 변환)
범위를 넘어가는 걸 대입하면 실행할때 오류가 발생한다
int a=129;
byte b=(byte)a;
byte : -127~128
증감연산자
- 단항 연산자(++, --, +,- ,!) > 대입 연산자
- 하지만 후위 증가 연산자 = num3++는 현재 값 반환한 뒤에 증가시킴
<질문>
<보완>
예약어는 약속된 단어이기에 식별자로 사용할 수 없다. 예를 들어서 javascript에서 let을 변수명으로 사용할 수 없는 것 처럼!