36
자바 네트워크 프로그래밍 (OCJP 국제공인자격 취득 중심) 충북대학교 최민

자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

자바 네트워크 프로그래밍 (OCJP 국제공인자격 취득 중심)

충북대학교 최민

Page 2: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

교재소개 http://www.forsamsung.co.kr

국제공인 자바프로그래머 OCJP 실전 가이드

2 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

Page 3: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

3 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-2-2 프로그램에서 메인에서 인수 전달.

public class BankAccount2 { String name; int accountNumber; void setInfo(String clientName, int clientAccount) { name = clientName; accountNumber = clientAccount; } void printInfo() { System.out.println(name); System.out.println(accountNumber); } }

Page 4: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

4 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-2-2 setInfo() 메소드는 멤버변수 name 과 accountNumber를 메인에서 넘겨준 값으로 설정 메인에서 메소드로 인수를 넘길 때는 메소드를 정의할 때 지정한 파라미터들과 일치하는 순서와 데이터형으로 보냄

public class BankAccount2 { public static void main(String[] args) { BankAccount2 client = new BankAccount2(); client.setInfo("홍길동", 123456); client.printInfo(); } }

홍길동 123456

Page 5: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

5 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-2-3 간단한 interface 객체

interface MyInterface { void myMethod(); } public class MyClass implements MyInterface { //MyClass 의 내용 public void myMethod() { System.out.println("myMethod is implemented"); } public static void main(String[] args) { MyClass mc = new MyClass(); // point x mc. myMethod(); } }

Page 6: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

6 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-2-3 결과 MyInterface로 인스턴스를 만들려고 하면

myMethod is implemented

MyInterface mi = new MyInterface();

MyClass.java:12: MyInterface is abstract; cannot be instantiated MyInterface mi = new MyInterface(); ^ 1 error

Page 7: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

7 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

메인 메소드 메인 메소드

public static void main(String[] args)

public 제한자로 선언하는 것은 자바가상기계가 이 메소드를 패키지 밖에서 접근하기 위함 static 으로 선언된 필드(field)는 인스턴스를 생성하지 않고도 접근할 수 있도록 함.

Page 8: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

8 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

메인 메소드 메인 메소드의 파라미터

String 배열타입

명령행(Command line)에서 실행 클래스 다음에 적는 값들이 String 배열의 인덱스 0부터 저장됨

이때 메인 메소드의 파라미터인 String 배열 args에 전달되어 args[0]부터 인자0의 값이 할당됩니다.

java 클래스이름 인자0 인자1 인자2 ......;

Page 9: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

9 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-3-1 메인 메소드가 잘못 선언된 경우 컴파일은 되지만 실행시에 아래와 같은 예외발생.

public class Hello2 { public static int main(String[] args) { System.out.println("Hello SCJP!"); return 0; } }

java.lang.NoSuchMethodError: main Exception in thread "main" Normal Termination

Page 10: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

10 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-3-1 public static void main(String[] args) 메인 메소드 선언 규칙에서 void 가 잘 못되면 - 메인 메소드를 찾지 못했다는 에러 발생

C 언어에서는 main을 int 형으로 선언하고 int 형을 return 하는 것이 문제 없지만, 자바에서는 메인 메소드 선언 규칙은 반드시 지켜야 함

main을 int 형으로 선언하고 return; 으로 int 값을 되돌리지 않도록 해서 컴파일 하면? public class Hello2 { public static int main(String[] args) { System.out.println("Hello SCJP!"); return ; } }

Page 11: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

11 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-3-1 리턴형으로 int 를 지정 하지만, return 0 등으로 int 형을 반환하지 않는 것은 잘못된 문법이기 때문에 컴파일 에러 발생

Hello2.java:4: missing return value return ; ^ 1 error

Page 12: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

12 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-3-2 명령행에서 메인메소드에 넘기는 인자의 배열 인덱싱 메인 메소드로 전달하는 파라미터는 명령줄에서 입력합니다.

class MainArgs { public static void main(String[] args) { System.out.println("args[0] = " + args[0]); System.out.println(“args[1] = " + args[1]); } }

java MainArgs blue green red

Page 13: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

13 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-3-2 출력 결과 만약, 인자(argument)는 3개 넘기고 args[3]에 접근하면 -> 예외 발생

args[0] = blue args[1] = green

java.lang.ArrayIndexOutOfBoundsException

Page 14: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

14 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문제 public class Foo{ public static int main(String[] args){ System.out.println("Hello World"); return; } }

What is result? a) An exception b) The code not compile c) An exception is thrown

Page 15: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

15 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

문제 public static void main(String args[]){ String foo = args[1]; String bar = args[2]; String baz = args[3]; System.out.println("baz = " + baz); }

If the result is baz = 2. then what command line invocation will produce

the output?

a) java Test 4 2 4 2 b) java Test 4 3 2 1 c) java Test 2222

Page 16: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

16 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

자바 프로그래밍 언어의 키워드와 식별자 키워드(keyword)와 예약어(reserved word) 코드 안에서 문법적으로 특수한 의미를 가져서 사용자가 임의로 사용하는 것이 금지되어 있는 단어

자바에서는 둘의 차이를 구분할 필요가 없으며, 정해진 문법 외로 사용하면 안 되는 단어로 기억하고, SCJP 시험문제에서는 두 단어를 구분 없이 풀이함

기능별로 구분한 자바 키워드 특히 const 와 goto 는 자바에서 문법적으로 특별한 기능을 하는 것은 아니지만, 혼돈을 막기 위해서 식별자로는 사용할 수 없음

Page 17: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

17 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

식별자(Identifiers) 식별자(Identifier) 프로그래머가 프로그램 작성시 필요에 의해 선택하는 이름

자바 프로그래밍에서 변수 혹은 프로그램을 위한 이름(패키지나 클래스 이름, 메소드, 변수이름 등)을 붙여야 할 경우 사용되는 규칙

■ 대소문자를 구별

■ 식별자의 길이는 무관

■ 식별자는 문자 또는 언더스코어(underscore : _ )로 시작

식별자의 첫 문자는 숫자여서는 안됨.

■ 식별자는 문자(대문자 혹은 소문자)를 포함

문자와 숫자, 특수문자(_과 $)의 조합으로 구성

■ 키워드를 사용하면 안됩니다

Page 18: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

18 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

식별자(Identifiers)

abstract do import public transient boolean double instanceof return try break else int short void extends interface static volatile byte case final long super while catch finally native switch char float new synchronized class for package this continue if private

throw default implements protected throws

Page 19: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

19 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

식별자(Identifiers) 식별자 관례 유니코드를 사용하므로, 식별자를 선언시 한글사용 가능

식별자 관례를 지키지 않아도 컴파일 에러는 X

식별자를 관례를 따르면 가독성(readability)이 향상

식별자 관례 의미 있는 단어를 사용해서 만듭니다.

클래스와 인터페이스 이름은 첫 문자를 대문자로 합니다.

메소드와 변수 이름은 첫 문자를 소문자로 합니다.

식별자가 단어의 결합으로 되어 있을 때 다음 단어의 첫 번째 글자를 대문자로 하거나 _ 로 연결합니다.

$ 문자는 (사용할 수 있으나)사용하지 않는것이 좋습니다

Page 20: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

20 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

실전문제 Which are keywords in java? (choose two)

a) sizeof b) goto c) NULL d) this e) BOOLEAN

Page 21: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

21 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

실전문제 Which one valid identifier?

a) %fred b) *fred c) this d) 2fred e) fred

Page 22: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

22 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

변수와 배열 초기화 변수는 멤버변수와 지역변수 두 가지

멤버변수는 클래스 안에서 선언 (클래스의 인스턴스를 통해 접근)

지역변수는 메소드 안에서 선언

멤버변수는 명시적인 초기화 구문이 없더라도 인스턴스를 생성할 때 자동으로 초기값을 할당받음

데이터형에 따라서 초기값이 다르므로 주의 필요함.

지역변수는 명시적인 초기화 구문이 없으면 컴파일 에러 발생가능

Page 23: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

23 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

초기화 데이터형 초기값

boolean false

byte '\u00000'

char 0

short 0

int 0

long 0

float 0.0f

double 0.0

object null

Page 24: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

24 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

배열 초기화 배열의 선언, 생성, 초기화 배열도 하나의 변수이므로 초기화할 때에는 변수를 초기화하는 원칙을 따름

자바에서 배열은 객체로 취급하므로, 선언하는 방법이 일반적인 변수와 조금 다름

배열이 멤버 변수인지 지역변수냐에 따라 명시적인 초기화가 필요할 수도 있고 필요 없을 수도 있음

여기서, 초기화라고 설명하는 것은 명시적인 초기화의 경우임

Page 25: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

25 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

배열 초기화 일차원 배열과 이차원 배열의 변수 선언 1차원배열 : 데이터형[] 배열이름; // more general 데이터형 배열이름[]; 2차원 배열 : 데이터형[][] 배열이름; // more general 데이터형 배열이름[][]; 데이터형[] 배열이름[];

Page 26: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

26 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

배열 초기화 변수의 선언만으로 객체의 인스턴스가 생성되지 않듯 객체와 유사하게 배열도 new 키워드를 통해서 생성 먼저 1차원 배열의 크기를 정하고, 그 1차원 배열에 속하는 크기가 서로 다른 배열들을 각각 따로 선언 가능

2차원 배열을 정의할 때 1차원 배열의 크기만 우선 정한 뒤, 거기에 들어갈 배열들을 각각 따로 선언하여 할당해 주는 모습

데이터형[] 배열이름 = new 데이터형[배열크기]; 데이터형 배열이름[] = new 데이터형[배열크기];

이차원배열 = new 데이터형[배열크기][배열크기]; 이차원배열 = new 데이터형[배열크기1][]; 배열이름[0] = new 데이터형[배열크기]; ...... 배열이름[배열크기1] = new 데이터형[배열크기];

Page 27: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

27 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

배열 초기화 집합 표현양식을 통해 객체 생성과 초기화 동시 해결가능

배열이름 = {값1, 값2, 값3, ...... }; 배열이름[] = {값1, 값2, 값4, ...... }; 배열이름[][] = { {값1, 값2}, {값1, 값2, 값3} , {......}, ......};

Page 28: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

28 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-4-1 멤버변수를 명시적으로 초기화하지 않았을 때 어떤 값으로 초기화되는 지 알아봅니다

public class DefaultValue { boolean booleanVar; byte byteVar; char charVar; short shortVar; int intVar; long longVar; float floatVar; double doubleVar; String stringVar; }

public static void main(String[] args) { DefaultValue dv = new DefaultValue(); System.out.println(dv.booleanVar); System.out.println(dv.byteVar); System.out.println(dv.charVar); System.out.println(dv.shortVar); System.out.println(dv.intVar); System.out.println(dv.longVar); System.out.println(dv.floatVar); System.out.println(dv.doubleVar); System.out.println(dv.stringVar); }

Page 29: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

29 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제설명 DefaultValue 클래스의 인스턴스 dv를 생성 초기화하지 않은 멤버변수들을 출력

인스턴스를 생성하는 시점에서 생성된 멤버변수들이 자동으로 지정된 초기값을 할당받은 결과를 확인

출력결과 false 0 0 0 0 0.0 0.0 null

Page 30: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

30 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

예제 1-4-2 지역변수를 명시적으로 초기화하지 않았을 때 결과 main 메소드에 속한 booleanVar 변수 클래스 멤버변수가 아니고 메소드에 소속된 지역변수임 컴파일하면 변수가 초기화되지 않았다는 컴파일 에러를 확인가능!

public class DefaultValue2 { public static void main(String[] args) { boolean booleanVar; System.out.println(booleanVar); } }

DefaultValue2.java:4: variable booleanVar might not have been initialized System.out.println(booleanVar); ^ 1 error

Page 31: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

31 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

실전문제 - 지역변수의 초기화 What is result?

public class Foo { public static void main(String[] args) { String s; System.out.println("s = " + s); } } a) Code does not compile because String s is not initialized b) Code compiles and "s = " is printed c) Code compiles and "s = null" is printed d) Code compiles, bud a NullpointException

Page 32: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

32 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

실전문제 - 핸들변수 선언 Which of the following one appropriate to declare an

array of 50 String object?

a) String a[50]; b) Object ob[50]; c) String s[]; d) String []s;

Page 33: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

33 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

실전문제 byte[] array1, array2[]; byte array3[][]; byte[][] array4; if each array has been initialized which statement will error?

a) array2 = array1; b) array2 = array3; c) array2 = array4; d) both a and b e) both a and c f) both b and c

Page 34: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

34 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

primitive type 과 object type 프로그래밍 언어에서는 사용하는 데이터가 어떤 형태인지를 분명히 알아야만 데이터를 제대로 다룰 수 있음

데이터의 형태를 명시하는 type을 사용

자바에서는 primitive type(원시형)과 object type(객체형)

primitive type 다른 프로그래밍 언어에서도 볼 수 있는 일반적인 데이터형

일반 자료형 byte, short, int, long, float, double, char, boolean

속성에 따라 크게 4가지로 분류

Page 35: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

35 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

primitive type 과 object type 구분 테이터형 크기 유효 데이터

정수형

byte 1바이트 -27 ~ 27-1 범위의 정수

short 2바이트 -215 ~ 215-1 범위의 정수

int 4바이트 -231 ~ 231-1 범위의 정수

long 8바이트 -263 ~ 263-1 범위의 정수

부동소수형

float 4바이트 IEEE 754에 기반하는 4바이트 실수 double과 구분하기 위해 숫자 뒤에 F를 사용

double 8바이트 IEEE 754에 기반하는 8바이트 실수 숫자 뒤에는 아무것도 붙이지 않거나 D를 붙임

문자형 char 2바이트 작은 따옴표로 묶인 1개의 문자

논리형 boolean - true 또는 false

Page 36: 자바 네트워크 프로그래밍 - KOCWcontents.kocw.net/KOCW/document/2014/Chungbuk/choimin/2.pdf자바네트워크프로그래밍(OCJP 국제공인자격증취득대비) 26 배열

36 자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

primitive type 과 object type object type은 non-primitive type 객체의 틀이라고 할 수 있는 클래스의 형태가 바로 object type을 결정합니다. object type은 new 키워드로 생성 자신의 멤버변수와 메소드 등을 이용할 수 있다는 것이 특징 참조 자료형(reference type)이라고도 함

object type의 정보를 가지고 있는 변수가 객체 자체가 아니고, 메모리상에 존재하는 객체의 위치를 참조하는 포인터(pointer)이기 때문

object type의 선언 및 생성과정 핸들변수를 생성되고 객체를 인스턴스화 한 다음 해당 인스턴스가 멤버변수와 메소드를 참조하는 형태