<구조>
자바는 보통 클래스{메소드, 메인메소드}의 형태로 구성되어있다.
둘 다 클래스 안에 선언되어야 한다는 말이다.
프로그램은 main() 메소드로부터 시작된다.
메인 메소드와 일반 메소드를 구분하는 기준은
public static void main(~~){~~;}
main이 붙어있냐 아니냐! 이다. 그렇기 때문에 당연히 1클래스 1메인메소드의 구성을 띤다.
자바에서의 문장은 클래스나 메소드 선언 등을 위해 {이렇게 블록으로 구성되는 경우}에는 }로 끝나고,
일반 문장은 (변수 정의나 뭐 코드 짠 거) ; 이렇게 세미콜론으로 표시한다. 꼭 써줘야 컴파일 에러가 안 나니 그냥 한 번 쓸 때 잘하자.
자바 주석은 한 줄은 //한 줄, 여러 줄은 /* 여러 줄 */ 이렇게 쓴다.
<변수>
자바는 한 번에 변수를 여러 개 선언할 수 있고(int a, b, c = 0;), 초기화를 안 해도(char a;) 변수 선언이 가능하다. 그냥 문장 끝에 세미콜론이나 잘 붙여주면 된다.
변수에 값을 대입하면 기존의 값은 없어지고, 마지막에 대입한 값이 저장된다.
<식별자>
나는 이것의 정의를 맨날 모르는데, 그냥 클래스, 변수, 상수, 메소드에 붙이는 이름을 말하는 거다.
흰둥이도 흰둥이고 깜둥이도 흰둥이인데 우리가 흰둥아 부르면 어쩔 수 없이 두 마리 다 와서 누구를 부른 것인지 확인해야 하니까, 식별하는 용도로 이름을 붙인 것이다. 해서 식별자이다.
유의해야 할 점은 자바는 대소문자를 구별하고, 이름의 첫번째 문자로 숫자는 못 쓴다는 거! 특수문자도 _랑 $만 허용한다는 거 정도..? 아 그리고 키워드(const, byte, default, if 이런 미리 정의가 되어있는 애들)도 못 쓰는데 앞선 의미를 생각해보면 자명한 사싈,,
그리고 자바 코드 이름 짓기의 예의라면
클래스 이름의 첫 문자는 ㄷ ㅐ문자로, 합성어는 각 단어들의 첫 문자들만 ㄷ ㅐ문자로!
변수나 메소드 이름의 첫 문자는 소문자로, 합성어는 두 번째 애들부터 첫 문자 ㄷ ㅐ문자로,
상수는 모든 문자를 ㄷ ㅐ문자로 하되 합성어는 _로 단어 구분
정도를 지키면 사회성 없는 코더라는 소리는 안 들을 것 같다. (내용이랑 상관없는 단어 쓰면,, ㅂㄷㅂㄷ,,, 세미콜론 어디 안 찍었는지 절대 못 찾아라!!)
<데이터 타입>
뭐 친숙하게 boolean(1:기본값 false), char(2), byte(1), short(2), int(4), long(8), float(4), double(8)가 있다. 괄호 안은 각 데이터 별 바이트 크기이다.
boolean은 true, false만 값으로 가진다. 위에 말한 것처럼 대소문자 구별하기 때문에 TRUE, FALSE 못 알아먹음
char은 작은' 따옴표로 감싼 하나의 문자만을 저장할 수 있고,
long일 때는 수 끝에 l이나 L을 꼭 써줘야 하고, float은 f/F 써줘야 한다는 거(float은 f 안 쓰면 double로 인식함. 선언도 안되고 float에 double 넣는 것도 안돼서 걍 에러 뜸)
상수는 선언할 때 초기화해야 하고, 코드 중간에 상수 값을 바꿀 수 없음. 변수 선언할 때랑 똑같이 쓰고 앞에 final 붙이면 됨
아스키코드는 65='A'라는 것만 기억하고 뒷 알파벳은 +1씩만 해주면 됨(나머지는 코딩할 때 잘 안 씀)
String은 앞이 대문자!! 문자열을 사용할 때는 큰" 따옴표로 감싸서 하는데 참조형 데이터 타입이라 new 연산자를 써서 하는 게 정석이지만 그냥 변수 선언처럼 해도 된다.
String a = new String("Heyyy");
String a = "heyy";
<형 변환 = casting>
캐스팅은 변수 또는 상수의 타입을 다른 타입으로 변환하는 것을 말하는데, (타입)바꿀애 이렇게 쓰면 된다.
float a를 int으로 바꾸고 싶다-> int(a) 이렇게.
근데 기본형 안에서 boolean이랑 다른 애들이랑 바꾸는 건 안되고, 기본형이랑 참조형 간에도 불가하다.
크기가 더 큰 걸로 옮길 때는 그냥 넣어도 되는데, 큰 애를 작은 애로 옮길 때는 위에 쓴 형식대로 넣어야 한다.
근데 형식 지켜서 넣어도 데이터 손실이 발생할 가능성이 있기 때문에(범위를 넘는 값이면 이상한 값 들어감) 주의를 해야 한다. (아 이래서 데이터 타입 값 커버 범위가 시험에 나오는 거구나)
캐스팅은 https://rollercoaster25.tistory.com/65 여기에 더 자세하게 써놓음
'언어 > JAVA' 카테고리의 다른 글
캡슐화, 상속, 다형성, Fan in Fan out, 모듈 결합도와 응집도 (0) | 2020.08.16 |
---|---|
구조적 기법과 객체 지향 기법. 클래스 간의 관계 (0) | 2020.08.16 |
JAVA 캐스팅, 업캐스팅, 다운캐스팅 (0) | 2020.08.15 |
댓글