KeyWords : Array, Method
: 저장공간의 나열
Stack : 이름으로 접근
Heap : 주소로 접근
int[] arr = new int[2];
// stack :
[0번째 저장공간의 주소값]
// heap :
[값1][값2]
🍄 배열의 선언 :
1. 어떤 값을 넣을지 알때 사용
자료형[] 배열명 = {값1,값2,값3,...};
2. 어떤 값을 넣을지는 모르지만, 몇칸이 필요한지 알때 사용
자료형[] 배열명 = new 자료형[칸수];
3. 어떤 값을 넣을지도, 몇칸이 필요한지도 모를때 사용
자료형[] 배열명 = null;
int[]arr = null;
(same as)
arr = new int[]{1,2,3,4,5};
🍄 배열의 길이 :
배열을 선언할 때 자동으로 생성되는 배열의 저장공간의 수
배열명.length
배열 안에 배열
🍄 2차원 배열의 선언 :
자료형[][] 배열명 = new 자료형[행의 칸수][열의 칸수];
자료형[][] 배열명 = {{값1,값2},{값1,값2},{값1,값2}};
🍄 2차원 배열 길이 :
arr.length
: 행의 길이
arr[i].length
: 열의 길이
int[][] arr = new int[2][3];
System.out.println(arr); // 주소값 출력
System.out.println(arr[1]); // arr[1]의 주소값을 출력
System.out.println(arr[0][0]); // 0 출력
int[][] arr2 = {{1,2,3},{4,5,6}};
System.out.println(arr2[0][2]); // 3 출력
System.out.println(arr2[1][2]); // 6 출력
System.out.println(arr2.length); // 2
System.out.println(arr2[0].length); // 3
for (int i = 0; i < arr2.length;i++) {
for(int j = 0 ;j < arr2[i].length; j++) {
System.out.println(arr2[i][j]); // 1 2 3 4 5 6
}
}
( aka. 확장 for문 )
for(자료형 변수 : 배열명){
반복 실행할 코드
}
function : 클래스 밖에 선언되는것 (함수)
method : 클래스 내부에 선언되어있는것
🍄 사용 목적 :
1. 소스코드의 간결화 (가독성을 높임)
2. 코드의 재사용
3. 모듈화 (부품화)
리턴타입 메소드명(자료형 매개변수명) // => 선언부
{ // => 구현부
실행할 코드
return 값
}
public static void main(String[] args) // => 선언부
{
//구현부 공간
}
리턴타입 :
만약 외부로 반환되는 값이 있다면 그 값을 자료형을 작성
만약 외부로 반환되는 값이 없다면 그 값을 void로 작성
메소드명 :
메소드의 기능을 동사의 형태로 작성
(print(), sum(), divide(),...)
자료형 매개변수명
만약에 외부에서 전달되는 값이 있다면 그 값을 저장할 매개변수명과 자료형을 작성
만약 외부에서 전달되는 값이 없다면 생략 가능
package day07;
public class MethodTest1 { // 클래스 영역 시작
//매개변수 x, 리턴값 x
// hello 출력하는 기능
// 실행할 코드 : System.out.println("Hello");
// 매개변수 이름 : printHello
// 매개변수 : x
// 리턴값 : x
void printHello() {
System.out.println("Hello");
}
// ============================================================
// 매개변수 O, 리턴값 x
// 000님 안녕하세요 라고 출력하는 기능
// 실행할 코드 : 1. 000이라는 이름이 입력되야함 2. 이름을 갖고 출력
// System.out.println(name + "님 안녕하세요");
// 메소드 이름 : welcome
// 매개변수 : String name
// 리턴값 : x
void welcome(String name) {
System.out.println(name + "님 안녕하세요");
}
// ============================================================
// 매개변수 x, 리턴값 o
// 1부터 10까지의 합계를 반환
/*
* int sum = 0;
* for (int i = 1; i<11; i++){
* sum += i
* }
* */
// 메소드 이름 : getTotalToTen
// 매개변수 : x
// 리턴값 : sum
int getTotalToTen() {
int sum = 0;
for (int i = 1; i < 11; i++) {
sum += i;
}
return sum; // int 타입의 sum이라는 리턴값 출력
}
// ============================================================
// 매개변수 o, 리턴값 o
// 1부터 전달한 정수까지의 합계를 반환하는 메소드
// 실행할 코드 :
/*
* int sum = 0;
* for (int i = 1; i<11; i++){
* sum += i
* }
*/
// 메소드명 : getTotal
// 매개변수 : int num
// 리턴값 : sum
int getTotal(int num) {
int sum = 0;
for (int i = 1; i < 11; i++) {
sum += i;
}
return sum;
}
// ====================================================================================================
public static void main(String[] args) { // 메인 메소드 영역 시작
MethodTest1 mt = new MethodTest1(); // methodTest1이라는 패키지 안에 있는 printHello 메소드
mt.printHello();
mt.welcome("홍길동");
int result1 = mt.getTotalToTen();
System.out.println(result1);
int result2 = mt.getTotal(3);
System.out.println(result2);
} // 메인 메소드 영역 끝
// ====================================================================================================
} // 클래스 영역 끝