스캐너
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
시 name에 입력한 내용이 들어감
nextLine의 경우 가나다라(enter)까지 인식함.
nextInt의 경우 123까지 인식하는데, enter를 인식하지 못하고enter는 메모리상 떠돌고 있음.
그 이후 다시 nextLine을 실행할 시, enter가 바로 인식되며 즉시 종료되게 됨.
해결책으로는 nextInt이후 비어있는 nextLine();을 입력하여, 엔터를 공백에 넣어주고 처리하는 것으로 함.
모든 입력이 끝나고, sc.close();를 입력(sc는 Scanner 변수명임)
DTO(Data Transfer Object)
= TO, VO(Value Object), 데이터 저장 전용 클래스
- implements Serializable를 클래스 뒤에 선언해주어야 함.
- 이후 Add default serial version ID를 눌러 Serializable 인터페이스 구현
- private static final long serialVersionUID = 1L;
- 상기와 같은 문구를 추가
Serializable 인터페이스 구현법
1. 테이블(DB)의 컬럼과 같은 멤버변수를 선언하되 private으로 선언
2. 디폴트 생성자와 사용자 생성자 선언
3. get/set메서드 선언
4. object클래스의 주요 3메서드(hashcode, equals, toString)를 오버라이딩
static
변수 : 스태틱 변수 = 클래스 변수
상수 : 스태틱 상수 = 클래스 상수
메서드 : 스태틱 메서드 = 클래스 메서드
내부클래스 : 스태틱 내부 클래스
스태틱으로 생성된 변수는 '하나의 변수를 선언'하고 그 스태틱 변수를 '가리키는' 효과를 가짐.
스태틱 변수를 수정하면, 스태틱변수를 사용하는 모든 변수의 내용이 바뀜.
아우터(Outter)클래스/ 내부(Inner)클래스
- 클래스명.java와 이름이 같은 클래스만 public 선언이 가능함
- 클래스 내부의 Inner클래스는 멤버 내부 클래스라고 함
ㄴ OutterClass1의 내부클래스 InnerClass1에 있는 innerMe1();에 접근하기 위해, 아래와 같이 선언함.
ㄴ OutterClass1.InnerClass1 ic1 = new OutterClass1().new InnerClass1();
ㄴ new를 두개를 사용하는 이유는 OutterClass역시 클래스이기에, 생성자를 통해 innerClass1();에 접촉하여야 함
- 내부클래스에서 static을 사용하기 위해서는, 내부클래스를 static클래스로 선언해주어야 함.
- static내부클래스 = 정적 내부클래스
- 멤버 내부클래스는 외부클래스의 자원을 가져다 쓰고 싶을때 사용
- 스태틱 내부클래스는 외부클래스에서 내부클래스의 자원을 가져다 쓰고 싶을때 사용
ㄴOutterClass2 의 정적내부클래스 InnerClass2 에 있는 innerMe2();에 접근하기 위해 아래와 같이 선언함
ㄴOutterClass2.InnerClass2 ic2 = new OutterClass2.innerClass2();
ㄴinnerClass2();가 static클래스이기에 OutterClass2.InnerClass2(); 처럼 new를 하나만 사용하고, 뒤에있는 것만 생성자로 사용함.
익명의 내부클래스
아래는 예시
me4 메서드를 가진 인터페이스 Inter1을
Inter1 anonymous1 = new Inter1() {
|
로 불러올 경우
위 Inter1 anonymous1 = new Inter1()을 익명의 내부클래스라고 함.
public void me42() { public void me4() { }.me4();; } |
방식으로 사용할 경우 한번만사용할 수 있음
'JAVA > JAVA 기본' 카테고리의 다른 글
JAVA 컬렉션 프레임워크 (0) | 2017.10.11 |
---|---|
JAVA 에러와 예외, try~catch, throw (0) | 2017.10.11 |
JAVA 인터페이스 (0) | 2017.10.11 |
JAVA 다형성 (0) | 2017.10.11 |
JAVA 상속 (0) | 2017.10.11 |