본문 바로가기
Java

[점프 투 자바] 2장 자바 시작하기

by seonggu 2024. 1. 1.
  • 자바 코드의 구조 살펴보기
/* 클래스 블록 */
public class 클래스명 {
	/* 메서드 블록 */
	[public|private|protected] [static] (리턴자료형|void) 메서드명1(입력자료형 매개변수, ...){
	명령문(statement);
	...
	}
	/* 메서드 블록 */
	[public|private|protected] [static] (리턴자료형|void) 메서드명2(입력자료형 매개변수, ...) {
  명령문(statement);
   ...
    }

}

자바 코드의 가장 바깥쪽 영역은 클래스 블록

클래스 명은 사용자 맘대로

단, 클래스명은 소스 파일 이름과 똑같이 사용해야함

 

메서드 블록

[public|private|protected] 은 앞의 세가지가 오거나 아무거도 오지 않을 수 있음.

메서드의 접근제어자

 

static은 static 키워드가 올 수도 있고 오지 않을 수도 있다는 의미.

static이라는 키워드가 붙으면 static 메서드가 됨.

 

(리턴자료형 |void) 은 메서드가 실행된 후 리턴되는 값의 자료형을 의미함.

리턴값이 있을 경우에는 반드시 리턴 자료형을 표기

리턴 값이 없으면 void

이 항목은 반드시 void나 리턴 자료형이 있어야함.

 

 

  • 메서드명

메서드명 뒤에 이어지는 괄호안의 값들 (입력 자료형, 매개변수 등)은 메서드의 입력 인자를 뜻함.

입력 인자는 ‘입력자료형 + 매개변수명 (int a)’

개수에 제한이 없음

클래스 내에서는 이러한 메서드를 여러개 만들 수 있음.

 

 

  • 속성과 생성자

속성과 생성자도 구성 요소로 포함됨.

속성은 클래스의 상태를 나타내는 변수로, 클래스 내부에 선언됨

생성자는 클래스 인스턴스를 생성할 때 실행되는 메서드, 주로 속성을 초기화 하는데 사용

public class Sample {

    /* 속성 */
    private String message;

    /* 생성자 */
    public Sample(String message) {
        this.message = message
    }
}

 

  • 클래스 블록

자바 코드의 가장 바깥쪽 영역인 클래스 블록

중괄호로 둘러싸기

public class Sample {
	...	
}

public은 자바의 접근 제어자로, 어디서든 이 클래스에 접근할 수 있음을 뜻함

class는 클래스 블록을 만드는 키워드

 

  • 메서드 블록
public class Sample {
	public static void main(String[] args){
	...	
	}
}

클래스 블록 안에는 메서드 블록이 여러 개 있을 수 있음

static : 메서드에 static 키워드가 붙으면 클래스 메서드가 되어 객체를 만들지 않아도

‘클래스명.메서드명’ 형태로 호출할 수 있음

void : 메서드의 리턴 자료형, void는 리턴 값이 없음을 의미

String[] args : 메서드의 매개변수, args 변수는 String[] 배열 자료형임

args는 argument의 줄임말, 인수를 의미한다 args말고 다른 이름 사용도 가능

 

  • 명령문

메서드 블록안에는 명령문이 있음

컴퓨터에 무언가 일을 시키는 문장을 명령문(statement)라고함.

public class Sample{
	public static void main(String[] args) {
		System.out.println("Hello world");
	}
}

 

 

변수와 자료형

변수는 흔히 값을 넣을 수 있는 빈 상자와 같다고 표현함.

변수는 값을 대입하여 사용할 수 있음

그리고 그 값에는 어떤 형태가 정해야져 하는데, 이 형태가 바로 자료형

 

아래 a, b를 변수(varialbe)이라고 함

int a;
String b;

 

  • 변수 이름 지을 때 3가지 규칙
  1. 변수명은 숫자로 시작할 수 없음.
  2. _와 $ 이외에 특수 문자는 사용할 수 없음.
  3. int, class, return 등 자바의 키워드는 변수병으로 사용할 수 없음.

 

  • int 자료형 변수에 문자열을 대입하면?

int 자료형 변수 a에 문자열을 대입하면

int a = "Hello java";

// IDE에서는 다음과 같은 오류메세지를 보여준다.
// String 자로형을 int 자료형으로 변경할 수 없다는 뜻.
Type mismatch: cannot convert from String to int

 

  • 자바에서 많이 사용되는 자료형
int, long, double, boolean, char, String, StringBuffer, List, Map, Set

 

  • 사용자 정의 자료형

Animal이라는 클래스를 만들었다고 가정

class Animal{
}

Animal 클래스를 만들었다면 다음과 같이 Animal이란 자료형 변수를 만들 수 있음.

Animal cat; // cat 변수의 자로형은 Animal이며, cat 변수엔 Animal 자료형에 해당하는 값만 대입가능.

 

 

이름 짓는 규칙

  • 클래스 이름 짓기

사실 아무렇게 지어도 무방하지만 다음과 같은 규칙이 있다.

  1. 클래스명은 명사로 한다.
  2. 클래스명은 대문자로 시작한다.
  3. 여러 개의 단어를 조합하여 만들 경우 각 단어의 첫 번째 글자는 대문자여야 한다.

이를 파스칼 케이스(pascal case)라고 한다.

class Cooke {}
class ChochCookie {}

 

  • 메서드 이름 짓기

메서드명은 보통 다음과 같은 규칙을 따름

  1. 메서드명은 동사로 한다.
  2. 메서드명은 소문자로 시작한다.
  3. 여러 개의 단어를 조합하여 만들 경우 첫 글자를 제외한 나머지 단어의 첫 글자는 대문자를 써서 구분한다.

이를 카멜 케이스(camel case)라고 한다.

run();
runFast();
get

 

  • 변수 이름 짓기
  1. 변수 이름은 짧지만 의미가 있어야 함. 변수 명만 봐도 사용한 이유를 알 수 있게 짓자.
  2. 순서를 의미하고 임시로 쓰이는 정수의 변수명은 i, j, k, m, n을 사용한다. 문자의 경우 c, d, e
  3. 변수명에 _, $ 를 쓸 수 있지만 시작 문자로 사용하는 것은 지양하자.
String userName;
flaot lineWidth;
int i;
char c;

 

 

주석이란?

프로그래머의 의견이나 코드의 설명을 적을 수 있는데 이것을 주석(comment)라고 한다.

주석은 프로그램 코드에 삽입하더라도 프로그램의 수행하는 데 전혀 영향을 끼치지 않는다.

왜냐하면 컴파일할 때 주석은 자동으로 바이너리 코드에서 제거됨.

 

  • 블럭주석

블록 단위(클래스, 메서드)로 설명할 때 주로 사용

/*
...

*/

 

  • 라인주석

// 기호를 사용하는데, 보통 특정 코드 한 줄을 설명할 때 라인 주석을 사용함

int age; //동물의 나이 

 

  • 적절하지 못한 주석

밑의 예시처럼 누구나 알 만한 내용의 주석은 코드를 지저분하게 만들기 때문에 쓰지 않는 것이 좋다.

a++; // a의 값을 증가

또한, 코드를 수정했는데 주석 내용을 수정하지 않으면 안된다. 주석도 함께 업데이트 해주자

 

  • 임시 백업을 위한 주석

코드의 특정 부분을 잠시 사용하지 않게 만들고 싶을 때 주석을 사용한다.

좀 더 업데이트된 코드를 작성하고 싶을 때

기존 코드를 삭제하지 않고 잠시 주석 처리를 하고 새로운 코드를 작성하면 편리하다.

 

  • 주석이 적은 코드와 많은 코드, 어떤 게 좋은 코드일까?

어떤 살마은 주석이 없는 코드가 좋은 코드라고 한다. 하지만 이 말을 오해하지 말자.

주석이 없는 코드가 아니라 주석이 있을 필요가 없을 정도로 이해하기 쉽고

누가 봐도 명확한 코드를 말하는 것이다.

이를 심플 코드(simple code)라고 한다.

 

XP(Extreme Programming)의 창시자 중 한명인 론 제프리즈(Ron Jeffries)는 심플 코드를 ‘동작하는 깨끗한 코드(Clean code that works)’라고 정의했다. ‘동작하는 깨끗한 코드’는 이상적인 코드라고 할 수있다. 하지만 내용이 불분명하고 도저히 이해할 수 없는 코드, 또는 헷갈리기 쉬운 부분에도 주석은 꼭 필요하다.

 

주석은 이해하기 어려운 곳에 주로 작성되기 때문에 ‘주석이 필요하다면 좋은 코드가 아니다’라는 말이 나온 것이므로, 심플 코드를 작성할 수 없다면 주석을 어쩔 수 없이 사용해야 한다.

 

 

 

 

 

 

 

참고자료 :
위키독스 점프 투 자바 https://wikidocs.net/book/31