C. Java

java 자바 클래스

sfeg 2017. 7. 2. 22:42



접근지정자





     클래스
     -  클래스는 동일한 모양의 객체를 여러개 만들어 내기 위해 만든 모형이다.
        즉 어떠한 데이타와 어떠한 메소드를 사용하는 객체를 만들겠다는 정의이다.
        (Object[객체] = > Data + 메소드)
     -  자료형(프로그램적인 측면에서)
     -  특징은 추상화, 다형성, 상속성, 은닉화(캡슐화)  이다.
 
 
    객체 생성
    - 클래스에서 정의에 따라 실질적으로 데이타를 저장할수 있는 기억공간을 메모리에 할당하는
      것을 객체생성이라고 한다. ( 인스턴스 생성 )
 
 
    객체 생성 방법    
    - new연산자 를 이용하여 객체를 생성한다.

      기본자료형(int, short...)은 변수선언에 의해 실제 데이타를 저장할 공간이 생기지만,
        ex) int a; a=5;
      클래스 자료형은 레퍼런스형이어서 변수선언으로 스택메모리 공간에 레퍼런스 변수가 할당되어
      값을 저장하지 못하고 new연산자를 사용하여 객체선언을 해야한다.
        ex) Animal(클래스) a;
              a = new Animal();
             
            =>  Animal a = new Animal(); 
 
 
 
     생성자(Constructor)
        - 객체가 생성될때 자동으로 호출(new 명령어를 만났을때) 되며 객체를 초기화한다.
        - 클래스명과 동일한 메소드 
        - 생성자는 리턴형이 없습니다 .
        - 생성자의 역할은 인스턴트변수(클래스 내부변수) 초기화를 담당 한다.
        - 생성자는 중복정의 될수 있다 . (생성자 오버로드)
        - 생성자를 정의하지 않았을 때에는 컴파일러가 제공하는 생성자가 호출되어진다.
          (디폴트 생성자)
 
 
     디폴트 생성자
       - 자바의 모든 클래스는 최소한 한개의 생성자는 갖고 있다. 만일 사용자가 생성자를 하나도
          만들지 않았을경우에도  컴파일러에 의해서 디폴트 생성자가 자동으로 호출된다.
       -  전달인자가 없고, 메소드 몸체부분이 비어있는 형태이다. ex) public MyDate() { }
       - 사용자가 생성자를 하나라도 만들게 되면 컴파일러는 디폴트 생성자를 제공하지 않는다.
          ps. 클래스 설계시 디폴트 생성자와 같은 형태의 생성자를 만들어주는것이 좋다.
 
 
     생성자 오버로딩
       -  메소드 오버로딩처럼 인수형식이 다른 생성자를 더 정의할수 있다.
    
 
 
 
 
     this 
     - 자신을 참조하는 참조변수
     - class 메소드내에서만 사용가능
 
    this() 생성자
   
- 같은 클래스내의 다른 생성자를 호출할때 사용
 
   
 
     오버로딩 
     - 같은 클래스 안에서 메소드 명이 같고,인수 형식이 다른 메소드를 정의 하는 것을 의미
  
    오버라이딩
     - 서브 클레스에서 메소드 명. 인수의 형식이 완전히 같은 메소드를 다시 정의 하는 것을 의미
 
 
 
    클래스배열           - ex)  A  []ar;
                                       ar = new A[3];
                                       ar[0] = new A();
                                       ar[1] = new A();
                                       ar[2] = new A();