Hello world! - 생활코딩 Java 1

Kay·2021년 3월 28일
0

Head First Design Patterns 라는 디자인 패턴 도서로 스터디를 시작했다.
Java를 모르고는 이해하기가 너무 어려워 생활코딩 Java 강의로 빠르게 Java의 기초라도 공부해보려 한다.

2013년도 자료여서 업데이트 되어야 할 부분도 있지만 큰 문제는 없었다.

뒤늦게 리뉴얼 된 수업을 발견하여 첨부함 👉 생활코딩 Java1

Downloads

System.out.Println

터미널 명령어를 1도 모르던 시절에 "현재 디렉토리 안에 있는 파일 목록"을 보기 위해 Is 를 아무리 쳐도 에러만 났던 적이 있다.
"Is"로 구글링을 해봐도 특정 단체에 대한 정보만 나왔다.
"터미널 Is"로 검색했더니 터미널이란? 과 같은 포스팅만 잔뜩 나와서 한참을 헤매다가 겨우 해당 명령어가 대문자 I가 아닌 소문자 l인 ls 라는 것을 알수 있었다.
혼자 글로 배운자의 한계였다.

그런데 오늘 그 악몽이 다시 살아났다.

에러 메세지를 그대로 구글링 했더니 나와 같은 실수를 한 사람이 stack overflow에 했던 질문과 해결책을 찾을 수 있었다.

Hello World!😇

숫자와 문자

자바는 문자(Character)와 문자열(String)을 구분한다.
문자는 한 글자를 의미하고, 문자열은 여러 개의 문자가 결합한 것을 의미한다.
자바에서 문자는 '(작은따옴표)로 감싸야 한다.

System.out.println('C');  // 자바에서 문자는 '(작은따옴표)로 감싸야 한다.
System.out.println("String"); // 문자열은 "(큰따옴표)로 감싸야 한다.

System.out.println("c");  
/* 
하나의 문자를 큰따옴표로 감싼다고 에러가 발생하지는 않는다. 
한 글자도 문자열이 될 수 있기 때문이다.
하지만 문자열을 작은 따옴표로 감싸면 에러가 발생한다.
*/

변수

- 정수: int
- 실수: double
- 문자열: String

int a; // 데이터 타입에 대한 키워드가 필요하다
a = 1;

주석과 세미콜론

주석

// 한줄

/*
여러줄
*/

/**
JavaDoc 주석으로 자바의 문서를 만들 때 사용한다.
*/

세미콜론

세미콜론은 문장(statement)의 끝을 의미한다.
자바에서는 문장의 끝에 세미콜론을 사용하지 않으면 컴파일 에러가 발생한다.

데이터 타입

정수형

  • byte
  • short
  • int
  • long

실수형

  • float
  • double

문자

  • char

상수의 데이터 타입

실수의 표현

  • 자바에서 실수형 상수는 double 데이터 타입
  • float형 변수에는 float형이라는 것을 명시해주면 된다.
double a = 2.2;
float a = 2.2F;

정수의 표현

  • int의 최대값은 2147483647
int a = 2147483648; // 최대값보다 1 많기 때문에 오류 발생
long a = 2147483648; // 상수가 int타입이어서 여전히 오류 발생

long a = 2147483648L;

형변환

자동 형 변환

double a = 3.0F; // O
float a = 3.0; // X
  • 타입을 변경해도 정보의 손실이 일어나지 않는 경우 자동 형 변환이 일어난다.

    byte -> short/ char -> int -> long -> float -> double

명시적 형 변환


// 아래 코드는 자동 형 변환이 이루어지지 않기 때문에 오류가 발생한다.
float a = 100.0;
int b = 100.0F;

// 아래와 같이 괄호 안에 데이터 타임을 지정해서 값 앞에 위치시켜 명시적 형 변환을 해야한다.

(데이터타입)데이터 값

float a = (float)100.0;
int b = (int)100.0F;

배열

배열의 생성

package org.opentutorials.javatutorials.array;
 
public class DefineDemo {
 
    public static void main(String[] args) {
 
        String[] classGroup = { "최진혁", "최유빈", "한이람", "이고잉" };
 
    }
 
}
  • String[] classGroup에서 classGroup은 배열이 담길 변수의 이름이다.
  • String[]classGroup에 담을 배열에 담길 데이터의 타입이 문자열의 배열이라는 의미다.
  • 배열을 선언할 때는 데이터 타입 뒤에 []를 붙여야 한다.
  • 배열에 소속될 데이터들은 중괄호 안에 위치하며, 각각의 데이터들은 쉼표로 구분된다.

배열의 한계

배열은 초기화할 때 그 크기가 정해진다. 그래서 정해진 크기 이상의 값을 넣을 수 없다. 비유하면, 학생의 수요를 예측하고 그에 따라서 교실을 지으면 그 이상의 학생을 수용 할 수 없는 것과 같다. 부시고 다시 짓든지 새로운 교실을 만들든지 해야 한다. 이러한 한계는 c와 같은 언어에 익숙한 사람에게는 당연한 것이지만, JavaScript나 Python, PHP와 같은 언어에 익숙한 사람에게는 의아할 것이다. 후자의 언어들은 배열의 크기를 미리 정의하고 사용하지 않는다. 물론 방법이 있다. 자바에는 컬렉션 Collection이라는 기능이 있다. Container라고도 부르는 이 기능을 이용하면 JavaScript의 배열과 같이 유연하게 배열을 사용할 수 있다.

메소드

메소드(method)는 코드를 재사용할 수 있게 해준다.

main

main 메소드는 규칙이다.
public static void main(String[] args)가 이끄는 중괄호 안에 실행되기를 기대하는 로직을 위치시켜야 한다.
그렇게 코드를 작성하면 자바를 실행할 때 자바는 작성한 main 메소드를 실행하게 된다.

return

public static String numbering(int init, int limit) {
public static void numbering(int init, int limit) {

return을 통해서 반환할 값의 데이터 형식을 메소드의 이름 옆에 명시해주어야 한다.

메소드가 리턴 할 값을 명시함으로서 numbering이라는 메소드는 반드시 문자열의 값을 리턴한다는 것을 보장할 수 있는 장점이 있다.
만약 반환 값이 없다면 아래와 같이 void를 적어준다.

복수의 리턴

여러 개의 값을 출력하고 싶다면 하나의 변수에 여러개의 값을 담아서 출력해야 한다.

package org.opentutorials.javatutorials.method;
 
public class ReturnDemo4 {
 
    public static String[] getMembers() {
        String[] members = { "최진혁", "최유빈", "한이람" };
        return members;
    }
 
    public static void main(String[] args) {
        String[] members = getMembers();
    }
 
}
profile
new blog✨ https://kay-log.tistory.com/

0개의 댓글