a ) 객체 변수 선언과 생성

클래스이름 변수 ;
변수 = new 클래스이름();
얘랑 똑같은게
클래스이름 변수 = new 클래스이름();

b) 그냥 생성

new 클래스이름() // 잘 안씀 한번 쓰고 마는거라

클래스 선언과 객체 생성

  • 기초타입과 참조타입

클래스의 구성 요소

멤버

  • 필드 : 객체의 속성이나 상태를 나타냄
  • 메서드 : 해당 객체에서 수행할 동작을 나타냄

생성자

  • 객체를 생성하는 특수 메서드
  • new 연산자로 호출하는 특수한 메서드

필드

  • 메서드 내부를 제외한 클래스 내부의 어디에서든 위치할 수 있음
  • 필드 선언은 기초 타입 변수선언처럼 선언할때 명시적으로 초기화할 수 있음
  • 명시적으로 초기화 하지 않으면 표와 같이 기본값으로 초기화 됨

필드와 지역 변수의 차이

  • 지역 변수는 메서드 내부에 선언된 변수. 매개 변수도 일종의 지역 변수임
  • 필드는 기본 값이 있지만, 지역 변수는 기본 값이 없어 반드시 초기화
  • 필드는 클래스 전체에서 사용할 수 있지만, 지역 변수는 선언된 블록 내부의 선언된 후에서만 사용 가능
  • 필드와 달리 지역 변수는 final로만 지정 가능

필드와 메서드 접근

  • 메서드나 필드는 객체에 소속된 멤버이므로 객체가 없다면 접근할 수 없음
  • 클래스의 멤버에 접근하려면 해당 클래스의 객체를 먼저 생성 해야 함
  • 그리고, 생성된 객 멤버에 접근시 다음과 같이 멤버를 연결해 사용
  • 예를 들어, 외부 클래스 Circle의 객체 myCircle이 있다면 myCircle 객체의 radius와 findArea( )는 다음과 같은 방식으로 접근

package sec06;

public class ExeRectangle2 {

    public static void main(String[] args) {
        Rectangle2 rec = new Rectangle2();
        System.out.println("사각형의 면적은 : " + rec.calc_area());
    }
}

class Rectangle2 {

    int width = 10;
    int length = 50;

    int calc_area() {
        return width * length;
    }
}
package sec06;

class MyExp {
    int base;
    int exp;

    int getValue() {
        int res = 1;
        for (int i = 0; i < exp; i++) {
            res *= base;
        }
        return res;
    }
}

public class MyExpDemo {
    public static void main(String[] args) {

        MyExp number1 = new MyExp();
        number1.base = 2;
        number1.exp = 3;

        MyExp number2 = new MyExp();
        number2.base = 3;
        number2.exp = 4;

        System.out.println("2의 3승 = " + number1.getValue());
        System.out.println("3의 4승 = " + number2.getValue());
    }
}

'TIL > [객체지향 프로그래밍] TIL' 카테고리의 다른 글

TIL (22.04.08)  (0) 2022.04.08
TIL (22.04.06)  (0) 2022.04.06
TIL (22.03.23)  (0) 2022.03.23
TIL (22.03.18)  (0) 2022.03.18
TIL (22.03.16)  (0) 2022.03.16