본문 바로가기

java,jsp,spring/java

java 객체 배열 등

class Circle { // 접근 지정자가 없는 클래스 > default 클래스
	int radius;
	public Circle(int radius) {
		this.radius = radius;
	}
	public double getArea() {
		return 3.14*radius*radius; //	return Math.PI*radius*radius;
	}
//	public static void main(String[] args) {
//		System.out.println("2");
//	} public 클래스에 있는 main 메소드만 실행 
}
public class CircleArray {  // 자바 파일 한개에 public은 한개만 가능
	public static void main(String[] args) {
		Circle[] c; // 클래스 타입의 객체 배열 선언
		c = new Circle[5]; // 공간이 5개인데 각 공간에 참조변수가 들어감
		for (int i = 0; i < c.length; i++) {
			c[i] = new Circle(i); // 객체 생성하면서 0~4를 생성자로 넘김
		}
		for (int i = 0; i < c.length; i++) {
			System.out.println((int)c[i].getArea()+" ");
		}
	}
}

객체 치환

  • Circle s; > s(참조변수) 선언
  • 참조변수가 같은 것은 값이 같은것이 아니라 같은 객체를 가르키는 것
  • radius = 1인 객체는 객체 치환으로 인해 쓰레기가 되기 때문에 자원 반납 필요

인자(매개변수) 전달

기본 타입의 값 전달 : 값이 복사 >> 출력 결과 : 10

객체 혹은 배열 전달 : 같은 객체를 가르킴 >> 출력 결과 : 11

<<예시 그림>>

public class ArrayParameterEX {
	static void printCharArray(char a[]) {
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i]);
		}
		System.out.println();
	}
	static void replaceCharArray(char a[]) {
		for (int i = 0; i < a.length; i++) {
			if (a[i] == ' ') {
				a[i] = ',';
			}
		}
	}
	public static void main(String[] args) {
		char c[] = {'T','h','i','s',' ','i','s',' ','a',' ','p','e','n','c','i','l','.'};
		printCharArray(c); // This is a pencil.
		replaceCharArray(c); // 띄어쓰기를 ,로 대체
		printCharArray(c); // This,is,a,pencil.
	}
}

 

메소드 오버로딩

  • 반환타입과는 상관없이 매개변수 타입이 다르거나 갯수가 달라야함
class MethodOverloading {
	public int getSum(int i, int j) {
		return i + j;
	}
	public int getSum(int i, int j, int k) { 
		// 매개변수 갯수가 다름
		return i + j + k;
	}
}
class MethodOverloadingFail {
	public int getSum(int i, int j) {
		return i + j;
	}
	public double getSum(int i, int j) { 
		// 매개변수 둘다 int라서 오류
		return (double)(i + j);
	}
}

가비지 컬렉션

  • 불필요한 메모리를 알아서 정리
  • 레퍼런스 카운트 : 객체를 참조하는 변수의 수 카운트가 0이되면 GC가 자동으로 대상에 올리고 작동

'java,jsp,spring > java' 카테고리의 다른 글

java 상속  (0) 2022.07.31
java 접근 지정자, static  (0) 2022.07.25
java 객체 지향  (0) 2022.07.23
java 예외 처리  (0) 2022.07.20
java 열거형 등  (0) 2022.07.20