본문 바로가기

Java

[Java] 객체 생성 방법

1. new 연산자

  • 형식) 클래스명 객체명 = new 클래스명( );
  • ex) ThreeTest22 tt2 = new ThreeTest22( );

2. 메서드 매개변수

  • call By Value --> 값에 의한 전달방법
  • call By Reference --> 주소에 의한 전달방법(=객체에 의한 전달방법)
public class CallByValue {

	public static void main(String[] args) {

		int r = -1,g = -1, b = -1;
		System.out.println("before:red="+r+",green="+g+"blue="+b);
		change_color(r,g,b);
		System.out.println("after:red="+r+",green="+g+"blue="+b);

	}
	
	static void change_color(int r,int g,int b){
		r += 10;
		g += 50;
		b += 100;
		System.out.println("메서드 내부의 r="+r+",g="+g+",b="+b);
	}

}
class RGBColor{
	int r,g,b;	//0,0,0
	
	RGBColor(int r,int g,int b){
		this.r=r;	//color.r=-1;
		this.g=g;	//color.g=-1;
		this.b=b;	//color.b=-1;
	}
}
public class CallByRef {

	public static void main(String[] args) {

		RGBColor color = new RGBColor(-1, -1, -1);
		System.out.println("color="+color);
		System.out.println("before:red="+color.r+",green="+color.g+"blue="+color.b);
		change_color(color);
		System.out.println("after:red="+color.r+",green="+color.g+"blue="+color.b);
	}
	
	static void change_color(RGBColor color1){
		System.out.println("color1="+color1);
		color1.r += 10;
		color1.g += 50;
		color1.b += 100;
		System.out.println("메서드 내부의 r="+color1.r+",g="+color1.g+",b="+color1.b);
	}

}

3. 메서드 반환형

  • 메서드의 반환형을 통해서 객체를 얻어오는 방법
public class GCCollector {

	public static void main(String[] args) {

		Runtime r= Runtime.getRuntime();	//클래스명.정적메서드명()
		System.out.println("r="+r);
		byte test[] = new byte[1024];
		test[1]=20;
		test[2]=34;
		System.out.println("test="+test);
		System.out.println("before사용메모리양="+(r.totalMemory()-r.freeMemory())/1024+"K");
		test = null;	//주소 지우기
		System.gc();//수동으로 불필요한 메모리를 제거시켜주는 메서드
		System.out.println("after사용메모리양="+(r.totalMemory()-r.freeMemory())/1024+"K");
	}
}

'Java' 카테고리의 다른 글

[Java] 추상클래스, 인터페이스  (0) 2019.07.24
[Java] static , final  (0) 2019.07.23
[Java] 접근 지정자 - private, default, protected, public  (0) 2019.07.22
[Java] 객체지향 프로그래밍 - 상속  (0) 2019.07.19
[Java] 배열(array)  (0) 2019.07.18