①손코딩이 최고다!
②어떤걸 연습하더라도 주석을 반드시 달자!
객체와 클래스를 이해하기 위해 SQL용어를 쓴것 뿐 두개가 같은 건 아니니 오해하지마시길..
객체(object) = 독립된 하나의 entity(SQL용어로)
객체의 행동은 외부 세계와 상호작용을 위해 하는 것이다. = relation(SQL용어로)
object의 묶음 = class = entity set(SQL용어로)
다만, class는 entity들의 공통된 속성의 묶음 이라는 사실을 잊지말자.
한마디로 class는 table이고 object는 attribute에 저장되어 있는 릴레이션 인스턴스의 느낌이다.
은행계좌 클래스
계좌번호
예금주 이름
잔액
예금한다
인출한다
이것이 바로 클래스를 이용하여 객체를 생성하는 법이다.
이제 클래스를 선언해보자!
** 필드: 클래스 안에 메소드와 동일한 수준으로 선언된 변수
class GoodsStock { //클래스를 선언
String goodsCode; //상품코드에 해당하는 필드
int stockNum; //재고수량에 해당하는 필드
void addStock (int amount) { //재고를 더한다 기능에 해당하는 메소드
stockNum += amount;
}
int subtractStock( int amount) { //재고를 뺀다 기능에 해당하는 메소드
if (stockNum<amount)
return 0;
stockNum -= amount;
return amount;
}
}
위에 작성한 클래스를 이용하는 프로그램을 짜봤다.
** constructor (생성자)를 사용해 보자! ++
생정자가 SQL을 해본 나한테는 어떤 느낌으로 다가오나면 insert value (입력값, 입력값, 입력값,...) 과 같은 느낌으로 다가온다.
만드는 법: 클래스명(파라미터1, 파라미터2) { 파라미터를 대입할 변수들 선언) 흠...이런식으로 하니까 감이 안오니까 실제로 작성해보자.
생성자를 만드는 이유는 조금더 쉽게 필드값을 넣기 위해서라고 해두자.
아래는 생성자를 이용한 클래스를 참조하여 만든 프로그램이다.
*생성자와 메소드의 차이점 생성자는 앞에 void, int와 같은 리턴타입이 존재하지 않는다. 그리고 생성자의 이름은 클래스명과 똑같다.
** 생성자를 두개 갖는 클래스 **
8일차에는 생성자 구분법부터 시작하겠다!