[Java] 향상된for문 / 어노테이션
2022. 10. 5. 15:08ㆍDev.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
'Dev.Program > Java & Spring' 카테고리의 다른 글
[Java] java.lang.Object 클래스 - (2) toString() (0) | 2022.10.05 |
---|---|
[Java] java.lang.Object 클래스 - (1) equals() (1) | 2022.10.05 |
[Java] enum (1) | 2022.10.05 |
[Java] 인터페이스(interface) (1) | 2022.10.05 |
[Java] 추상(Abstract) 클래스/메서드 (0) | 2022.10.05 |