티스토리 뷰
오래? 기다리셨습니다! 이제 코드를 조금씩 배워봅시다!
우선 프로젝트 생성은 제가 이전에 작성한 글을 참고해주세요!
https://ohksj77.tistory.com/73
- 자바 프로그램의 구조
저희가 방금 작성한 코드는 다음과 같은데요
package com;
public class FirstClass {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
여기서 package com;는 당연히 저희가 생성한 com이라는 패키지에 속해있다는 뜻입니다. com아래의 파일들에는 꼭 이 렇게 맨 위에 써주셔야 합니다.
밑에 하나하나 키워드들을 살펴보면, public은 다른 클래스에서 접근이 가능하다는 뜻입니다. class는 클래스를 뜻하고, FirstClass는 저희가 맨처음 클래스를 생성했을 때 지어준 이름입니다. 파일 생성할 때 자동 생성되는 public 클래스의 이름은 파일명과 같아야합니다.
밑에는 public static void main(String[] args)는 그냥 외우시면 좋습니다. 모든 자바 프로그램에서 실행할 때 맨처음 실행하는 함수라고 할 수 있습니다. static, void 는 나중에 같이 공부하도록 합시다. main은 메인 함수라는 뜻입니다.
그 뒤에 소괄호가 나오고 String[] args가 나오는데, 원래 의미는 명령행 인자가 main함수에 전달된다는 뜻인데, 이건 너무 어려운 개념이라 함수 파트를 마치고 궁금하시면 물어보시면 됩니다!
메인 함수 안에는 출력문이 있네요.
System.out.println();
이 출력문은 괄호안의 내용을 출력해주고 난 뒤에 한줄을 자동으로 띄워줍니다.
System.out.print();
이 출력문은 괄호안의 내용을 출력해주고 난 뒤에 줄을 띄우지 않습니다.
그러므로 이 출력문만 쓰면 모든 내용이 한줄에 표시될 수 있어요!
출력 방법들)
System.out.println("12345");
System.out.println(12345);
System.out.printf("%d\n", 12345); // C언어 스타일
System.out.print(12345 + "\n");
System.out.println(1234 + "5");
int a = 12345
System.out.println(a);
위의 출력문들은 다 같은 결과를 가집니다. 역슬래쉬n은 한줄을 띄워주는 역할을 하고, 역슬래쉬는 원화 표시(엔터 위에?)를 누르면 됩니다. 두 값을 이어서 출력하려면 중간에 + 를 넣으면 되고, 숫자를 더하는 연산을 수행해 출력하려면
System.out.println((3 + 4));
이렇게 괄호를 하나 더 넣어주시면 됩니다!
어쨌든, 우리가 여기서 알 수 있었던 것은 클래스 안에 함수가 있고, 그 함수 안에 System어쩌구 함수가 있어 함수 안에 내용이 실행된다는 점입니다. 또한 모든 문장마다 종료하는 부분을 ; 로 표기한다는 것도 알 수 있습니다. 여기서 문장이란 클래스나 함수처럼 중괄호로 열리고 닫히는 것이 아닌 함수 안의 내용들과 같은 것들입니다. 이 부분은 차차 알아가도록 합시다!
이 코드를 분석하면
public class FirstClass {
public static void main(String[] args) {
System.out.print("Hello World!");
}
}
여기는 클래스 부분이고
public static void main(String[] args) {
System.out.print("Hello World!");
}
여기는 (메인)함수 부분입니다.
그 안의 출력문은 함수의 내용입니다.
이번에는 주석에 대해 알아봅시다.
//public class FirstClass {
// public static void main(String[] args) {
// System.out.print("Hello World!");
// }
//}
이렇게 //를 써주면 그 줄의 오른쪽 모든 부분이 주석 처리가 되어 실질적인 코드가 아닌 주석 한마디로 코드에 대한 설명을 적는 부분이 됩니다. 굳이 설명이 아닌 것도 쓸 수 있지만 주로 어떤 코드인지 자신이나 다른 분들이 보기 쉽게 하기 위해 써놓습니다.
또 다른 방법은
/*
public class FirstClass {
public static void main(String[] args) {
System.out.print("Hello World!");
}
}
*/
이렇게 적을 수도 있는데요, /* 부터 */ 까지의 모든 코드가 주석 처리됩니다.
꿀팁을 주자면 코드를 마우스로 드래그해 선택한 다음에 ctrl 과 / 를 누르면 자동 주석처리되고 한번 더 누르면 주석 해제됩니다.
- 이제 식별자와 그 규칙에 대해 간단히 알아봅시다.
식별자란 클래스, 변수, 상수, 메소드 등에 붙이는 이름입니다. FirstClass 도 식별자입니다.
1. 식별자는 _ 와 $를 제외한 모든 특수문자가 사용이 불가하고, 공백과 탭 등도 불가합니다.
2. 한글도 사용가능하지만 많이 쓰이지 않습니다.
3. 첫 문자로 숫자가 불가합니다.
4. 길이 제한이 없습니다.
5. 대소문자를 구별합니다.
6. 자바의 키워드들로는 만들지 못합니다.
<자바의 키워드들>
관습적으로 클래스는 첫문자와 각 단어에 대문자를 붙입니다.
ex) UserProgram, MyApplication, TukoreaStudentStatisticsClass
변수, 함수의 이름은 camel case라고도 부르는데, 첫 문자는 소문자, 그 뒤의 단어들은 대문자로 붙입니다.
ex) helloWorld, bigPie, deliciousCoffee, myVeryBigLargeEnormousHead
또한 상수는 모든 문자를 대문자로 표기합니다. ex) final static double PI = 3.141592;
- 자바의 데이터 타입
8개의 기본형과 참조(레퍼런스)형이 있습니다.
8개의 기본 타입은
- 정수형: byte, short, int, long
- 실수형: float, double
- 문자형: char
- 논리형: boolean
이 있습니다.
참조형은
- 클래스
- 배열
- 인터페이스
이 있습니다.
기본 타입은 크기가 정해져 있습니다. 여기서 바이트는 컴퓨터 저장공간의 바이트를 의미합니다. 메가바이트, 기가바이트 할 때 그 바이트입니다. 저장 공간이 클 수록 더 큰 값을 저장할 수 있겠죠?
외워두면 좋습니다.
문자열은 기본타입이 아닙니다. 문자열인 char는 한 철자만 저장 가능하지만 String이라는 문자열을 다루는 타입은 기본타입이 아니지만 긴 문장도 저장 가능합니다. String은 기본타입이 아니니 참조형입니다.
참고로 참조형에는 아무것도 안들어갔다는 의미인 null 이 들어갈 수 있는데, 기본형은 불가합니다.
변수는 프로그램 실행 중 값을 임시로 저장하기 위한 공간입니다.
boolean flag = true;
boolean flag = false;
char c = 'a';
String s = "abcd";
int i = 10
double d = 3.14
long l = 30L;
와 같이 활용할 수 있습니다. long은 정수형이고 숫자 뒤에 L을 붙여줘야 합니다.
여기서 = 은 같다는 의미가 아닙니다! 오른쪽 값을 왼쪽 값에 저장한다고 이해하면 좋습니다.
변수를 초기화할 때는 "타입이름 변수명 = 값;" 과 같이 하면 됩니다.
여기서 초기화는 값을 저장한다는 의미라고 생각하면 됩니다.
맨 처음에만 타입이름을 왼쪽에 적고 다음에 활용할 때에는 적지 않습니다.
ex)
int a = 10;
a = a + 10;
int b = 1, c, d = 3, e;
을 하면 a에 20이 저장된 상태가 됩니다.
여러 변수를 한번에 선언 가능하고 b 와 d에만 값을 주어 일부만 초기화 가능한 것을 볼 수 있습니다.
불리안 타입은 true, false 밖에 없고, 정수형은 int, 실수형은 double, 문자열은 String을 주로 활용합니다.
var이라는 키워드를 통해 변수를 선언할 수 있습니다. 지역변수에서만 활용 가능하고, 지역변수란 함수 내에서 선언한 변수라고 생각하면 편합니다. 이 키워드를 쓰려면 반드시 초깃값을 지정해야 합니다.
초기값을 지정하지 않아도 기본 타입과 같은 경우 선언이 가능합니다.
int price; 이렇게요! 하지만 이 상태에서 다른 연산을 수행할 수는 없습니다.
price = price + 10; 을 그 뒤에 수행할 수 없다는 의미입니다.
var price = 1000; 라고 하면 price의 타입은 저절로 int로 인식된다고 합니다.
var가 편리해 보여도 자주 사용하지 않는 것 같습니다.
상수 선언은 final키워드를 사용합니다.
final double PI = 3.14;
라고 하면 PI만 쓰면 3.14로 인식할 수 있습니다. 이 상수는 나중에 값을 변경할 수 없습니다. 반드시 초기값을 지정해야 합니다.
- 타입변환(캐스팅)
아까 본 기본 타입의 크기에서 같은 범위(정수, 실수 등)에서 작은 타입은 큰 타입으로 변환할 수 있습니다.
하지만 큰 타입이 작은 타입으로는 변환이 불가합니다.
int n = 300;
byte b = n;
을 하면 오류가 발생하게 됩니다.
하지만 강제로 타입을 변환시킬 수는 있습니다.
int n = 300;
byte b = (byte)n;
을 수행하면 바이트로 변환될 수는 있으나 값이 손실될 우려가 있어 활용하지 않는 것이 좋습니다.
참고로 byte는 -128 부터 127까지만 저장할 수 있습니다. 당연히 값이 손실되겠죠?
'멘토링 준비 자료 > 자바 스터디 멘토링' 카테고리의 다른 글
자바 스터디 2주차 - 반복문과 배열, 예외처리 (0) | 2022.03.21 |
---|---|
자바 스터디 1주차 - 자바 기본 프로그래밍_2 (0) | 2022.03.10 |
자바 스터디 1주차 - 자바 개요 (0) | 2022.03.09 |
자바 스터디 1주차 - 프로젝트 생성 (0) | 2022.03.09 |
자바 스터디 0주차 (0) | 2022.03.09 |