책 내용 질문하기
300쪽 2번에 대한 질문입니다.
도서
2025 시나공 퀵이지 정보처리기사 실기 단기완성
페이지
300
조회수
52
작성일
2024-10-02
작성자
유*찬
첨부파일

Q.1 오른쪽 해설 부분에 A 뒤를 보시면 static 으로 선언된 변수 b는 메모리의 static 영역


에 할당되며, 코드가 수행되는 동안 공유된다. 라고 적혀있는데 코드가 수행되는 동안 공유된다? 가 무슨말인가요? 코드? 이안에서 코드가 실행된다가 전체 문제를 이야기하는건가요? 코드가 수행된다가 어떤게 수행 된다는 말인지 이해를 못하겠습니다.


Q.2 문제 처음 main 함수 들어가기전에 static 전역변수 선언이 있으면 객체 생성없이 바로 b를 생성할 수 있다고 적혀있습니다. 그렇다면 public ( 지역변수) 선언은 밑에 main 함수 실행시 선언되는 static st=new static() st 라는 객체 변수가 생성되었을때, public int a =20 이 생성되는것인가요 ?


Q.3 public은 지역변수를 의미하는것이 맞나요?



Q.4 static클래스 라는것이 따로 정해져 있는 것인가요?

클래스명은 임의 설정인지 정해진 클래스마다 다른 기능을 하는것인지 궁금합니다.


선언도 static 선언이 있고 클래스도 static 이라 헷갈립니다.


static 선언을 하려면 static 클래스를 활용해야하는건지요?



답변
2024-10-02 18:38:51

안녕하세요 길벗수험서 운영팀입니다.

q1 "코드가 수행되는 동안 공유된다"라는 것은 문제에 나와있는 전체 코드를 말하는것으로

프로그램이 종료가 될때까지 계속 공유가 된다는것입니다.


q2 public int a = 20 이 코드의 경우 객채변수를 선언을 하면 새로운 인스턴스를 생성하여 메모리를 배정하고 그 이후 부터 사용할 수 있습니다


q3 public은 접근지정자로 "누구나 접근 가능" 합니다

지역변수는 중괄호 안에서 선언되는 변수를 보고 말하며, 블록 안에 있기 때문에 블럭 안에서만 사용할 수 있습니다

Static 클래스에도 a라는 변수가 있고, main 메소드 내에도 a라는 변수가 있는데 이는 서로 서로 다른 변수입니다

main 메소드 내에서 Static.b = a 이 코드가 있는데 여기서 a라는 변수를 참조할때 main 메소드의 a라는 변수를 참조하는것이고

Static 클래스의 a라는 변수를 사용하기 위해서는 Static st = new Static( ) 개체변수를 먼저 선언한 후 st.a 라고 써야합니다


q4 해당 문제의 코드를 보면 아래처럼 되어있습니다

아래 코드에서 노란색으로 표시한곳을 보면 첫번째 글자가 대문자로 되어있고

이것은 클래스 명으로 임의로 설정해 놓은것입니다

진하게 표시한 static 은 예약어입니다

클래스명과 예약어는 아무 상관이 없으며 클래스명을 Static으로 한것은 햇갈리라고 해놓은것입니다

class Static {

public int a = 20;

static int b = 0;

}


행복한 하루되세요 :)

  • 관리자
    2024-10-02 18:38:51

    안녕하세요 길벗수험서 운영팀입니다.

    q1 "코드가 수행되는 동안 공유된다"라는 것은 문제에 나와있는 전체 코드를 말하는것으로

    프로그램이 종료가 될때까지 계속 공유가 된다는것입니다.


    q2 public int a = 20 이 코드의 경우 객채변수를 선언을 하면 새로운 인스턴스를 생성하여 메모리를 배정하고 그 이후 부터 사용할 수 있습니다


    q3 public은 접근지정자로 "누구나 접근 가능" 합니다

    지역변수는 중괄호 안에서 선언되는 변수를 보고 말하며, 블록 안에 있기 때문에 블럭 안에서만 사용할 수 있습니다

    Static 클래스에도 a라는 변수가 있고, main 메소드 내에도 a라는 변수가 있는데 이는 서로 서로 다른 변수입니다

    main 메소드 내에서 Static.b = a 이 코드가 있는데 여기서 a라는 변수를 참조할때 main 메소드의 a라는 변수를 참조하는것이고

    Static 클래스의 a라는 변수를 사용하기 위해서는 Static st = new Static( ) 개체변수를 먼저 선언한 후 st.a 라고 써야합니다


    q4 해당 문제의 코드를 보면 아래처럼 되어있습니다

    아래 코드에서 노란색으로 표시한곳을 보면 첫번째 글자가 대문자로 되어있고

    이것은 클래스 명으로 임의로 설정해 놓은것입니다

    진하게 표시한 static 은 예약어입니다

    클래스명과 예약어는 아무 상관이 없으며 클래스명을 Static으로 한것은 햇갈리라고 해놓은것입니다

    class Static {

    public int a = 20;

    static int b = 0;

    }


    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.