break
continue
double num = Math.random();
Random num = new Random();
int i = num.nextInt(10); // 0~9
접근 범위
public<protected<생략<private.
static
final
abstract
의 접근제한자를 추가로 붙여서 사용가능하다(추후에 설명)
1.void - 리턴값 없음
2.primitive Type(int,char등등) - 같은 타입의 리턴값 있음
3.object Type(기본형을 제외한 나머지) - 같은 타입의 리턴값 있음
첫글자는 소문자로, 카멜표기법 권장
괄호 안에는 인수, parameter가 들어오고 (DataType 변수이름)형태로 지정한다.
일반적인 방법
호출하려는 메서드를 감싸고 있는 class형태 객체를 생성한다.
Test t = new Test();
생성된 객체변수를 이용하여 method를 호출한다.
t.aa()
static이 붙은 메서드 호출
객체 생성없이 클래스 이름.method()
Test.aa()
같은 클래스 내부에서 method 호출
this.aa()
Test t = new Test();
형태로 객체를 생성해서 사용한다.
객체가 생성되면 heap영역에 저장이 되고,해당 클래스 사용하지 않으면 가비지 컬렉션을 통해서 삭제된다.
t에는 주소값형태로 stack에 저장된다.
method 호출시에는 t.aa, t.bb의 형태로 사용
스택에 저장되므로 나중에 호출된 method가 끝나야 전에 호출된 method가 끝날 수 있다.
처음 호출은 main 메서드이며 제일 마지막에 끝나는 메서드도 main 메서드이다.
double num = Math.random();
Random r = new Random();
int i = r.nextInt(10);
int no = Integer.parseInt("10");
String s = Integer.toString(10);
👉 예상되는 클래스와 메서드 형태
class Random {
public int nextInt(int n){
int random = 0;
//로직
return random;
}
}
class Math {
public static double random(){
double n = 0.0;
//로직
return n;
}
}
class Integer {
public static int parseInt(String n){
int k =0;
//로직
return k;
}
public static String toString(int n ){
String k = "";
//로직
return k;
}
}
class
class 앞에는 올수 없다.(단, inner class에는 사용가능)
variable
전역 변수 앞에만 사용가능,
객체생성 없이 외부에서 class이름.변수이름 호출가능
static변수는 class들이 공유하는 공유변수이다.
Method
객체생성 없이 호출가능
static method는 non-static method 호출 안됨!, static method만 호출 가능
static method안에서 this 사용불가
non-static 전역변수도 사용불가
static{
System.out.println("메인보다 먼저실행");
}
static은 미리 메모리에 할당되어 있다. 추후에 객체를 생성해야만 하는건 사용할 수 없다. this도 해당 객체를 가리키는데 이 또한 객체를 생성해야하니까 사용할 수 없다.
하나의 class내부에 method이름이 같은 method 여러개 있는것
인수의 순서 or type or 갯수를 통해 구분한다.
public void aa(int...i){//인수를 0개 이상 허용한다.
}
인수 갯수별로 메서드를 만들어야하는 불편함을 줄여준다.
ex) System.out.printf("이름: %s \t 국어: %d \t,name,kor);
여러개의 인수를 받을 수 있다.
Tip 1
System.out.print("\n안녕하세요");
println은 출력 후 개행이라면 " "안에 \n 사용시 개행지점을 지정할 수 있다.
Tip 2
main메서드는 static으로 선언한다.
자바가상머신에서 객체생성 없이 메모리에 할당시켜서 호출가능한 형태로 만들기 위함이다. main클래스가 JVM 상에서 실행되는 것이다.
Tip3
지역변수는 선언시 반드시 초기화 해야한다.
전역변수는 선언시 자동으로 초기화 된다.