반복문을 활용하여 포커 카드 그리기
먼저 표현할 카드의 클래스를 생성한다.
클래스로 카드 객체를 만들예정이고, 카드의 크기는 동일하게 적용될 예정이라 넓이와 높이는 static 요소로 선언되어있다.
현재 객체가 생성되지 않은상태이기에 카드의 설정값은 this를 사용하여 멤버필드에 적용하지 못한다, 그리하여 Card 클래스를 이용하여 적용한다.
또한 객체를 만들 생성자를 따로 선언하여 매개 값으로 문자열 그림과 숫자를 받도록 선언하였다.
이제 메인으로 넘어와 객체를 생성한다.
총3개의 각 객체를 만들었고, 카드의 크기또한 지정하였다.
다시 Card 클래스로 넘어와 이제 객체를 사용하여 호출할 함수를 작성한다.
포커 카드의 경우 왼쪽 윗 모서리 와 오른쪽 아랫 모서리에 그림과 카드의 번호가 위치 한다. 먼저 카드 번호와 그림이 이 위치할 곳의 인덱스 번호를 출력하여 확인하면 더 쉽게 접근이 가능하다.
인덱스 번호를 확인하여 if문으로 각 맞는 인덱스에 서로 다른 출력문을 출력하게 하여 그림을 그리듯 출력해 낼수 있다. 첫번째 조건에 if 그리고 그다음 조건식은 else if들로 하여 각 맞는 조건에서 수행을 하도록하고 맨밑은 else를 위치시켜주면 각 조건에 맞는 구문을 찾아서 수행하게 된다.
이제 함수도 만들었으니 객체를 사용하여 함수 호출을 한다.
아래와 같은 출력문이 출력이 된다.
자바에서 다양한 데이터를 구성할 때 primitive나 String이 아닌것중에서 가장 많이 사용하는 자료형이있다. 바로 Date 함수 이다. Date는 java.util 에서 import 하여 사용이 가능하다.
사용하는 방법은 import한 후 객체를 만들어 사용 할 수있다.
출력시
이런식으로 출력이 된다.
today를getTime()이라는 함수를 사용하게 되면
이런 결과가 나온다 이유는. 컴퓨터는 1970년1월1일0시0분0초를 기준으로 지난 시간을 초단위로 계산한다. 자바에서는 1초 대신 1/1000초 즉,(millisecond)를 사용하여 계산한다.
이렇다 보니 보다 쉽게 사용이 가능하도록 하는 클래스가 있다. 바로 SimpleDateFormat이다. 이 클래스 또한 import하여서 사용이 가능하다. 사용 방법은
객체를 만들어서 표시하고 싶은 문자열 형식을 매개변수로 전달시켜주면된다. 이때 월(Month)는 시간의 (minute)과 둘다 M으로 시작하여 대문자 소문자로 구분한다.
출력시 설정한 포맷방식으로 날짜가 나온다.
이를 활용하여 시작날짜를 설정하고 그 날짜로 부터 얼마나 지났는지 확인하는 코드 작성이 가능하다. 먼저 필요한 변수들을 선언하면서 필요한 클래스들은 import 해준다.
그리고 스캐너로 날짜와 몇 일 후를 보고 싶은지 입력 받는다.
입력받은 값을 컴퓨터가 계산할 수 있도록 해준다.
start 에는 Sdf의 parse기능을 통해 입력받은 문자열 형식의 날짜를 숫자로 변환해주고.
그 숫자들을 다시 밀리 세컨드로 변환하여 st 변수에 대입시켜준다.
그리고 et변수에는 st밀리세컨드에다가 (60초 60분 24시간) = (1분 1시간 24시간) 즉 하루에다가 보고 싶은 경과일 dayCount 를 곱하고 이를 밀리세컨드로 변환하기 위해 1000을 곱해준다.
그리고 반복문을 사용하여서
st값에서 시작해서 et까지 반복하는데 반복하는 단위는 하루단위 (606024*1000)로 하여서 출력한다.
출력시에도 i값(밀리세컨드)를 Date클래스를 이용하여 객체 생성의 매개변수로 사용하여, 생성된 객체는 다시 sdf2객체의 함수를 이용해서 문자열로 변환하여서 출력한다.