JAVA 객체지향 프로그래밍

static

수업소개

static 키워드에 대해서 살펴보는 수업입니다. 

 

 

 

강의

소스코드

class Foo{
    public static String classVar = "I class var";
	public String instanceVar = "I instance var";
	public static void classMethod() {
		System.out.println(classVar); // Ok
//		System.out.println(instanceVar); // Error
	}
	public void instanceMethod() {
		System.out.println(classVar); // Ok
		System.out.println(instanceVar); // Ok
	}
}
public class StaticApp {

	public static void main(String[] args) {
		System.out.println(Foo.classVar); // OK
//		System.out.println(Foo.instanceVar); // Error
		Foo.classMethod();
//		Foo.instanceMethod();
		
		Foo f1 = new Foo();
		Foo f2 = new Foo();
//		
		System.out.println(f1.classVar); // I class var
		System.out.println(f1.instanceVar); // I instance var
//		
		f1.classVar = "changed by f1";
		System.out.println(Foo.classVar); // changed by f1
		System.out.println(f2.classVar);  // changed by f1
//		
		f1.instanceVar = "changed by f1";
		System.out.println(f1.instanceVar); // changed by f1
		System.out.println(f2.instanceVar); // I instance var
	}

}

 

댓글

댓글 본문
작성자
비밀번호
  1. juni
    복잡한데... 필요하니까 분류해 놓았겠지요....
    조심해서 써야겠네요...
    감사합니다..
  2. Serina
    다시 이해안되기 시작했어요^^;;
  3. 감자맛
    * [클래스 함수] → [클래스 변수] 접근 가능, [인스턴스 변수] 접근 불가능
    * [인스턴스 함수] → [클래스 변수] 접근 가능, [인스턴스 변수] 접근 가능
    * [클래스]로 접근 시 → [클래스 함수] 사용 가능, [인스턴스 함수] 사용 불가능, [클래스 변수] 접근 가능, [인스턴스 변수] 접근 불가능
    * [인스턴스]로 접근 시 → [클래스 함수] 사용 가능, [인스턴스 함수] 사용 가능, [클래스 변수] 접근 가능, [인스턴스 변수] 접근 가능

    *[인스턴스] 또는 [클래스]로 접근해 수정한 [클래스 변수]의 값은 다른 모든 인스턴스에게 영향을 끼침.
    *[인스턴스]로 접근해 수정한 [인스턴스 변수]의 값은 다른 인스턴스에게 영향을 끼치지 않음.
    대화보기
    • 감자맛
      여기부터 갑자기 난이도가 가팔라지네요 ㅋㅋ
    • 라또마니
      다시 한번 들어야 할 듯.. 하네요~~
    • 이렇게 원리 다 설명해주는거 너무 좋아요
    • 이기호
      감사합니다!^^
    • 쑤우
      수강완료. 감사합니다~
    • 허공
      감사합니다!
    graphittie 자세히 보기