티스토리 뷰

오래? 기다리셨습니다! 이제 코드를 조금씩 배워봅시다!

 

우선 프로젝트 생성은 제가 이전에 작성한 글을 참고해주세요!

https://ohksj77.tistory.com/73

 

자바 스터디 1주차 - 프로젝트 생성

자바를 공부하기 위해서는 프로젝트를 생성해야 합니다. 여러분이 설치해오신 인텔리제이에서 프로젝트를 다음과 같이 생성합시다! 혹시 안되는 부분 있으시면 바로바로 말씀해주세요. *저는

ohksj77.tistory.com

 - 자바 프로그램의 구조

저희가 방금 작성한 코드는 다음과 같은데요

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까지만 저장할 수 있습니다. 당연히 값이 손실되겠죠?

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함