/*내용을 복사 한 후 이클립스에서

ctrl + shift + F를 눌러주세요!!*/

 

//P.202 변수의 초기화
//이장을 쭉~읽으면서 생각한게..우리가 알고 있는 초기화 말고, 다른것을 쓸일이 있을까?라는 생각을 했다.
//답은...있으니깐 ...책에도 나왔겠지..ㅋㅋ하지만~ 예문빼고는 거의 쓸일은 없을것 같다.
//그래도 짚고 넘어가자.. 변수의 초기화만 이해가 안가서..'이게뭐야..'라고 생각하며..1시간동안 3~4번은
//정독한거 같다..ㅠ_ㅠ 스터디멤버들이여..열심히 해주세요..

package JavaTest;

//우선 클래스 하나 선언해주고~
class Product{
 static int count = 0;   //참 ~ 오랜만에 보는 클래스(static)변수..^^ 초기값을 0으로 선언했네요
 int serialNo;              //얜~ 인스턴스변수..얼래?초기값 없지? 앞에서 쭉~읽어본사람만 알수있다.
                                //인스턴스 변수는 자동으로 초기값을 0으로 갖게된다.
 
 {
  ++count;                       //아...바로 이아이다..{ } 괄호만 나와서 묶는게 인스턴스 초기화 블럭이란다.쩝~
  serialNo = count;            //괄호안에 내용을 보아하니 클래스변수는 1씩증가해라~ 그리고 그값을 serialNo에
 }                                      // 넣어랏!! 끝! 클래스 만 따로 초기화하는 방법이 있는데..
                                            //어?근데 이상하다..책을 본사람은 클래스 초기화는 static { } 이렇게 하는걸로
                                         //알고있을텐데... 안타깝게도.. 여기서는 클래스변수 count를 정적으로 쓰기보다는
                                            //유동적으로 쓰기 위해 저렇게 사용한것이다..understand??!!

 public Product(){
                                      //세현아 넌 왼쪽에 선언한 이것이 무엇이라고 생각하느냐? '생성자' 죠!
 }                                      //기본 생성자를 선언까지 해줬네~ 기본 생성자는 생략도 가능하다는거 알쥐?
                                           //이친구는 앞으로 저위에 있는 클래스 안에 있는 ★클래스변수는'지맘대로 쓸거고'
                                        //★인스턴스변수는 '인스턴스화'시켜서 쓸거야~~
}                                       

///////////자 ~ 여기까지 이상없으면 Pass~~~

public class ProductTest {

 public static void main(String[] args) {

  //본격적으로 변수들을 사용해보겠어!!
  
  Product p1 = new Product();
  System.out.println(p1.serialNo);         //0에서 1증가한 count를 serialNo에 넣어서 출력은 1이 나올테고
  
  Product p2 = new Product();              // <--요놈 밉상(또 인스턴스 생성했음)
  System.out.println(p2.serialNo);         //◆ 핵심은 요기!!! '인스턴스 초기화블럭'은 인스턴스를 생성할때마다
                                                       //실행이 되기 때문에 이전에 생성됐던 값에 또 1이 증가하는거임!
                                                       //이부분은 한 3분만 코드보고 생각해보렴~...난 머리가 나빠 10분걸림
  
  
  System.out.println(Product.count);    //참내~ 마지막 출력와서 클래스변수 답게 인스턴스도 생성안하고 막부르네.ㅋ
                                                      //최종 count 값을 자기맘대로 쓴다고하네~~~ 건방진..클래스변수들...
 }

}

//이상 여기까지가 '변수의 초기화' 부분이고 어차피 또 봐야하니 머리 싸매지 말고 집중해서 스피드하게 보고 지나가자!!

Posted by 옆모습오빠
: