책 내용 질문하기
p.350 질문입니다.
도서
2025 시나공 퀵이지 정보처리기사 실기 단기완성
페이지
350
조회수
49
작성일
2024-10-16
작성자
유*찬
첨부파일

Q1. static 선언시에는 내부에서만 가능한 것으로 알고 있는데, 그때는 클래스명.멤버로 바로 접근가능하지만 지금은 객체 변수를 사용하기위해 객체변수를 static 선언 안에다가 선언을 해 준것인가요? ( 객체변수를 사용하기 위해)



Q2. 제가 이해가 안가는게 STATIC 선언이 그 클래스 안에서만 변수가 사용되는 것으로 알고있거든요 그래서 첫번째 메인 함수 안에서 쓰던 객체변수가 어떻게 최상위 클래스의 다른 스태틱선언에서 같은 변수로 이용될 수 있는건가요 ?


첫번째 STATIC 선언의 객체변수 속성값 대입 이후에 나오는 메쏘드는 사실 JAVA에서 메쏘드안에 STATIC 선언시 컴파일 오류가 생기는것 아닌가 해서요

이부분이 좀 헷갈립니다.


스태틱에서 사용하던 변수를 다른 스태틱에서 사용? 첫번째 스태틱 안에서 사용하던 객체변수에 관한 메소드 일지언정 메소드 안에서의 스태틱 정의? 이게 가능한건가요 ?


Q3. 밑에있는 3번째 단락 (2번째 스태틱선언 PRNT( INTCLASS MYVAR) 에서 어떻게 INTCLASS MYVAR, MYVAR 라는객체 변수만 들어간것이 아니라 INT CLASS 는 왜 붙은건가요 ?

답변
2024-10-17 19:52:02

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

static으로 선언된 변수는 main( ) 메소드가 시작되기 전에 메모리의 static 영역에 할당되며

static 으로 선언된 변수와 메소드는 프로그램이 실행이 될때 단 한번 생성이 되고 프로그램이 종료될때 삭제가 됩니다.

따라서 프로그램이 실행될 때 자동으로 로딩이 되기 때문에 객체 변수 선언 없이 사용할 수 있고, 클래스명으로 접근이 가능하며 코드가 수행되는 동안 공유됩니다


main 메소드 안에 prnt라는 메소드를 정의할때 static void prnt(IntClass myVar) 이렇게 코드가 사용이 되었는데

실행 클래스 안에 메소드를 정의할 때는 static을 붙여 정의를 합니다.

prnt 메소드에서 인수를 받을때 IntClass 클래스의 객체 변수 myVar 을 받으라고 IntClass mayVar 이라고 작성을 한것입니다

정보처리 교재에 있는 모든 코드들은 java에서 실행을 시켜 정상적으로 실행이 되는지 모두 검사를 하였습니다

행복한 하루되세요 :)

  • 관리자
    2024-10-17 19:52:02

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

    static으로 선언된 변수는 main( ) 메소드가 시작되기 전에 메모리의 static 영역에 할당되며

    static 으로 선언된 변수와 메소드는 프로그램이 실행이 될때 단 한번 생성이 되고 프로그램이 종료될때 삭제가 됩니다.

    따라서 프로그램이 실행될 때 자동으로 로딩이 되기 때문에 객체 변수 선언 없이 사용할 수 있고, 클래스명으로 접근이 가능하며 코드가 수행되는 동안 공유됩니다


    main 메소드 안에 prnt라는 메소드를 정의할때 static void prnt(IntClass myVar) 이렇게 코드가 사용이 되었는데

    실행 클래스 안에 메소드를 정의할 때는 static을 붙여 정의를 합니다.

    prnt 메소드에서 인수를 받을때 IntClass 클래스의 객체 변수 myVar 을 받으라고 IntClass mayVar 이라고 작성을 한것입니다

    정보처리 교재에 있는 모든 코드들은 java에서 실행을 시켜 정상적으로 실행이 되는지 모두 검사를 하였습니다

    행복한 하루되세요 :)

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