메뉴 건너뛰기

조회 수 3768 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

// 아래 문제의 오류를 찾아보세요. 그리고 고쳐보세요.

 

class Joo extends Kbh
{
public static void main(String[] args){
System.out.println(age);

}
}


class Kbh
{
String name = "bong";
int age = 24;
int birth = 901116;

void seoil() { System.out.println("bye");}

}

 

 

 

 

 

#개념

위에 문제는 상속을 통한 static 멤버와 관련된 오류입니다.

static멤버는 클래스가 메모리에 올라갈때 이미 자동적으로 생성되기에 인스턴스 생성하지 않고도

 클래스이름.클래스멤버변수;  또는 클래스이름.클래스메서드(); 와 같이 사용할수 있다.

 

하지만 인스턴스 멤버는 인스턴스를 생성할때 만들어 진다. 그래서 static이 붙은 메서드를 호출할때

인스턴스가 생성되어있지 않을 수 있어서 static메서드에서는 인스턴스 변수를 사용할수 없다.

그러나 인스턴스 메서드 내에서는 static이 붙은 멤버를 사용할수 있다. 왜냐하면 인스턴스 멤버는

인스턴스가 만들어 진 후에 쓸수 있다고 했다. 그럼으로 인스턴스를 사용한다는것은 이미 인스턴스를 생성했다는 

것 이기 때문이다.(인스턴스변수가 존재한다는 것은 이미 static이 붙은 멤버가 이미 메모리에 존재한다는 의미이다.)

 

 

 

 

 

#결론

그럼으로 위에 소스에서 잘못된점은 main()메서드 안에 인스턴스 변수인 age가 인스턴스 생성없이 사용 되어 에러가발생하였다.

main()도 메서드인데 제어자가 static이기때문에 클래스메서드 이고 클래스메서드 안에서 인스턴스변수 를 사용 하려면 객체를 생성한 후이거나 static age=24;  로 접근 하여야 한다.

중요한것은 main() 도 일반 다른 메서드들 처럼 메서드일뿐이다.!!


List of Articles
번호 제목 날짜 조회 수
151 회원가입 폼(form)으로 보는 Validator 구현하는 방법 file 2016.08.29 7108
150 회원가입 양식에서 (필수/옵션)필드 추가/제거하기 file 2016.08.29 5330
149 회원가입 양식에서 (필수/옵션)필드 추가/제거하기 file 2016.08.29 4471
148 한글이 깨졌다! 인코딩(encoding)을 설정하자 file 2016.09.19 4715
147 프로젝트 & 아파치 &톰켓 연동 ]2. 자바 설치 file 2016.08.18 4170
146 프로젝트 & 아파치 &톰켓 연동 ]1. 폴더 만들기 file 2016.08.18 3983
145 파일I/O 개요 file 2016.09.13 3507
144 파일 읽고쓰는 암호화/복호화 2016.09.21 7381
143 클래스멤버와 인스턴스멤버간의 참조와 호출 2016.09.13 3346
142 클래스 메서드와 인스턴스 메서드 2016.09.13 3720
141 클래스 객체 생성과 사용 2016.09.19 3377
140 컬렉션 프레임워크 file 2016.09.13 3705
139 직렬화 / 역직렬화 file 2018.09.21 951
138 조건문과 제어문 2023.02.15 61
137 제네릭 file 2016.09.13 3297
136 접근 제한자 private/ protected/ public / default file 2016.10.06 5136
135 전자정부프레임워크 v2.5, v2.6 오라클 세팅하기 file 2016.09.12 5109
134 전자정부표준프레임워크 - 설치 file 2016.09.02 6277
133 전자정부 프레임워크란? file 2016.09.19 8342
132 전자정부 표준프레임워크 설치하기 file 2016.08.29 4250
Board Pagination Prev 1 2 3 4 5 6 7 8 Next
/ 8

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved