각 배열의 길이가 다르기 때문에 생성시 길이 지정할 수 없음.
int [][] arr = new int [4][]; // <-행의 길이만 알고 있는 경우.
int[][] a = {{1}, [1, 2], [{1, 2, 3}};
for(int i=0; i<a.length; i++){
for (int j=0; j<a[i]; j++){
ststem.out.print(a[i][j]+"\t");
}
system.out.println();
}
=> 1
1 2
1 2 3
// 이차원(비정방형 배열)도 값을 알고 있는 경우에는 배열 생성 후에 바로 레퍼런스 변수 선언해야함.
: 어떤 작업을 수해하기 위한 명령문의 집함. 해당 작업이 필요할 때마다 호출해서 사용하면 됨.
(메소드는 이용할 때마다 가져와서 사용 하면 됨. )
매개변수 : 작업을 수행하는 데 필요한 재료.
반환값 : 기능을 수행했을 때 '받은' 결과물.
믹서기에 오렌지(매개변수) 넣고 갈았을 때 마시려면 컵에 따라야 하니까 그냥 결과(갈린 오렌지)만 나오는 경우, 그 결과를 나에게 주는 경우. (반환값)
매개변수와 반환값은 필수는 아니지만(믹서게 아무것도 안 넣어도 돌릴 수는 있으니까.) 필요하다면 꼭 적어줘야함!
public static int addNunber(int num1, int num2){
int result = num1+num2;
return result;
사용 이유 : 코드를 효율적으로 이용하기 위해.
소스 코드의 가독성이 좋아진다. > 특정 작업이 필요할 떄마다 해당 코드를 작성하면 코드가 굉장히 길어짐>다른 사람이 내 코드를 보기 힘들어짐.
소스 코드의 재사용성이 좋아진다. > 특정코드가 여러번 사용될 경우 해당 코드를 메소드로 정의해두고 필요할 때마다 호출해서 사용할 수 있음.
Random rd = new Random(); //도구(=객체, 인스턴스) 생성. new키워드 사용.
//생성한 도구의 참조값을 알고 있어야만 사용 가능. 참조값 = rd
//주소를 알려줘야 찾아갈 수 있음. = NON-STATIC 메서드 : 참조값을 알아야 호출 할 수 있는 메서드.
rd.nextInt();
Math.abs(2); //Math 클래스의 abs메서드 사용.
//abs: static메서드. new 키워드 없어도됨 => 객체, 인스턴스 생성 X. 바로 사용 가능
//랜드마크. 주소 없어도 찾아 갈 수 있음.
Scanner s = new Scanner(System.in);
System.out.print("첫번째 수 : ");
int num1= s.nextInt();
System.out.print("두번째 수 : ");
int num2=s.nextInt();
getMinusVal(num1, num2);
}
//접근제한자, 정적(static), 반환타입메서드이름() {
private static void getMinusVal(int a, int b) {
System.out.println("합계 : "+(a-b));
static메소드 안에서 non-static메서드 호출 불가능.
non-static메소드 호출 하고 싶으면, 객체(인스턴스) 생성 후 호출 가능.