본문 바로가기
Class/220727

Class(1-1)

by pms93 2022. 7. 27.
package method;

import java.util.ArrayList;

// 클래스 내에 또다른 클래스를 만들 수 있다.
// 같은 패키지 내에 SubClass1의 이름으로 class file을 생성할 수 없다.
class SubClass1 {
	
	public void method1() {
		System.out.println("SubClass1 멤버로 구성된 method1");
	}
	
	public static void method2() { 
		// static 
		// - 코드 실행시(프로그램 실행시) 바로 메모리상에 올라온다.
		// - 같은 패키지 내 어디서든 접근이 가능하게 만들어준다(전역)
		// - 프로그램 종료시까지 메모리에 남아있다.(GC가 제거해주지 못한다)
		// - 많은 양의 static은 좋은 방법이 아니다.
		System.out.println("SubClass1 멤버로 구성된 method2");
	}
}

public class MainClass1 {

	public static void main(String[] args) {
		// new 클래스명()
		// - 인스턴스가 되면서 파라미터의 매개값을 가지고 생성자를 실행하여 참조변수를 생성한다.
		SubClass1 sub1 = new SubClass1();

		// 참조연산(.)을 통해 SubClass1의 method1을 호출할 수 있다.
		sub1.method1(); 
		sub1.method2();
		// method2는 static method이므로 위처럼 인스턴스를 통한 접근이 아닌 아래처럼 직접접근을 권고하고 있다.
		SubClass1.method2();
		
		System.out.println();
		
		// 동일 패키지 내 다른 클래스를 불러와 사용할 수 있다.
		SubClass2 sub2 = new SubClass2();
		sub2.method1();
		SubClass2.method2();
		int data = sub2.method3();
		System.out.println("method3 반환 데이터 : " + data);
	
		ArrayList<Integer> datas = sub2.method4();
		System.out.println("method4 반환 데이터 : " + datas);
		
		int result = sub2.method5(10, 20);
		System.out.println("결과 : " + result);
	}
}

'Class > 220727' 카테고리의 다른 글

Class 예제(1-2)  (0) 2022.07.27
Class 예제(1-1)  (0) 2022.07.27
Class(2-2)  (0) 2022.07.27
Class(2-1)  (0) 2022.07.27
Class(1-2)  (0) 2022.07.27