본문 바로가기

▶개발59

[JAVA] 자바 정리노트(5) [JAVA] 자바 정리노트(5)-지네릭, enum- 1. 지네릭에서 static멤버에 대해서 타입 변수를 사용할 수 없다. 타입 변수는 인스턴스 변수로 간주되기 때문이다. 2. 지네릭 배열 타입의 참조변수를 선언하는 것은 가능하지만 지네릭 타입의 배열을 생성하는 것은 허용하지 않는다. 굳이 배열을 생성한다면 동적으로 객체를 생성하는 메소드를 이용하거나, Object 배열을 복사하여 형변환 하는 방법등이 사용된다. 3. 참조변수와 생성자에 대입된 타입이 일치해야 한다. 상속관계이어도 허용하지 않는다.또한 대입된 타입이 같기 때문에 아래와 같이 대입타입을 생략할 수 있다.Room conferenceRoom = new Room(); // error Room conferenceRoom = new Room(); .. 2019. 1. 26.
[JAVA] 자바 정리노트(4) [JAVA] 자바 정리노트(4)- 시간, 날짜 관련 클래스와 컬렉션 프레임웤 - 1. Calendar클래스는 추상클래스이므로 인스턴스를 생성할 수 없다. 그래서 getInstance() 메소드를 이용하여 인스턴스를 얻어야 한다. 이 때 시스템의 국가를 확인하여 BuddhistCalendar(태국에만 해당) 혹은 GregorianCalendar의 완성된 인스턴스를 자동 반환해준다. (추상클래스에 사용되는 getInstance() 메소드는 당연히 static이다.)Calendar cal = Calendar.getInstance(); 2. 'java.time' 패키지에서 날짜를 표현할 때에는 LocalDate 클래스를 사용하며, 시간을 표현할 때에는 LocalTime 클래스를 사용한다. 혹은 날짜와 시간을 모.. 2019. 1. 26.
[JAVA]날짜와 시간 클래스, Date의 Calendar간의 변환 날짜와 시간 관련 클래스, Date와 Calendar클래스간의 변환 날짜와 시간을 다루기 위해서 Date클래스가 JDK 1.0부터 사용되었다. 그러나 지금 돌이켜보면 Date 클래스의 기능은 다소 부실했다. Date의 기능이 부족하여 Calender 클래스가 이후(JDK 1.1) 등장했다. Date와는 훨씬 좋은 기능들을 제공했지만 여러 단점들이 발견되었다. ...이후 'java.time' 패키지가 등장(JDK 1.8)하여 이 단점들을 개선한 새로운 클래스들을 선보였다. 그러나, 자바가 오랜 세월 사용된 만큼 아직까지도 Date, Calender 클래스를 계속해서 사용하는 곳이 있다.때때로 이 둘간의 변환 작업이 필요하다. #Date 클래스를 Calendar 클래스로 변환하기Date d = new Dat.. 2019. 1. 25.
[JAVA] 자바 정리노트(3) [JAVA] 자바 정리노트(3) 1. 모든 클래스는 하나 이상의 생성자가 꼭 정의되어야 한다. 생성자를 정의하지 않을 경우 컴파일러가 기본 생성자를 제공한다. 2. 상속과 포함관계의 구분은 A는 B이다(상속), A는 B를 갖고 있다(포함)으로 구별할 수 있다. 3. 한 소스파일에는 단 한번의 패키지 선언만을 허용한다. 4. 변수의 초기화 단계는 "기본값->명시적초기화->초기화블럭->생성자(생성자는 인스턴스 변수 초기화에만 해당" 순이다. (http://markim94.tistory.com/138 자세한 초기화 단계의 내용은 게시물 참고) 5. 하나의 소스파일에는 public클래스가 하나만 존재해야 하며 소스이름은 public 클래스 이름과 반드시 같아야 한다. 6. 생성자의 접근제어자를 사용하여 인스턴스.. 2018. 12. 19.
[JAVA] 변수의 초기화 순서(초기화블럭) [JAVA] 변수의 초기화 순서 예제(초기화블럭) @변수의 초기화 시점 - 변수는 클래스 변수와 인스턴스 변수로 나눠진다. (http://markim94.tistory.com/136 게시물의 2번내용 참고) - 클래스 변수는 클래스가 처음 로딩될 때 한번만 초기화된다. - 반면에 인스턴스 변수는 인스턴스가 생성될 때마다 인스턴스별로 초기화가 이뤄진다. @예제class Car{ int instanceVariable = 1; // 인스턴스 변수 static int staticVariable =1 ; // 클래스 변수(static, 공유) // 인스턴스 초기화 블럭 { instanceVariable = 2; } // 클래스 초기화 블럭, 앞에 static이 붙음. static{ staticVariable = .. 2018. 12. 18.
[JAVA] 객체지향개념(오버로딩과 오버라이딩) 객체지향개념(overloading, overriding) +중복과 재정의 #오버로딩(overloading) @사전적의미 - overloading = over하여 loading하다. "많이 싣다"의 의미. - 단일의 메소드 이름을 갖고 여러 기능을 구현한다는 점에서 많이 싣다라고 이해하면 쉬움. - 여러 기능을 구현한다는 점에서 "중복"이라고 일컫기도 함. @오버로딩을 하기 위해서는 - 메소드의 이름이 같아야 함. - 메소드의 매개변수 타입과 갯수가 달라야 함. @예제int add(int a, int b) { return a+b; } // int형 매개변수 타입 float add(float a, float b) { return a+b; } // float형 매개변수 타입 // 두 매개변수의 타입이 다르므로.. 2018. 12. 18.
반응형