2013년 10월 21일 월요일

자바인스턴스변수와 인스턴스 메소드

자바인스턴스변수와 인스턴스 메소드(Java Instance Method, Field)[JAVA강좌,JDK교육강좌,자바객체]
 
- 인스턴스 필드(변수)
 
static으로 선언되지 않은 모든 변수(필드)
클래스의 인스턴스와 연관, 생성된 모든 객체는 자신만의    복사본을 가진다.
클래스 내부에서 이름하나만으로 지칭된다.
 
    public double r;
     public double area() {
        return PI * r * r;
     }
 
static으로 클래스 외부에서는 클래스를 인스턴스 화한 객체.변수명 형태로 사용한다.
인스턴스 필드(변수)의 값은 한 객체를 다른 객체와 구분한다.
 
     Circle c = new Circle();     c.r=2.0;
     Circle c1 = new Circle();   c1.r=5.0;

- 인스턴스 메소드
 
static으로 선언되지 않은 모든 메소드
클래스의 인스턴스(객체)와 연관된다.
static이든, 아니든 모든 클래스멤버 사용가능
클래스 외부에서는 클래스를 인스턴스화한 객체.메소드명 형태로 사용한다.   
인스턴스 필드(변수)의 값은 한객체를 다른객체와 구분한다.
 
   Circle c = new Circle();     c.r=2.0;
    double a = c.area(); //객체 c에는 이미 r 값이 setting됨
 
   매개변수가 없는 c.area()가 어떤 데이터에 대해 수행될건지 어떻게 아는가?사실 모든 인스턴스 메소드는 암시적인 this 매개 변수를 가지고 실행된다.this는 메소드가 호출되는 객체(Circle) 이다. This 매개변수는 항상 필요하지는 않기에 메소드 시그네처에 보이지 않는다.메소드가 그자신의 필드(변수)등을 접근한다는것을 명시적으로 this를 이용하여 지정할수 있다.
 
  public double area() {
           return Circle.PI * this.r * this.r; 
  }
 

댓글 없음:

댓글 쓰기