0506 JAVA 01

JB·2023년 5월 6일
0

JAVA

목록 보기
7/10

KeyWords : Array, Method


🌵 Array

: 저장공간의 나열

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차원 배열

배열 안에 배열

🍄 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
	}
}

🌵 for-each문

( aka. 확장 for문 )

for(자료형 변수 : 배열명){
	반복 실행할 코드 
}
  • 변수에는 배열의 요소가 한개씩 차례대로 담김
  • 배열 안의 요소의 자료형과 변수의 자료형이 일치해야함

🌵 Method

  • 어떠한 기능을 위한 코드들의 묶음
  • 이름 뒤에 소괄호가 옴
    단 키워드(if, while, for,..)뒤에 소괄호는 메소드가 아님

function : 클래스 밖에 선언되는것 (함수)
method : 클래스 내부에 선언되어있는것

  • 자바의 기본 구조상 메소드 클래스는 내부에서만 선언되기 때문에 자바는 함수가 아닌 메소드라고 부름
  • 개념적으로는 함수가 더 큰 범주이지만 자바에서는 메소드라고 부르는 것을 권장

🍄 사용 목적 :
1. 소스코드의 간결화 (가독성을 높임)
2. 코드의 재사용
3. 모듈화 (부품화)

리턴타입 메소드명(자료형 매개변수명)  // => 선언부
{							 // => 구현부
	실행할 코드
    return}


public static void main(String[] args)  // => 선언부
{
//구현부 공간 
}
  1. 리턴타입 :
    만약 외부로 반환되는 값이 있다면 그 값을 자료형을 작성
    만약 외부로 반환되는 값이 없다면 그 값을 void로 작성

  2. 메소드명 :
    메소드의 기능을 동사의 형태로 작성
    (print(), sum(), divide(),...)

  3. 자료형 매개변수명
    만약에 외부에서 전달되는 값이 있다면 그 값을 저장할 매개변수명과 자료형을 작성
    만약 외부에서 전달되는 값이 없다면 생략 가능

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);
			
		} // 메인 메소드 영역 끝 

		
		
		// ====================================================================================================
		
		
} // 클래스 영역 끝 
profile
두비두밥밥

0개의 댓글