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);
}
}