본문 바로가기
Programming/Java

4장. 클래스와 객체 #3 객체 배열 #4 메소드

by jaegom 2020. 6. 10.

객체 배열

  1. 객체 배열 : 배열의 각 원소가 배열을 가리키는 레퍼런스이다.
    ex)

class Circle {

int radius;
Circle(int radius) { this.radius = radius; }
public double area() {return radius*radius*3.14;}

}

public class CircleArray{
public static void main(String[] args) {
Circle[] c = new Circle[5] // 다섯 개의 null pointer를 원소로 가진 배열
for (int i=0; i<c.length;i++) {
c[i] = new Circle(i);
System.out.println(c[i].area()); }
}
}

메소드

  1. 메소드의 형식

-접근지정자 리턴타입 메소드이름(메소드 인자) {메소드 코드}
ex) public void getSum(int a, int b){ return a+b;}

-인자(매개변수) 전달방식
i) 값을 복사하여 전달
ex) public static void main(String[] args) {
int n = 10;
increase(10); //값을 복사하여 전달하므로 원래 원래n값(실인자)은 변하지 않는다.
}

ii) 객체나 배열은 레퍼런스만 전달
ex) Circle로 만든 객체에서 처음 초기화된 값까지 전달이 된다. 레퍼런스를 전달하므로 원래 숫자(실인자)를 조작하는 것과 같다.

 

  1. 메소드 오버로딩 : 이름이 같은 메소드 작성
  • 이름은 같지만 메소드의 매개변수의 개수나 타입이 서로 다르게 여러 메소드 선언 가능.
  • 생성자 오버로딩도 같은 맥락이다. 생긴게 같은 메소드가 호출된다.
  • 리턴 타입은 오버로딩과 관계 없다.

 

  1. 객체의 소멸

-사용자는 객체의 메모리 할당만 가능하고 메모리 반환은 JVM의 고유 권한이다.
-레퍼런스가 없는 객체를 가비지라고 하며 사용할 수 없게 된 메모리이다.

댓글