[Java] 향상된for문 / 어노테이션

2022. 10. 5. 15:08Dev.Program/Java & Spring

728x90

======== Ex3.java

p.156

앞에서 안배우고 넘어갔던 향상된 for 문 ⇒ jdk 1.5 부터 지원됨

< 향상된 for문(for each 문) >

  • 배열이나 컬렉션 등의 데이터 저장 객체 사용 시 인덱스 등을 지정하여 반복하는 것이 아니라 해당 객체 내의 데이터를 순서대로 가져오는 작업을 자동으로 반복하는 for문

<장점>

  • 객체 내용을 반복하여 가져오는 작업을 자동으로 처리하므로 편리함

<단점>

  • 무조건 객체 내의 모든 요소에 차례대로 접근하므로 특정 위치의 데이터에만 접근하는 것이 불가능!
  • 또한, 배열 내의 인덱스 번호 지정 등의 작업이 불가능(별도의 인덱스변수 필요)

⇒ 이럴 땐 기존에 쓰던 for 문을 사용해야함

< 기존 배열 접근을 위한 for문 기본 문법 >

for(int i = 0; i < 배열명.length; i++) {
	// 제어변수 i 를 활용하여 인덱스 번호로 객체에 접근하여 데이터 사용
}
 

< 향상된 for문 기본 문법 >

for(객체에서 꺼낸 데이터를 저장할 변수 선언 : 배열 등의 객체) {
	// 제어변수 없이 자동으로 좌변 변수에 데이터가 저장되므로 바로 사용 가능
}
 

 

<Ex3.java>

// 배열의 데이터를 향상된 for문으로 접근
String[] names = {"JAVA", "JSP", "Android", "Oracle"};

// 1. 기존 for문을 사용하여 배열 내의 모든 데이터 출력
for(int i = 0; i < names.length; i++) {
    System.out.println(names[i]);
}

// 2. 향상된 for문을 사용하여 배열 내의 모든 데이터 출력
for(String name : names) {
    System.out.println(name);
}
  • 향상된 for문은 기존 for문처럼 별도의 저장 작업이 필요 없다!
  • 해당 객체(names) 내의 데이터를 순서대로 가져오는 작업을 자동으로 반복
  • 출력창 ( 둘 다 출력창은 같음! )
  • 그러나, 무조건 객체 내의 모든 요소에 차례대로 접근하므로 특정 위치의 데이터에만 접근하는 것이 불가능하다! (단점)

 

======== Test3.java

p.160 Arrays.***

p.305 → 4.어노테이션

< @ 어노테이션 >

  • 주석이라는 의미를 가졌지만 우리가 평소에 쓰는 // 나 /* */ 주석과는 다름
  • @ 는 우리에게 필요한 주석이 아니라 컴파일러에게 알려주는 역할

1. @Override

  • 우리가 흔히 사용하던 어노테이션
  • 컴파일러에게 이 메서드는 오버라이딩만 수행가능하도록 알려주는 것

  • 오버로드기 때문에 오류 (@Override 주석 때문에 Override 만 수행가능)
  • 어노테이션만 지우면 오류 사라짐!
  • 어노테이션은 단순 주석이 아니라 하는 역할이 있다!

  • @ + Ctrl + Space 하면 여러 어노테이션들이 보임
  • 그 중 @Override 외에 @Deprecated도 알아두기 → Android 개발할 때 특히 많이 사용(Android는 업데이트가 자주, 빠르게 일어나기 때문에…!)

2. @Deprecated

  • 컴파일러에게 이 메서드는 없어질거라는걸 알려주고 쓰지 말도록 경고하는 것
public void normalMethod() {}

@Deprecated
public void deprecatedMethod() {}

  • 이런식으로 @Deprecated 가 붙으면 가운데 줄 표시 됨

  • deprecate 처리된 메서드는 줄이 그임! (테마 때문에 줄이 안보이네…)



728x90