modifiers returnType method이름( [DataType 변수이름, DataType 변수이름, ...] ){
기능구현 ;
}
1) modifiers : 제한자, 0개 이상
접근 제한자 + 기타 제한자
👉 클래스 앞에 올 수 있는 접근 제한자 : public or 생략(default)
2) returnType : 반드시 1개만 작성
return 가지고갈 값;
필수3) 메소드 이름
4) (DataType 변수이름, ... )
1) 객체 생성해서 접근하는 방법
- 호출하려는 메소드를 감싸고 있는 클래스를 생성한다.
- 클래스명 변수명 = new 클래스명();
- 메소드 리턴값 없을 때 : 변수명.메소드명(인수값, ...);
- 메소드 리턴값 있을 때 : 리턴타입 변수 = 변수명.메소드명(인수값, ...);
2) static붙은 메소드 호출하는 방법
- 객체 생성 하지 않고 클래스이름.메소드이름(인수값, ....);
ex) Math.random();
Integer.parseInt(문자열);
System.out;
System.in;
3) 같은 클래스 내부에서 메소드 호출 방법
this.메소드이름(인수값, ...) / this 생략 가능
class Test{
public void aa() {
}
public int bb(String s) {
return 4;
}
public String cc(int i, int j) {
return "안녕";
}
class Main{
Test t = new Test();
t.aa();
t.bb("A");
t.cc(1,2);
}
1) class 앞
2) 메소드 앞
non-static 에서 static,non-static 호출 가능
그러나 non-static을 this로 호출하는건 권장하지 않음
클래스명.메소드명 으로 호출 하는 것을 권장
static은 static만 호출 가능, non-static 호출 불가능
3) 변수 앞
4) static 블럭
ex) static{
기능 구현 ;
}
⇨ class 내부에 선언되어 main method보다 먼저 실행된다.
⇨ method, 생성자 등의 영역 안에서는 선언 될 수 없다.
⇨ 주로 사전 초기화 작업, DB 연결, 환경 설정 및 세팅, 데이터 로딩 작업에서 할 때 많이 사용
⇨ 최초에 딱 1번만 실행됨
static 안에서 static에 접근할 수 없다.
메서드 호출방법 2번) 아래 코드의 클래스와 메서드 코드 구현하기
int i = Integer.parseInt("A");
String s = Integer.toString(4);
double no = Math.random();
↓↓↓↓↓↓↓↓
public class Integer{
public static int parseInt(String s){
기능;
return 숫자값;
}
public static String toString(int i){
기능;
return 문자열값;
}
}
public class Math{
public static double random(){
기능;
return 난수값;
}
}
this : 현재 생성된 객체를 뜻함
1) this.변수이름 : 현재 객체의 전역변수를 뜻함
- 지역변수와 전역변수 이름 같을 때 주로 사용)
2) this.메소드이름() : 현재 객체의 메소드를 호출
3) this(값, 값, ...) : 현재 객체의 다른 생성자 호출
- 반드시 생성자 구현부 첫줄에서만 가능!
지역변수는 자동 초기화 되지 않아서 초기화 시켜주어야 함
static 필드는 동일한 객체를 여러개 만들어도 하나이다 => 공유 변수
=> singlton 패턴에서 사용