4/25

전자인간·2022년 4월 25일

long start = System.currentTimeMillis();는 현재시간을 밀리초로 표현한 것을(milli sec) 뜻함. 데이터 타입은 long이여야 한다.

<Date클래스 >
1. import java.util.Date; 를 선언해야 해당 기능 사용가능.
2. Date now = new Date(); 와 같이 인스턴스화해 주어야 한다. 현재날짜를 "시계시간대,연,월,일,시간,분,초"가져온다.
3. ~~~.getTime() Date 클래스의 시간을 밀리초로 나타낸다.
4. new Date(long타입 정수); 를 하면 long타입 정수를 2.와 같이 날짜로 변환해 준다.
Code>

result>

<Calendar 클래스>

  1. import java.util.Calendar; 를 선언해 주어야한다.
  2. Calendar ~~~ = Calendar.getInstance(); 형식으로 인스턴스 만들어 주어야 한다.
  3. calendar.setTime(Date 인스턴스); 를 해주면 Date인스턴스에 저장된 시간에 맞게 캘린더값이 등록 된다.(Calendar.YEAR, Calendar.MONTH...등)
  4. 아래와 같이 calendar.set()을 하여 각각 값을 직접 넣어줄 수 있고 setTime된 부분의Calendar.year 을 따로 2011로 바꿔줄 수 있다.

<.SimpleDateFormat >
https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html 에 들어가면 SimpleDateFormat 형식 지정하는법을 알 수 있다.
예를 들어 아래와 비슷하게 new SimpleDateFormat("yyyy년 MM월 dd일 HH:mm:ss")라고 하면
2022년 04월 25일 17:45:12 같은 형식으로 출력되도록 지정한다는 뜻이다.
SimpleDateFormat("G yy년 MM월 dd일 HH:mm:ss")라고 적으면 AD 22년 04월 25일 17:45:12로 형식을 지정한다는 뜻이다.
1. 아래 같이 SimpleDateFormat클래스인 format0를 format0.format(Date인스턴스)을 String 변수에 넣어주면 위에서 지정한 형식으로 String이 출력된다.
2.format0.parse()는 Date형식으로 값을 입력해준다. 다만 안의 값은 위에 format0의 SimpleDateFormat형식을 지정한 대로 해주어야 에러가 나지 않고 출력이 된다.(문장 앞뒤 공백은 상관없는듯)

<object 클래스>
object 클래스는 모든 클래스의 가장 위에있는 조상클래스라고 생각하면 된다. 표현하자면 다형성의 끝판왕. 아래와 같이 클래스뿐 아니라 String 형태도 받는다.

참고로 println 메소드는 Object를 받게 되어있어서 형식과 관계없이 출력이 되는 것이다.

1.<코드1>과 같이 클래스를 println을 써서 그대로 출력하면 <참고1>처럼 해시코드만 나온다.
<코드1>

<참고1>

2. 아래와 같이 toString()메소드를 Account클래스에 오버라이드 해준다.

아래 그림과 같이 해시코드는 사라지고 toString의 형식과 같이 출력된다.

※참고로 toString()메소드나 뒤에 나올 boolean equals(), public int hashCode() 메소드는 object 클래스에 기본적으로 포함된 오버로드 메소드 이다. 즉, 모든 클래스에서 사용 가능.

  1. boolean equals()는 참과 거짓으로 출력 시킬 때 쓰인다.
    아래 코드를 보기전에 ~~.equals와 ==의 차이를 간략하게 보자면
    ~~.equal는 비교하는 값의 call by value 즉, 두 비교대상의 값이 같은지는 비교하는 것이고 ==는 call by reference 즉, 두 비교대상의 주소값이 같은지 비교하는 것이다.
    아래 코드를 분석하자면 Account의 인스턴스가 obj와 주소가 같다면 참으로 반환한다.
    그 다음 obj값이 Account나 Account의 자식클래스수준의 인스턴스를 참조한다면 통과하여 선언한 Account클래스의 account 인스턴스로 obj를 Account로 캐스팅한 값을 넣어준다.
    그 값(value)이 만약 같다면 true로 반환한다.(.trim()함수는 String의 앞뒤 공백을 제거해서 입력해주는 메소드이다. 중간공백은 내용자체가 변하기에 안없앰.)
    그 외는 false 반환.

0개의 댓글