본문 바로가기

static3

static 이 붙으면 overriding 불가한 이유 ◎ static 이 붙은 경우 컴파일 시 data 영역에 메모리가 이미 할당되므로 오버라이딩 할 수 없다 오버라이딩은 런타임 시 인스턴스화(객체화) 하여 만들어낸 인스턴스의 메소드나 변수에 재정의한 값을 사용하지만 static 이 붙은 변수나 메소드는 이미 컴파일 시 정해져 클래스 전역에서 사용하는 값이므로 static 이 붙은 데이터는 클래스의 값이지 인스턴스의 값이 아니다. 그러므로 static 은 오버라이딩 할수없다 2022. 5. 2.
[java] interface , implements inter 서로 + face 마주보다 = interface 연결장치 implements (변화된 것을)시행하다, 구현하다 뜻에서 알수있듯 서로 다른 클래스들에게 서로 연결을 시켜줄수있는 방법이 인터페이스이다 extends 를 통한 상속은 java 에서 단일 상속만 가능해 클래스 간 하나의 관계만을 가질수있지만 implements 를 통한 상속은 여러 interface 를 상속 가능하다 이는 interface 가 클래스가 아닌 추상적 개념이기 때문이다 abstract class 클래스명 구조의 추상적"인" "클래스"보다 더욱 추상적인 개념이므로 interface 인터페이스명 으로 써서 class 라고 쓰지도 않는다 (즉, 클래스가 아니다) class 는 뭐다? 객체가 될 수 있는 것이다. 즉, 인터페이스는.. 2022. 5. 2.
[java] static 의 이해 스타크래프트 게임에서 질럿을 뽑아보자 프로토스라는 패키지 안의 여러 건물과 유닛의 클래스가 존재한다 그 중 유닛인 질럿과 질럿의 업그레이드 건물 포지 질럿 생산 건물인 게이트 웨이의 관계를 이용하여 static 을 설명가능하다 질럿은 게이트 웨이에서 생산가능하며 생산 시 명령은 다음과 같다 질럿 질럿1 = new 질럿;질럿이라는 객체의 클래스를 보면 다음과 같다 class 질럿 { name : 질럿; attack : 16; hp : 100; shield : 60; }non-static 이 아닌 방식으로 attack을 높이려면 일단 new 질럿으로 생성해서 각각의 질럿들을(=인스턴스들) 만들어 하나씩 수정 할 부분의 데이터를 고치게 되지만 non-static 의 경우 class 변수 = new class(.. 2022. 4. 21.