본문 바로가기
언어/JAVA

자바 프로그램의 구조, 문법

by tovantablack 2020. 8. 5.
728x90
728x90

<구조>

자바는 보통 클래스{메소드, 메인메소드}의 형태로 구성되어있다.

둘 다 클래스 안에 선언되어야 한다는 말이다.

 

프로그램은 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 여기에 더 자세하게 써놓음

728x90
728x90

댓글