접근 지정자
경계 : 패키지, 클래스, 객체(인스턴스)- public : 공개
- 접근 지정자를 적지 않음 : 같은 패키지에서만 접근 가능
array
- 선언 시에 배열 크기를 정하면 고정된다.list
- 크기가 가변적이다.
static
- 필드 또는 메소드를 static으로 선언하여 인스턴스들이 함께 공유 가능한 리소스로 활용할 수 있다.
- 클래스와 함께 static 영역으로 올라간다.
1. java 에서 기본적으로 제공하는 클래스를 import해서 사용
2. 추가로 필요한 유틸리티를 인터넷에 다운받아서 import 후 사용
3. 직접 만들어서 사용String, System 등의 클래스는 import 하지 않아도 기본 클래스처럼 사용할 수 있다.
this 예약어
- this는 객체 내부의 값을 참조하는데 사용
- static 메소드 내부에서 this의 사용은 불가하다.
↪ static 메소드 내부에서 필드를 가져오기 위해 static 필드로 선언 후 클래스명.필드명으로 참조 가능
public class AClass() {
public static a = 0;
public static void aCall() {
this.a = 10;
// 위 코드는 오류 코드이다.
/*
this는 객체 내부를 참조하지만 해당 static메소드는 static 영역에서 활동하므로
static 영역 메소드가 필드 변수를 불러오기 위해서는 필드 변수를 static으로 선언 후
클래스명.필드명으로 참조한다.
*/
AClass.a = 10;
// 클래스명.필드명
}
}
- Random 객체
- Random 객체명 = new Random();
- 객체명.nextInt(시작값, 마지막의 다음 값) : int 타입의 랜덤 값을 추출
Random ran = new Random();
int ranNum = ran.nextInt(0, 10);
- Scanner 객체
- Scanner 객체명 = new Scanner(System.in);
- 객체명.nextInt() : 사용자로부터 int 값 입력받음
- 객체명.next() : 사용자로부터 String 값 입력받음
// System.in : 키보드 입력 객체
// Scanner : 사용자 입력 추출 객체
Scanner scan = new Scanner(System.in);
String text = scan.next();
- 고려해야 할 사항
1. 접근 지정자
2. static or non static
3. return 타입
4. 메소드명
5. 메소드 파라미터 개수와 데이터 type