@static

//static을 쓰면 변수는 JVM 메모리영역의
 //힙에 올라가는것이 아니라 메서드 부분에 남아있는다. 이것을 클래스변수라고 부른다
 //static으로 선언된 변수는 더이상 멤버가 아니다!
 //즉 해당 class에 소속되기 때문에 class명만으로도
 //접근이 가능하다!!
- non-static에서 static영역은 접근할수 있으나 그 반대는 안된다.

@ 생성자

생성자는 객체의 생성시 반드시 호출됨이 강제됨으로
 프로그래머가 정의하지 않으면, 컴파일러에 의해 정의된다.
 이러한 생성자를 디폴트라 생성자라 하며, 만일 프로그래머가
 생성자를 정의하면, 컴파일러에 의해 정의되는 일은 없다.
 public CellPhone(){}

@ 생성자의 목적은 객체의 초기화 작업에 있다!!
  /*생성자 정의시 주의할점
  1)생성자 이름은 반드시 클래스명과 일치해야 한다.
  2)반환형을 기재하지 않는다. 그렇지 않으면 일반메서드로 간주된다.


static 수정자
1.변수에 사용할 경우
 - 메서드 영역에 올라가는 바이트코드에 소속이 되므로 오로지 1번만 메모리에 올라간다.
 - 인스턴스에 포함되지 멤버변수가 아니다.
 - 인스턴스명으로 접근할 필요없이, 클래스명만으로도 접근이 가능
2.메서드에 사용할 경우
 - 클래스명만으로도 메서드 접근이 가능.
3.static을 클래스 사용할 수 있을까?
 - 클래스에 쓰지 않는다. 의미가 없음. 클래스 자체가 원본이고 고정인데 static으로 고정할 필요가 없다.
 - static으로 고정시킬 대상은 클래스내의 변수와 함수일 뿐이다. @@즉 static을 이용하여 멤버로 할지
   클래스에 고정시킬지를 결정하는 수정자이다.@@ 중요@@

생성자란?
1.정의
 - 메서드다. 단, 객체가 생성될때 무조건 호출되는 메서드
2.생성자의 요건
 1)반드시 클래명과 일치해야 한다.
 2)반환형이 없다.
3.특징
 - 프로그래머가 생성자를 정의하지 않으면 컴파일러는 new 뒤에 반드시 호출되는 생성자에 특징에 의해
 에러가 나지 않도록 디폴트 생성자를 숨겨둔다.

@Overloading
한 클래스 내에 메서드명이 중복 될 수 있는 자바의 프로그래밍 기법을 OverLoading이라고 한다. 이때 메서드의 이름은 같지만 안에 들어가는 인자의 개수와 자료형이 달라야한다. 또한 생성자도 메써드이기 때문에 OverLoading을 사용할 수 있다.

Posted by Taoist
,