반응형

정적 필드와 메소드를 위한 키워드 static

키워드 static

  • 필드나 메소드의 소속을 클래스로 제한하는 키워드
  • static을 이용한 정적 변수나 정적 메소드는 클래스 변수와 클래스 메소드

 

정적필드 PI

  • 클래스에 소속된 저장공간이 하나만 존재하는 변수
  • 할당되는 객체마다 저장공간이 할당되는 객체 소속 변수

 

비정적 필드 radius

  • 할당되는 객체마다 저장공간이 할당되는 객체 소속 변수

 

정적 필드 참조 방법

  • 정적 필드는 Circle.PI와 같이 '클래스이름.정적필드'로 참조하는 방법이 원친
  • 'c1.PI'나 'c2.PI'와 같이 객체 이름으로도 참조 가능

 

 

정적 필드와 메소드를 위한 키워드 static 사용 예시 (1)

 

 

정적 필드와 메소드를 위한 키워드 static 사용 예시 (2)

 

 

변수를 상수로 만드는 final

지역 변수의 상수

  • 키워드 final을 명시
  • 저장된 값을 더 이상 수정할 필요가 없을 떄 사용

 

소속 변수인 필드를 상두로 선언하기 위해

  • 키워드 final을 명시
  • staic도 함께 사용하여 정적으로 사용하는 것을 권유

 

변수를 상수로 만드는 final 사용 예시 (1)

 

 

변수를 상수로 만드는 final 사용 예시 (2)

 

 

클래스 변수의 초기화와 초기화 블럭

멤버변수의 초기화 방법

  • 명시적 초기화
  • 초기화 블럭 : 클래스 초기화 블럭, 인스턴스 초기화 블럭
  • 생성자

 

멤버변수의 초기화 방법 예시

 

 

배열

  • 같은 타입(형)의 여러 변수를 하나의 묶음(Set)을 선언해서 처리하는 것

 

배열의 선언과 생성

  • 타입[] 변수이름;

  • 타입 변수이름[];

 

배열의 길이와 인덱스

  • 배열의 길이는 int범위의 0 ~ 양의 정수
  • 인텍스 범위는 '0'부터 '배열의길이 - 1'까지

 

배열의 길이 변경

  • 더 큰 배열을 새로 생성
  • 기존 배열의 내용을 새로운 배열에 복사

 

배열 사용 예시

 

 

배열의 초기화

배열의 초기화 예시

 

 

배열의 복사

배열의 복사 예시

 

import java.util.Arrays;

public class ArrayCopyTest {
    public static void main(String[] args) {

        //얕은 복사
        int[] a1 = { 1, 2, 3, 4 };
        int[] a2 = a1;

        //깊은 복사
        int[] b1 = { 1, 2, 3, 4 };
        int[] b2 = new int[b1.length];
        for (int i = 0; i < b1.length; i++) {
            b2[i] = b1[i];
        }

        //배열 복사1 - Object.clone() - 가장 보편적인 방법
        int[] c1 = { 1, 2, 3, 4 };
        int[] c2 = c1.clone();

        //배열 복사2 - Arrays.copyOf()
        int[] d1 = { 1, 2, 3, 4 };
        int[] d2 = Arrays.copyOf(d1, d2.length);

        //배열 복사3 - System.arraycopy()
        int[] e1 = { 1, 2, 3, 4 };
        int[] e2 = new int[e1.length];
        System.arraycopy(e1, 0, e2, 0, e1.length);
    }
}

 

String 배열

public class MorseCode {
    public static void main(String[] args) {

        String str = "SOS";

        for (int i = 0; i < str.length(); i++) {
            System.out.println( (int) str.charAt(i) );
        }
    }
}

 

2차원 배열, 3차원 배열, 다차원 배열

        //1차원 배열
        int[] arr1 = {
            1,
            2,
            3
        };

        //2차원 배열
        int[][] arr2 = {
            { 1, 2, 3 },
            { 4, 5, 6 },
            { 7, 8, 9 }
        };

        //3차원 배열
        int[][][] arr3 = {
            {
                { 1, 2, 3 },
                { 4, 5, 6 },
                { 7, 8, 9 }
            },
            {
                { 1, 2, 3 },
                { 4, 5, 6 },
                { 7, 8, 9 }
            },
            {
                { 1, 2, 3 },
                { 4, 5, 6 },
                { 7, 8, 9 }
            }
        };
 
 

반응형

+ Recent posts