본문 바로가기

Java 기본 문법 - 참조 서적 [이것이 자바다 - 한빛미디어]/3. 참조 타입

(8)
8. Java 자바 참조 타입 - 열거 타입 열거 : 한정된 값만을 갖는 데이터 타입으로 몇 개의 열거 상수 중에서 하나의 상수를 저장하는 데이터 타입이다. 열거 예) 요일(열거 타입 이름) : 월, 화, 수, 목, 금, 토, 일 (열거 상수) 계절(열거 타입 이름) : 봄, 여름, 가을, 겨울 (열거 상수) 1. 열거 타입 선언 열거 타입을 선언하기 위해서는 열거 타입의 이름을 정하고, 열거 타입 이름으로 소스파일(.java)를 생성해야 한다. 열거 타입 이름은 관례적으로 첫 문자를 대문자, 나머지는 소문자로 구성한다. ex) Week.java, MemberGrade.java, ProductKind.java 소스파일의 내용으로 열거 타입 선언이 온다. public enum 열거타입이름 { 열거 상수1, 열거 상수2, . . . } - public..
7. Java 자바 참조 타입 - 객체를 참조하는 배열, 배열 복사, 향상된 for 문 1. 객체를 참조하는 배열 기본 타입 (byte, char, short, int long, float, double, boolean) 배열은 각 항목에 직접 값을 갖고 있지만, 참조 타입 (클래스, 인터페이스) 배열은 각 항목에 객체의 번지를 가지고 있다. ex) String 은 클래스 타입 이므로, String[ ] 배열은 각 항목에 문자열이 아니라 String 객체의 주소를 가진다. String[ ] strArray = new String[3]; strArray[0] = "Java"; strArray[1] = "C++"; strArray[2] = "C#"; 아래와 같이 메모리 영역에 저장된다. String[ ] 배열의 항목도 String 변수와 동일하게 취급되어야 한다. 따라서, String[ ] 배..
6. Java 자바 참조 타입 - 다차원 배열 다차원 배열 수학 행렬처럼 가로 인덱스와 세로 인덱스를 사용한다. 2행 3열 행렬을 만들기 위해서는 아래와 같이 2차원 배열을 생성한다. int[ ][ ] scores = new int[2][3] 위의 코드는 아래와 같이 세 개의 배열 객체를 생성한다. 배열 변수 scores는 길이 2인 배열 A를 참조한다. scores[0]은 다시 길이 3인 배열 B를 참조하고 scores[1]은 다시 길이 3인 배열 C를 참조한다. scores[0] 과 scores[1]은 모두 배열을 참조하는 변수 역할을 한다. 따라서 각 배열의 길이는 아래와 같이 얻을 수 있다. scores.length // 2 (배열 A의 길이) scores[0].length // 3 (배열 B의 길이) scores[1].length // 3 ..
5. Java 자바 참조 타입 - 커맨드 라인 입력 (String[] args 용도) main( ) 메소드의 매개값인 (String[] args) 의 용도 public static void main(String[] args) { . . . } "java 클래스"로 프로그램을 실행하면 JVM은 길이가 0 인 String 배열을 먼저 생성하고, main( ) 메소드를 호출할 때 매개값으로 전달한다. 만약 "java 클래스" 뒤에 공백으로 구분된 문자열 목록을 주고 실행하게 되면 (명령 프롬프트 상) 문자열 목록으로 구성된 String[ ]배열이 생성되고, main( ) 메소드를 호출할 때 매개값으로 전달된다. main( ) 메소드는 String[ ] args 매개 변수를 통해서 커맨드 라인에서 입력된 데이터의 수(배열의 길이), 입력된 데이터(배열의 항목 값) 을 알 수 있다. ex) 프로그..
4. Java 자바 참조 타입 - 배열 길이 배열 길이 배열에 저장할 수 있는 전체 항목의 수 length 필드 배열 길이를 얻으려면 배열 객체의 length 필드를 읽는다. * 필드 : 객체 내부의 데이터 배열의 length 필드를 읽기 위해서는 ( . ) 연산자를 붙이고 length를 적는다. 배열변수.length; ex) int[ ] intArray = { 10, 20, 30 }; // 3개의 항목 int num = intArray.length; // 변수 num에는 3이 저장된다. * length 필드는 읽기 전용 필드이기 때문에 값을 바꿀수 없다!! intArray.length = 10; // 잘못된 코드!! length 필드는 for 문을 사용해서 배열 전체를 루핑 또는 검색할 때 유용하다. public class ArrayLengthE..
3. Java 자바 참조 타입 - 배열 배열 같은 타입의 데이터를 연속된 공간에 나열시키고, 각 데이터에 인덱스(index)를 부여해 놓은 자료구조 배열 변수의 선언 두 가지 형태로 선언이 가능하다. 타입[ ] 변수; 타입 변수[ ]; ex) int[] intArray; double[] doubleArray; String[] strArray; ex) int intArray[]; double doubleArray[]; String strArray[]; - 배열 변수도 참조 변수이기 때문에 null 값으로 초기화 할 수 있다. 타입[ ] 변수 = null; null 값을 가진 상태에서 변수[인덱스] 값을 읽거나 저장할 때는 NullPointerrException 발생! 배열 객체 생성 배열 객체는 중괄호 { } 를 이용한 값 목록으로 생성, ne..
2. Java 자바 참조 타입 - String (문자열) String 타입 변수는 문자열 객체를 참조한다. (문자열은 String 객체로 생성, 변수는 String 객체를 참조한다.) String 변수 선언 및 문자열 객체 참조 String 변수이름 = "문자열" - 문자열 리터럴이 동일하다면, 동일한 String 객체를 공유하도록 되어있다. ex) name1 = "케피"; name2 = "케피"; 스택 영역 힙 영역 name1 : 224 번지 name2 : 224 번지 224 번지 : "케피" - new 연산자를 사용해서 직접 String 객체를 생성할 수 있다. (서로 다른 객체) (new 연산자는 힙 영역에 새로운 객체를 만드는 객체 생성 연산자) String name1 = new String("케피"); String name2 = new String("..
1. Java 자바 - 메모리 사용영역, 참조 타입 변수 특징 1. 데이터 타입 분류 기본 타입 : 정수, 실수, 문자, 논리 리터럴을 저장하는 타입 (실제 값 저장) 참조 타입 : 객체(Object)의 번지를 참조(저장)하는 타입 (메모리 번지값을 통해 객체를 참조한다.) 기본 타입 - 정수 타입 : byte, short, char, int, long - 실수 타입 : float, double - 논리 타입 : boolean 참조 타입 - 문자열, 배열, 열거, 클래스, 인터페이스 ex) // 기본 타입 변수 int age = 25; double price = 100.5; // 참조 타입 변수 String name = "케피"; String hobby = "영화"; 변수는 스택(Stack) 영역에 생성, 객체는 힙(Heap) 영역에 생성된다. 스택 영역 힙 영역 ..