공부/Java

자바의 신 직접해봅시다, 정리해봅시다 정리 (1장 ~ 4장)

데부한 2023. 8. 21. 23:48
반응형

 

자바의 신 세트 | 이상민 - 교보문고

자바의 신 세트 | 『자바의 신 세트』는 성능 전문가로 널리 알려진 저자가 십수 년의 자바 개발 경험을 바탕으로 현장에서 꼭 필요한 기초지식을 정리한 책이다. 현장 중심으로 자바의 기본서

product.kyobobook.co.kr

 

1장. 프로그래밍이란 무엇인가?

직접해봅시다.

public class Calculator {
    public int subtract(int num1, int num2) {
        return num1 - num2;
    }

    public int multiply(int num1, int num2) {
        return num1 * num2;
    }

    public int divide(int num1, int num2) {
        return num1 / num2;
    }
}

 

정리해봅시다.

  1. 클래스란 뭔가요?
    클래스는 자바에서 가장 작은 단위를 나타내며, 클래스는 상태와 행동을 가진다. 상태는 변수로 나타내며 행동은 메서드로 나타낸다.

  2. 메소드가 뭔가요?
    메서드는 값을 입력받고 내부적인 연산을 통해 계산된 값을 출력한다. 다만 입력 값이다 출력 값은 있을 수도, 없을 수도 있다.

  3. 메소드의 매개 변수는 어디에 적어줘야 하나요?
    괄호 안에 적어주면 된다.

  4. 메소드 이름 앞에 꼭 적어 줘야 하는 건 뭐죠?
    메서드 이름 앞에는 접근 제어자와 리턴 타입이 있어야 한다.

  5. 클래스가 갖고 있어야 한다고 한 두 가지가 뭐죠?
    클래스가 갖고 있어야 하는 건 상태(변수)와 행동(메서드)이다.

  6. 메소드에서 결과를 돌려주려면 어떤 예약어를 사용해야 하나요?
    'return'을 사용하면 된다.

 

 

2장. Hello God Of Java

직접해봅시다.

public class Profile {
    public static void main(String[] args) {
        System.out.println("My name is HS");
        System.out.println("My age is 18^^");
    }
}

 

정리해봅시다.

  1. main() 메소드의 메소드 이름 앞에는 어떤 예약어들이 들어가나요?
    제어자(public, static)와 리턴 타입(void)가 들어간다.

  2. main() 메소드의 매개 변수에는 어떤 값이 들어가나요?
    String[] args가 들어간다. (String 타입의 가변 배열)

  3. 만약 여러분들이 만든 클래스에 main() 메소드가 없다면, java 명령어로 그 클래스를 수행할 수 있나요?
    수행할 수 없다. main 메서드가 없으면 'java.lang.NoSuchMethodError'가 발생한다.

  4. System.out.println() 메소드는 어떤 용도로 사용하나요?
    매개변수로 넘어온 문자열을 출력한다.

  5. System.out.print() 메소드는 System.out.println() 메소드와 어떤 차이가 있나요?
    System.out.print() 메서드는 문자열 끝에 개행 문자(\n)가 없고, System.out.println() 메서드는 문자열 끝에 개행 문자가 추가된다.

  6. //는 무엇을 하는 데 사용하는 기호인가요?
    한 줄 주석

  7. /*로 시작하고, */로 끝나는 사이에 있는 소스들은 어떻게 되나요?
    모두 주석 처리 된다. (여러 줄 주석)

  8. 메소드를 선언할 때 반드시 꼭 있어야 하는 세 가지는 무엇인가요?
    접근 제어자, 리턴 타입, 메서드 이름 ---> 틀림
    > 정답 : 리턴 타입, 메서드 이름, 메서드 내용

 

 

3장. 자바를 제대로 알려면 객체가 무엇인지를 알아야 해요

직접해봅시다.

public class Profile {
    String name;
    int age;

    public void setName(String str) {
            name = str;
    }

    public void setAge(int val) {
            age = val;
    }

    public void printName() {
            System.out.println("My name is " + name);
    }

    public void printAge() {
            System.out.println("My age is " + age);
    }

    public static void main(String[] args) {
            Profile profile = new Profile();
            profile.setName("MIN");
            profile.setAge(20);
            profile.printName();
            profile.printAge();
    }
}

 

 

정리해봅시다.

  1. 클래스와 객체의 차이점을 말해 주세요.
    클래스는 객체의 상태와 행동을 나타내는 도안이라고 보면 된다. 객체는 실제 사물을 나타내는 것이며 클래스로 객체를 생성할 수 있다.

  2. 객체를 생성하기 위해서 꼭 사용해야 하는 예약어는 뭐라고 했죠?
    new

  3. 객체를 생성하기 위해서 사용하는 메소드 같이 생긴 클래스 이름에 소괄호가 있는 것을 뭐라고 하나요?
    생성자. 생성자가 아무것도 없을 시 기본 생성자를 작성하지 않아도 컴파일러가 알아서 자동으로 작성해준다.

  4. 객체의 메소드를 사용하려면 어떤 기호를 객체 이름과 메소드 이름 사이에 넣어주어야 하나요?
    .(점)

  5. 여러분들이 메소드를 사용하기 위해서는 어떤 것을 만들어야 하나요?
    객체

  6. 5번 문제에서 만들어야 하는 것은 어떤 예약어를 사용하고, 클래스의 무엇을 사용해야 하나요?
    new, 생성자

 

 

4장. 정보를 어디에 넣고 싶은데

직접해봅시다.

public class ProfilePrint {
    byte age;
    String name;
    boolean isMarried = false;

    public void setAge(byte age) {
            this.age = age;
    }


    public byte getAge() {
            return age;
    }

    public void setName(String name) {
            this.name = name;
    }

    public String getName() {
            return name;
    }

    public void setMarried(boolean flag) {
            isMarried = flag;
    }

    public boolean isMarried() {
            return isMarried;
    }

    public static void main(String[] args) {
            ProfilePrint profile  = new ProfilePrint();
            profile.setAge((byte)29);
            profile.setName("hs");
            profile.setMarried(false);

            System.out.println(profile.getAge());
            System.out.println(profile.getName());
            System.out.println(profile.isMarried());
    }
}

 

정리해봅시다.

  1. 네 가지 종류의 변수는 어떻게 구분할 수 있나요?
    변수가 선언 된 위치로 구분한다. 
    자바 4가지 변수 - 지역 변수(중괄호 내), 매개 변수(메서드로 넘어오는 변수), 인스턴스 변수(메서드 밖, 클래스 안에 선언된 변수), 클래스 변수(메서드 밖, 클래스 안에 선언되어있고 static 예약어가 붙은 변수)

  2. 변수의 이름을 지을 때 대문자로 시작해도 되나요?
    네. 컴파일 시 이상은 없지만 되도록 명명 규칙을 따라 맨 앞글자는 대문자보다는 소문자로 시작하자. (단, 상수의 경우 변수명을 모두 대문자로 작성)

  3. 자료형에는 기본 자료형과 어떤 자료형이 있나요?
    참조 자료형

  4. 기본 자료형에는 몇 가지가 있나요?
    8가지(byte, short, int, long, char, float, double, boolean)

  5. 기본 자료형 중 정수형에는 어떤 것들이 있나요?
    byte, short, int, long

  6. byte는 몇 비트(bit)로 되어 있나요?
    8비트(부호 비트 1 + 값 표현 비트 7)

  7. byte는 왜 만들었을까요?
    byte 범위 내의 정수 값을 메모리 낭비 없이 저장하기 위해
    byte는 8비트, int는 32비트이므로 byte 범위 내의 값을 int로 저장하면 메모리가 낭비된다.

  8. int와 long 중 어떤 타입이 더 큰 숫자를 처리할 수 있나요?
    long

  9. 소수점을 처리하는 타입은 어떤 것이 있나요?
    float, double

  10. char는 정수형인가요?


  11. a라는 것을 char로 정의할 때 어떤 기호로 감싸주어야 하나요?
    'a'

  12. true와 false 두개의 값만을 가지는 타입은 어떤 것인가요?
    boolean

 

 

 

반응형