27일차

김윤정·2024년 7월 24일

코딩

목록 보기
27/60
post-thumbnail

1. static 변수의 다른 용어 3가지를 말해 보시오.

정적변수, 공유변수, 클래스변수라고 불립니다.

2. 자바의 메모리 영역을 3가지로 나누고, 해당 영역에 들어가는 정보를 예를 들어 설명해 보시오.

금일 플래쉬 예제 참고)

자바 메모리 영역은 Method Area, Call Stack, Heap이 있습니다. 메모리에 들어가는 내용은 사진으로 쓰겠습니다.

3. static 변수의 접근 방법은?

static 변수는 클래스 수준에서 공유되며, 인스턴스를 생성하지 않고 클래스 이름을 통해 직접 접근할 수 있습니다.

4. 클래스 변수의 활용의 예를 드시오.

static의 예가 system out println에 Math.PI를 쓰는 것입니다.
Math.PI에 대해 설명해보자면!
Math.PI는 Java에서 제공하는 수학 상수로, 원주율을 나타냅니다. Math 클래스는 다양한 수학적 연산을 위한 정적 메서드와 변수를 제공합니다.

5. 스태틱 함수에 인스턴스 변수가 올수 없는 이유는?

메모리 생성 순서가 다르고 스태틱함수는 기본적으로 스택변수 컨트롤 하기위해 만들어졌습니다.

6. 인스턴스 함수안에 스태틱 변수와 함수가 올수 있는 이유는?

인스턴스 함수가 생성되기전에 스태틱 변수와 함수는 이미 생성되어있기 때문입니다.

7. 다음이 에러나는 이유와 안나는 이유는?

class ClassVar {
int var = 10;
public static void main(String[] args) {
System.out.println(var); //에러나는 이유?
int num = 10;
System.out.println(num); //에러가 안나는 이유?
}
}

  • static함수에는 인스턴스(함수밖에 있는 변수) 못옵니다. 따라서 오류가 납니다.
  • int num 변수의 종류는 인스턴스가 아니라 일반 지역변수(함수안에 있는 변수)입니다.
    static int num 또한 오류가 납니다. 함수가 시작할때 생성되어서 끝나면 사라지는 변수여서 지역변수에 static을 붙일 이유가 없습니다.
    static int var는 static으로 메모리에 올라가기 때문에 가능합니다.

8. main 메소드가 static 인 이유는?

main 메소드의 호출 명령은 외부로부터 시작되는 명령입니다.
간단히 말하자면 일종의 약속입니다!

9. 아래 프로그램을 완성하시오.

public static void main(String[] args) {
 	System2.out.println();    
	System2.out.println();    
	System2.out.println();    

}
출력======================
AA생성
메롱!!
메롱!!
메롱!!

package day_2024_07_24;

class AA {
	public AA() {
		System.out.println("AA" + "생성");
	}

	public void println() {
		System.out.println("메롱!!");
	}

}

class System2 {
	static AA out = new AA();
	
	
	
}

public class _Static{
	public static void main(String[] args) {
		System2.out.println();
		System2.out.println();
		System2.out.println();
	}

}

10.아래의 가위바위보 게임을 짜시오.

-난수 발생 함수가 필요 할것입니다. 아래의 메소드를 참고 해 주세요.

  • (Math.random() * 3 + 1);​
    출력=======================
    가위, 바위, 보 중 하나를 입력하세요.
    가위
    바위
    졌습니다.
    계속하시겠습니까?(Y/N)
    y
    가위, 바위, 보 중 하나를 입력하세요.


    비겼습니다.
    계속하시겠습니까?(Y/N)

0개의 댓글