
생성자도 오버로드 가능
static을 쓴 변수나 메소드는 시작할 때부터 주소를 할당하고 시작함.
=> 누가봐도 변하지 않는 값이나 경우를 설정 할 때 같은 경우 && 범용적으로 쓰는 경우에 쓰는게 좋다고 생각중.
=> static변수 or static메소드의 경우는 class안에 선언해 줘야 하나 이 또한 시작할 때 주소를 할당하고 시작하므로 클래스와는 독립된 개념으로 존재하여 그 클래스 내에 있는것이 아니다.
=> 좀 다르지만 대충 main문에 static으로 정의한 전역변수, 전역함수라고 생각하면 될듯. 이 static이 포함된 모든 패키지 내의 클래스에서는 사용할 수 있음.
=> 함부로 변경하면 큰일날 수 있음. 자신이 종속된 패키지내에서 독립적으로 존재하며 프로그램시작과 동시에 고정할당된 전역변수, 전역함수라 생각하면 되기 때문에, 값을 변경하지 않고 아무렇게나 꺼내쓰는건 상관없을지 몰라도 이곳저곳에서 사용하면서 값을 변경하면 변경 할 때마다 그 주소내의 값이 바뀌기 때문에 해결이 불가능 수준인 스파게티 코드가 될 가능성이 크다.
클래스형도 인자나 리턴값으로 사용가능하다.

cf) 클래스형도 배열로 선언 가능하다

String 타입의 진실
int 형이나 double 형 같은 기본형 (primitive type)이 아니라,
Hero 와 같은 “클래스 타입" 이다
효율이 나쁜 String의 사용 방법


화이트박스, 블랙박스 테스트
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
<개인적 생각>
1. 클래스끼리를 서로 동등한 위치를 가진 코드라고만 생각하지 말것. 같은 패키지 내에 있는 클래스라도 다른 클래스에서 사용되는 용도의 클래스 일 수도 있음.예를 들면 [class용사, class활,class화살] 이 있다면 class용사 내에 활을 선언하여 사용하기 위한 목적으로 class활을 만들 수 있다.
헷갈리면 하위 패키지로 나누면 될듯.