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

2023. 8. 21. 23:48·공부/Java
반응형

 

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

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

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

 

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)
'공부/Java' 카테고리의 다른 글
  • Java로 취소표 알람 프로그램 만들기 - 개발 도전기
  • 자바의 신 직접해봅시다, 정리해봅시다 정리 (5장 ~ 6장)
  • JVM과 좀 친해져보자. JVM Architure
  • [Java] 인텔리제이 자바의 정석 Properties 파일 저장하기
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    기출문제
    전자정부프레임워크
    JPA
    운영체제
    IT
    Spring
    에러해결
    방통대
    SQL
    egov
    백준
    oracle
    springboot
    RESTful
    자바스크립트
    코딩테스트
    MSA
    개발자
    스프링부트
    프로그래머스
    토비의스프링부트
    인프런
    알고리즘
    react
    토이프로젝트
    Java
    넥사크로
    프론트엔드
    QueryDSL
    SpringBoot를 이용한 RESTful Web Service 개발
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
자바의 신 직접해봅시다, 정리해봅시다 정리 (1장 ~ 4장)
상단으로

티스토리툴바