클래스에는 데이터 이외에 클래스가 어떤 동작을 하는지를 나타내는 메서드를 정의할 수 있다.
객체 = 인스턴스
라는 의미로 사용
생성자
Product 클래스
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();
}
}
new 연산자
를 사용해 클래스의 인스턴스를 생성합니다.인스턴스
란 컴퓨터의 메모리 상에 확보된 클래스의 실체라고 생각하면 됩니다.Product yakkwa = new Product(123, "약과", 180);
Product 클래스 정의(1.1.1)
Product 클래스를 이용하는 코드 작성(1.1.2) - '약과 객체' 생성
'약과 객체'를 이용하기(1.1.3)
변수 이름 뒤에 '.'을 붙인 후 속성 이름을 지정해서 상품 가격을 꺼냈습니다.
Product 클래스에 정의돼 있는 Price 속성을 사용해 '약과 객체'의 상품 가격을 꺼내는 코드
인수가 없는 메서드를 호출할 때도 괄호를 붙어야 한다.
int price = yakkwa.Price; // 180 대입
int taxIncluded = yakkwa.GetPriceIncludingTax(); // Product 클래스의 GetPriceIncludingTax() 메소드 호출
Product yakkwa = new Product(123, "약과", 180);
Product chapssal = new Product(234, "찹쌀떡", 160);