①손코딩이 최고다!
②어떤걸 연습하더라도 주석을 반드시 달자!
** 클래스 내부에서의 메소드 호출 **
** 익셉션(예외)을 처리하는 방법 **
try와 catch를 사용한다! 에러가 날것 같은 메소드를 try로 감싸고 에러가 나면 어떤 메세지를 띄울것인가를 catch를 통해 만들어내면 된다.
** 인위적으로 익셉션을 발생시키자! **
why? 필요하니까! 다시 말하자면 쓸 일이 있으니까 쓰게 된다. 아래와 같은 내용에 적절하게 사용할 수 있다.
throw new Exception(파라미터) <<이게 익셉션 생성문
그리고 사용되는 객체에서는 try와 catch를 사용해야만 에러가 나지 않는다.
** 정적필드 **
일반적으로 필드는 객체의 고유한 데이터 값을 저장하기 위해 사용되지만 경우에 따라서는 클래스 자체에 속하는 데이터를 저장할 변수도 필요하다. 그때 정적 필드를 사용하면 된다.
필드선언 앞에 static을 붙이면 된다.
결과를 보면 total의 값은 10과 20이되는데 grandTotal의 값은 30으로 고정이다. 왜 이런결과가 나온것일까?
total필드는 객체마다 따로 생기지만 grandTotal필드는 특정 객체에 상관없이 클래스 자체에 하나만 생기는 정적필드이기 때문이다.
다시 말하자면 obj1에 들어가는 값이 10이기에 10이 출력된 것이고 obj2에 들어가는 값이 20이기에 20이 출력되는 것이다.
그런데 grandTotal은 클래스 내로 들어오는 모든 값들을 더해서 출력하는것이므로 30이 출력되는 것이다.
* 정적 필드는 클래스 자체에 속하기 때문에 앞에 객체 이름대신 클래스 이름을 붙여서 사용할 수도 있습니다.
System.out.println("총계="+ Accumulator(클래스이름).grandTotal(정적필드이름)); //()안에 있는건 설명때문에 넣은것일뿐 실제로 만들땐 빼야된다.