스캐너

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() {
  
     @Override


     public void me4() {
     // TODO Auto-generated method stub
     }


};

로 불러올 경우

위 Inter1 anonymous1 = new Inter1()을 익명의 내부클래스라고 함.

 

public void me42() {
     new Inter1() {
   
          @Override

          public void me4() {
               // TODO Auto-generated method stub
               System.out.println("호출이 될까요?");
          }

     }.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

+ Recent posts