[Java] 5. 클래스의 멤버

PYOUNANI·2022년 9월 29일
0

Java

목록 보기
5/14
post-thumbnail

5. 클래스의 멤버

5-1. 메서드 처리 방식


5-1-1. 메서드 인자 정달 방식

이전 자료형에 대해 배웠을 때 자료형에 기본자료형과 참조자료형으로 두가지가 있었다. 따라서 메서드에 인자 정달 방식도 두가지 있다.

값 호출

  • 기본 자료형을 인자로 받고 싶을 때
  • 실인수의 값이 매개변수로 복사되어 전달
    참조 호출
  • 참조 자료형을 인자로 받고 싶을 때
  • 객체의 값 대신 참조 변수가 가진 객체에 대한 참조값을 매개변수로 복사하여 전달
  • 참조값이므로 실인수를 공유하는 효과

5-1-2. 메서드 오버로딩

하나의 클래스 내에 같은 이름을 가진 메서드가 여러 개 정의 될 수 있다. 이를 메서드 오버로딩이라고 한다.

5-1-3. this 참조변수

같은 클래스 내에서 메서드가 다른 멤버필드를 조작하기 위해서는 this 참조변수를 활용해야 한다.

public class Circle {
	
	static final double PI = 3.14159265;
	private double radius;
	
	double getArea() {
		return radius * radius * PI;
	}
    
	void setRadius(double radius) {
		this.radius = radius; // radius = radius;
	}
}

매개변수로 받은 radius를 클래스 내에 선언된 radius안에다가 할당하고 싶을 때 클래스 내에 선언된 radius에 this.을 붙여준다.
기본적으로 자바에서는 this 없이도 묵시적으로 처리해주기에 사용하지 않아도 가능하다.

5. 클래스의 멤버

5-2. 정적 멤버


5-2-1. 멤버 필드의 정적 멤버

객체 = 데이터(속성, 변수/상수, 멤버필드) + 알고리즘(행위, 함수, 메서드)

객체의 속성을 저장하는 것이 멤버필드이다.

  • instance 멤버 필드
    객체가 생성시 별도의 메모리를 할당 받는다.
double radius;
  • static 멤버 필드
    프로그램 시작 시 메모리 할당 받는다.
static double radius;

객체가 수행할 수 있는 동작들을 메서드라고 한다.

  • instance 메서드
    객체가 생성시 별도의 메모리를 할당 받는다.
    같은 클래스 내에 있는 모든 멤버는 직접 참조가 가능하다.
 double getArea(double radius){
    	return radius * radius * PI;
    }
  • static 메서드
    프로그램 시작 시 메모리 할당 받는다. 그렇기 때문에 객체를 생성하지 않고도 메서드가 사용가능하다.
    static이 아닌 멤버(instance 멤버)는 직접 참조가 불가하다.
 static double getArea(double radius){
    	return radius * radius * PI;
    }

0개의 댓글