클래스

Soonyoung Kim·2022년 4월 12일
0
post-thumbnail

1.1 클래스

1.1.1 클래스 정의

  • 클래스에는 데이터 이외에 클래스가 어떤 동작을 하는지를 나타내는 메서드를 정의할 수 있다.

  • 객체 = 인스턴스 라는 의미로 사용

  • 생성자

    • 클래스와 이름이 같은 특수한 메서드
  • Product 클래스

    • code, name, price 세개의 public 속성(공개 속성)
    • public 메서드
      • GetTax 메서드 : 해당 상품의 소비세를 구하는 메서드
      • GetPriceIncludingTax 메서드 : 해당 상품의 세금을 포함한 가격을 구하는 메서드
public class Product{ // 상품 클래스
    public int Code { get; set; } // 속성 정의
    public string Name { get; set; } // 속성 정의
    public int Price { get; set; } // 속성 정의
    
    // 추가 메서드
    public int GetTax(){
        return (int)(Price * 0.08);
    }
    
    // 추가 메서드
    public int GetPriceIncludingTax(){
        return Price + GetTax();
    }
}
// Product를 이용하는 쪽에서 생성자를 통하지 않고는 속성값을 설정할 수 없다(Price 속성에 있는 set 접근자의 권한이 private으로 설정)

public class Product{ // 상품 클래스
    public int Code { get; private set; } // 속성 정의, set을 private으로 수정
    public string Name { get; private set; } // 속성 정의, set을 private으로 수정
    public int Price { get; private set; } // 속성 정의, set을 private으로 수정
    
    // 생성자 : 클래스와 이름이 같은 특수한 메서드
    public Product(int code, string name, int price){
        this.Code = code;
        this.Name = name;
        this.Price = price;
    }
    
    // 추가 메서드
    public int GetTax(){
        return (int)(Price * 0.08);
    }
    
    // 추가 메서드
    public int GetPriceIncludingTax(){
        return Price + GetTax();
    }
}

1.1.2 클래스의 인스턴스를 생성한다.

  1. Product 클래스 정의(1.1.1)
  2. Product 클래스를 이용하는 코드 작성(1.1.2)
    • 클래스를 이용하려면 일단 new 연산자를 사용해 클래스의 인스턴스를 생성합니다.
    • 인스턴스란 컴퓨터의 메모리 상에 확보된 클래스의 실체라고 생각하면 됩니다.
    • new 를 하면 '약과 객체'가 컴퓨터 메모리 상에 생성됩니다. 이때 호출 되는 것이 앞서 정의한 생성자입니다.
    • yakkwa 변수 자체에 상품의 데이터가 들어가는 것이 아니라 상품의 데이터는 다른 곳에 확보되고 yakkwa 변수에는 그곳의 참조(메모리 상에 붙여진 주소)가 저장됩니다.
Product yakkwa = new Product(123, "약과", 180);

1.1.3 객체를 이용한다.

  1. Product 클래스 정의(1.1.1)

  2. Product 클래스를 이용하는 코드 작성(1.1.2) - '약과 객체' 생성

  3. '약과 객체'를 이용하기(1.1.3)

    • 변수 이름 뒤에 '.'을 붙인 후 속성 이름을 지정해서 상품 가격을 꺼냈습니다.

    • Product 클래스에 정의돼 있는 Price 속성을 사용해 '약과 객체'의 상품 가격을 꺼내는 코드

    • 인수가 없는 메서드를 호출할 때도 괄호를 붙어야 한다.

      • Product 클래스 사양을 몰라도 Price가 속성이고 GetPriceIncludingTax가 메서드라는 것을 괄호를 보고 알 수 있다.
int price = yakkwa.Price; // 180 대입
int taxIncluded = yakkwa.GetPriceIncludingTax(); // Product 클래스의 GetPriceIncludingTax() 메소드 호출

1.1.4 인스턴스는 여러 개 만들 수 있다

  • 하나의 클래스로부터 여러 개의 인스턴스를 생성할 수 있다.
  • Product 클래스로 부터
    • 약과 객체
    • 찹쌀떡 객체
Product yakkwa = new Product(123, "약과", 180);
Product chapssal = new Product(234, "찹쌀떡", 160);
profile
Sin prisa, sin pausa.

0개의 댓글