1 / 194

1 ███████████

1 ███████████. 1. 3 rd Edition. 소설같은. 자바. since 2001. 최 영 관 Powered by http://www.jabook.org . 1장 언어의 기본. 1.1 Overview. 1.1.1 핵심 Question. 데이터 타입을 학습할 때의 문제점 데이터 타입을 너무 쉽게 정의 내려 버리기 때문에 정작 데이터 타입이 뭔지도 모르고 계속해서 뭔가를 습득해 나가는 것이다 . 핵심 Question 데이터 타입은 xxx xx 이다 .

gabe
Download Presentation

1 ███████████

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 1 ███████████ 1

  2. 3rd Edition 소설같은 자바 since 2001 최 영 관 Powered by http://www.jabook.org 1장 언어의 기본

  3. 1.1 Overview

  4. 1.1.1 핵심 Question • 데이터 타입을 학습할 때의 문제점 • 데이터 타입을 너무 쉽게 정의 내려 버리기 때문에 정작 데이터 타입이 뭔지도 모르고 계속해서 뭔가를 습득해 나가는 것이다. • 핵심 Question • 데이터 타입은 xxx xx이다. • 데이터 타입은 xxx을(를) xx하는 도구이다. • 데이터 타입은 xx가 있다. • 데이터 타입은 xx가 있다. • 데이터 타입으로 xx를 만든다. • 변수의 선언은 xxx xx을 의미한다. • 변수에는 xx를 할당할 수 있다. 이장을 학습하면서 해답을 찾아보자.

  5. 1.1.2Introduction • 자바학습 • C++의 문법과 객체지향 기술을 터득해야 한다. • 클래스(class) • C++ 계열 언어에서 등장하는 가장 핵심적이며 중요한 단어이다. • 데이터 타입(Data Type) • 클래스를 학습하기 위한 기초지식 • 클래스와 데이터 타입의 관계 • 클래스는 데이터 타입에서 출발한다. • 학습 내용 • 1장 • 데이터 타입 • 2장 • 클래스의 기초개념

  6. 1.1.3 데이터 타입이란? • 데이터 타입이란 • 데이터 타입은 메모리를 생성하기 위한 도구이다. • 메모리 생성 • 자바에서 메모리를 생성하는 유일한 방법은 데이터 타입을 이용하는 것이다. • 메모리의 크기 • 메모리를 생성할 때 가장 중요한 정보 • 메모리를 얻고 사용하는 절차 • 필요한 메모리의 크기(Size)를 정한다. • 크기에 해당하는 만큼의 메모리를 얻는다. • 메모리에 데이터를 집어넣는다. • int a; • int • int는 데이터 타입이다. • int는 4바이트의 크기를 의미한다. • a • 메모리에 연결된 이름 • 4바이트의 메모리를 생성한다. • 생성된 메모리의 위치(주소)를 a라는 이름에 연결시켜 준다. • 데이터 타입과 메모리 • 데이터 타입은 메모리를 얻기 위한 수단으로 사용된다. • 데이터 타입은 크기(Size)가 있다.

  7. 1.1.4 자바의 최종 목표 • 데이터 타입과 클래스 • 데이터 타입의 개념을 이해하는 것은 클래스를 이해하기 위한 수단이 된다. • 자바의 최종 목표 • 자바는 클래스를 기반으로 하고 있다. • 클래스를 정복하는 것이 자바의 최종목표이다. • 어셈블리에서 C 언어로의 발전 • 새롭게 제공된 다양한 데이터 타입(Data Type)과 함수(Function)의 편리한 사용 • C++ 언어로의 발전 • C++ 언어로 발전하면서 데이터 타입은 클래스로 발전하게 된다. 이유를 알면 클래스의 개념을 깨우칠 수 있다.

  8. 1.2 데이터 타입

  9. 1.2.1 데이터 타입의 첫 번째 목적 • 기본 데이터 타입(Primitive Data Type) • 컴파일러 차원에서 미리 제공하는 데이터 타입을 기본 데이터 타입이라고 한다. • 자바에서 제공하는 기본 데이터 타입 • byte(1), char(2), int(4), long(8), float(4), double(8), boolean(1) • 데이터 타입의 첫 번째 목적 • 데이터 타입은 생성할 메모리의 크기(Size)를 지정하기 위한 목적으로 사용한다. • 초보 시절의 데이터 타입 • 단순히 변수를 선언하는 도구 • 언어를 알고 난 후의 데이터 타입 • 메모리를 생성하기 위한 도구

  10. 1.2.2 데이터 타입의 두 번째 목적 • 데이터 타입의 두 번째 목적 • 데이터 타입은 메모리의 형태(Type)를 지정하는 목적으로 사용한다. • 메모리의 형태란 비트의 조합을 의미한다. • 4바이트짜리 int형의 메모리 • 정수 형식의 비트조합 • 4바이트짜리 float형의 메모리 • 32비트를 적절하게 잘라서 소수점 이하를 표현하기 위한 실수 형식의 비트조합(지수부, 가수부) • 5와 5.0 • 메모리에 적재될 때 전혀 다르게 표현된다. 5 00000000 00000000 00000000 0000 0101(2) 5.0 01000000 10100000 00000000 00000000(2)

  11. 1.2.3 메모리의 크기와 형태 • 데이터 타입의 최종 정의 • 데이터 타입은 메모리의 크기(Size)와 메모리의 형태(Type)를 지정하기 위한 도구이다. • 데이터 타입으로 메모리의 크기와 형태 지정 • int a; //4바이트의 메모리 생성, 정수 형태의 메모리 • char c; //2 바이트의 메모리 생성, 정수 형태의 메모리 • float f; //4바이트의 메모리 생성, 실수 형태의 메모리 • 데이터 타입의 역할 • 프로그래머와 컴파일러 사이의 메모리를 생성하기 위한 규약 • 데이터 타입은 메모리를 생성하기 위한 도구이다.

  12. 1.3 메모리에 대한 이름

  13. 1.3.1 메모리에 접근하는 방법 • int a; • 데이터 타입으로 메모리 생성 • a는 심볼(Symbol)이다. • 4바이트의 메모리를 생성한 후 이 메모리를 a라는 심볼에 연결시킨다. • a를 사용하게 되면 a가 연결된 내부의 메모리에 작업이 된다. • 변수의 이름 • 몇가지 단순한 규칙만 지킨다면 프로그래머 마음대로 이름을 지을 수 있다. • 변수의 이름을 만드는 방법 • 첫 번째 문자는 영문자나 _(언더바)로 시작해야 한다. • 첫 번째 문자는 숫자로 시작할 수 없다. • 대소문자를 구분한다.(count와 COUNT는 전혀 다른 식별자이다)

  14. 1.3.2 변수를 이용한 메모리 접근 • 변수의 선언(4바이트의 메모리 생성) • int a; • 4바이트의 메모리에 값 세팅(할당) • a = 5; • 32비트 정수 5 • 00000000 00000000 00000000 00000101(2) • 자바에는 포인터가 없다. • 자바에서는 포인터를 사용하지 않기 때문에 자바 자체적으로 a의 정확한 주소를 확인할 방법은 없다.

  15. 1.3.3 메모리에 들어가는 데이터 • 메모리의 생성 • int a; • char c; • float f; • 메모리에 값할당 • int a; • a = 5; • 상수(Constant) • 상수는 데이터 그 자체를 의미한다. 그렇기 때문에 상수 자체의 값을 변경할 수는 없다. • 오류 • 5 = 100;

  16. 1.4 기본 데이터 타입의 이해

  17. 1.4.1 데이터 타입의 분류 • 잊지 말아야 할 사항 • 데이터 타입은 메모리의 크기(Size)와 형태(Type)를 지정하는 것이다. char int 정수형 long boolean 데이터 타입 비트조합의 차이에 따른 분류 float 실수형 double

  18. 1.4.2 정수형과 실수형 메모리의 형태 • 정수의 메모리 변환법 • 정수(Integral Number) : 5 • 정수형 변환: 00000000 00000000 00000000 0000 0101(2) • 자바에서 사용하는 실수형 비트조합의 규칙 • IEEE Standard for Binary Floating-Point Arithmetic, ANSI/IEEE Standard 754-1985 • 부동소수점 수의 메모리 변환법 • 부동소수점 수(Floating Point Number): 5.0 • 이진화: 101.0 • 정규화: 1.01 * 2의 2승(1.xxx가 되도록 변환한다) • 부호부: 0(양수) • 지수부: 129 = 2(승) + 127 • 가수부: 01 • 부동 소수점의 비트조합 • float형의 비트(32) = 부호부(1) + 지수부(8) + 가수부(23) • double형의 비트(64) = 부호부(1) + 지수부(11) + 가수부(52) • float형 변환 : 0(부호부) 10000001(지수부) 0100000000000000000000(가수부) • 16진수로 변환: 40 A0 00 00(16)

  19. 1.4.3 정수형과 실수형의 계산 • 질문 • 메모리의 사이즈는 같지만 int형 5와 float형 5.0을 컴퓨터 언어에서 아무런 조치 없이 더할 수 있을까? • 기본 데이터 타입의 형변환 • 큰 수와 작은 수를 연산했을 때 큰 수로 형변환된다. • 덜 정밀한 수와 정밀한 수를 연산했을 때 정밀한 수로 형변환된다. • 정수와 실수를 연산했을 때 실수형으로 형변환된다. • 작은 수가 큰 수로 형변환되는 것은 자동이다. • 반대의 경우는 강제 형변환이 필요-오버플로우 발생 • 덜 정밀한 수가 정밀한 수로 형변환되는 것은 자동이다. • 반대의 경우는 강제 형변환이 필요-오버플로우 발생 • 형변환의 예 double d = 3 * 4.5F; • 3 * 4.5F의 결과는 float형이 된다.(정수와 실수의 연산) • float형의 결과가 double d에 할당되면서 float형이 double형으로 자동 형변환된다.

  20. 1.4.4 정수형과 실수형 데이터 타입 • 메모리의 비트의 조합은 같으나 메모리의 크기가 다른 정수형 • 바이트(byte) - 1 바이트 • 문자(char) - 2 바이트 • 정수(int) - 4 바이트 • 큰정수(long) - 8 바이트 • byte형 • 자바에서만 사용하는 테이터 타입 • 1바이트짜리 데이터 타입 • 일반적으로 char가 1바이트지만 자바에서는 char형이 유니코드 표현을 위해 2바이트로 바뀌게 된다. 그래서 자바에서 1바이트 데이터 타입을 위해서 새롭게 만든 데이터 타입 • 문자의 표현 • 'a', 'A' 는 숫자이다. • 메모리의 비트의 조합은 같으나 메모리의 크기가 다른 실수형 • 덜 정밀한 실수형(float) : 4 바이트 • 정밀한 실수형(double) : 8 바이트

  21. 1.4.5 그 외 데이터 타입 • 불린형 • 1바이트 boolean • 정수형 • 1바이트 byte • 2바이트 short • 4바이트 int • 8바이트 long • 2바이트 char • 실수형 • 4바이트 float • 8바이트 double • 자바에서의 unsigned • 자바에서는 모든 데이터 타입이 singed이다. unsigned 계열의 데이터 타입은 지원하지 않는다.

  22. 1.5 데이터 타입의 해석

  23. 1.5.1 데이터 타입의 목적 • 데이터 타입으로 할 수 있는 일 • 메모리를 생성하는 일 • 데이터 타입으로 메모리를 생성하는 방법 • 변수를 통해서 가능하다. • 변수의 선언은 메모리의 생성을 의미한다. • 데이터 타입의 목적 • 테이터 타입으로 변수를 만들 수 있다. • 데이터 타입과 변수의 관계 • 변수를 만들기 위해서는 반드시 데이터 타입이 필요하다.

  24. 1.5.2 변수의 의미 • 변수(Variable) • 변수란 데이터 타입에 명시된 형태의 데이터를 담을 수 있는 메모리이다. • 변수와 데이터 타입의 관계 • 변수는 데이터 타입을 통해서 존재할 수 있다. • 변수(Variable)의 목적 • 변수를 만드는 이유는 데이터를 보관하기 위해서이다. • 변수(Variable)의 이름 • 변수의 이름은 해당 메모리를 핸들할 수 있는 유일한 수단이다. • 변수(Variable)에 값할당 • 변수에는 데이터 타입에 맞는 형의 데이터를 넣어야 한다.

  25. 1.5.3 상수의 의미 • 상수(Constant) • 상수는 데이터 그 자체를 말하며 바꿀 수 없는 데이터를 말한다. • 정수형 상수의 구분 • 100 : 명시하지 않으면 int형 상수 • 100L, 100l : long형 상수 • 실수형 상수의 구분 • 5.34 : 명시하지 않으면 double형 상수 • 5.34F, 5.34f : float형 상수 • 5.34D, 5.34d : double형 상수 • 문자 상수의 예 • 'A', 'a' • 문자열 상수의 예 • "abcd" • 마지막에 널문자('\0')가 자동으로 추가된다. • "abcd"라는 문자열은 10바이트의 메모리를 차지한다.

  26. 1.6 데이터의 할당

  27. 1.6.1 데이터 타입과 변수, 상수 • int a = 3; • 데이터 타입 int • 변수 a • 상수 3 • 할당(Assignment) • 할당이란 변수에 값을 집어넣는 행위를 말한다. 메모리의 크기와 형태를 구분짓는 데이터 타입 데이터를 담을 수 있는 그릇 데이터 그자체

  28. 1.6.2 할당의 법칙 • = 연산자 • = 연산자는 데이터 타입에 맞는 값을 할당하라는 의미를 담고 있다. • 할당의 법칙 • 오른쪽에서 왼쪽으로만 할당이 가능하다.(절대적) • 변수끼리도 할당이 가능하다.(오른쪽에서 왼쪽으로 할당) • 변수에 이미 상수가 존재하더라도 다른 것을 할당하면 마지막에 넣은 것이 최종적으로 할당된다. • 선언과 동시에 초기화 • int a = 100; • 선언과 할당의 분리 • int a; • a = 100; • 여러 개를 선언함과 동시에 초기화 • int a = 100, b = 200; • 여러 개를 선언한 후 할당 • int a, b; • a = 100; • b = 200; • 변수끼리의 할당 • int a = 100; • int b; • b = a;

  29. 1.6.3 할당의 예 • 할당의 예 • int sum = 100; • sum = sum + 200; • 할당 예제 • public class SumMain { • public static void main(String[] args) { • int sum = 0; • for (int i=0; i<100; i++) { • sum = sum + i; • } • System.out.println("sum은 :" + sum); • } • } 오른쪽부터 먼저 계산이 된 후 왼쪽으로 할당된다.

  30. 1.7 마무리

  31. 1.7.1 결론 • 핵심 Question 해답 • 데이터 타입은 메모리지도이다. • 데이터 타입은 메모리를 생성하는 도구이다. • 데이터 타입은 크기(사이즈)가 있다. • 데이터 타입은 타입(형태)이 있다. • 데이터 타입으로 변수를 만든다. • 변수의 선언은 메모리 생성을 의미한다. • 변수에는 상수를 할당할 수 있다. • 핵심주제 • 데이터 타입을 알면 클래스가 쉬워진다. • 필자의 경험 • 필자는 클래스를 이해하던 날이 데이터 타입을 완전히 이해하던 날이었다. 이것에 대한 해답을 찾았길 바란다.

  32. 2 2 ███████████

  33. 3rd Edition 소설같은 자바 since 2001 최 영 관 Powered by http://www.jabook.org 2장 클래스의 기본

  34. 2.1 기본 데이터 타입의 한계와 구조체

  35. 2.1.1 핵심 Question • 목표 • 클래스의 개념을 이해하자. • 핵심 Question • 구조체는 xxx xx xxx이다. • 구조체로 xxx xx을 만들 수 있다. • 구조체로 만든 xxx xx은 xxx xx이다. • 구조체로 만든 xxx xx으로 xx를 만들 수 있다. • 클래스는 xxx xx xxx이다. • 클래스로 xxx xx을 만들 수 있다. • 클래스로 만든 xxx xx은 xxx xx이다. • 클래스로 만든 xxx xx으로 xx를 만들 수 있다. • 클래스의 개념 • 2장을 읽고 클래스의 개념을 깨우친다면 자바를 절반은 정복한 것이다. 이 문제의 해답을 찾는다면 클래스의 개념을 깨우칠 수 있을 것이다.

  36. 2.1.2 기본 데이터 타입의 한계 • 기본 데이터 타입의 한계 • 기본 데이터 타입으로 변수를 생성했을 때 생성된 변수에는 하나의 데이터만 보관할 수 있다. • 정해진 데이터 타입만을 사용해야 한다. • 기본 데이터 타입 변수에 여러 번 값할당 • int s = 100; • s = 200; • s = 300; • 구조체 • 동시에 여러 개의 데이터를 담을 수 있는 데이터 타입을 사용자가 직접 만들어서 사용하는 사용자 정의 데이터 타입 • 클래스 • 자바에서는 구조체가 발전해서 클래스가 된다. 구조체 클래스 발전 C 언어 객체지향 언어(C++, Java)

  37. int age float height float weight 2.1.3 구조체 만들기 • C 언어에서의 Person 구조체 선언 • struct Person{ • int age; • float height; • float weight; • }; • Person 구조체의 분석 • struct : 구조체를 만드는 키워드 • Person : 구조체로 만들어진 새로운 데이터 타입 • int age : Person 내부의 멤버 • float height : Person 내부의 멤버 • float weight : Person 내부의 멤버 • 구조체란? • 기본 데이터 타입의 한계를 극복하기 위해서 C 언어에서 제공되는 데이터 타입 생성기 • 구조체로 만든 사용자 정의 데이터 타입 • 구조체로 만든 사용자 정의 데이터 타입 Person은 메모리의 크기와 형태를 지정하는 데이터 타입이다. • Person 구조체의 메모리의 크기와 메모리의 형태 • Person 데이터 타입의 크기 = 4(int) + 4(float) + 4(float) • Person 데이터 타입의 형태 = int + float + float Person의 메모리 지도 4bytes 12bytes 4bytes 4bytes

  38. 2.1.4 구조체의 사용 • Person 구조체 • struct Person{ • int age; • float height; • float weight; • }; • 구조체 변수의 선언 • struct Person sister; // C 언어 방식의 구조체 선언 변수 • Person brother; // C++ 언어 방식의 구조체 선언 변수 • 구조체의 값 할당 • Person sister; • sister.age = 15; • sister.height = 165.3F; • sister.weight = 51.0F; • Person brother; • brother.age = 20; • brother.height = 170.0F; • brother.weight = 67.5F;

  39. 2.1.5 클래스로 가는 길목 • 질문 • 왜 이렇게 구조체의 의미를 상세히 다루는 것일까? • 구조체가 중요한 이유 • 구조체가 클래스의 할아버지뻘 정도 되기 때문이다. • 구조체는 클래스의 기본 개념을 포함하고 있다. • 구조체를 제대로 안다면 자바의 클래스를 쉽게 이해할 수 있다. • 클래스가 없던 시절 • 구조체와 메서드가 클래스의 모든 작업을 대행하였다. 구조체 클래스 + 메서드

  40. 2.2 처음 만나는 클래스

  41. 2.2.1 클래스 만들기 • C 언어 - Person 구조체 선언 • struct Person{ • int age; • float height; • float weight; • }; • Person 클래스 - 새로운 데이터 타입 • public class Person { • public int age; • public float height; • public float weight; • } • Person 클래스의 분석 • class : 클래스를 선언하는 키워드 • Person : 새로운 데이터 타입의 이름 • age : 데이터 타입 내의 멤버 • height : 데이터 타입 내의 멤버 • weight : 데이터 타입 내의 멤버 • 구조체와 클래스 • public을 모두 제거하고 class 키워드를 struct로 바꾼다면, 모든 면에서 구조체와 동일하다.

  42. 2.2.2 클래스의 사용 • 자바의 변수 선언 • Person brother; • 클래스 변수의 특징 • 클래스로 변수를 선언해도 메모리가 생성되지 않는다. • 클래스는 변수를 선언한 후 별도의 메모리 생성 과정을 거쳐야 한다. • 클래스 변수의 선언과 메모리 할당의 분리 • Person brother; //변수의 선언 • brother = new Person(); //메모리의 생성 • 클래스 변수의 선언과 메모리 할당을 동시에 • Person brother = new Person(); • 클래스 변수의 선언과 값 할당 • Person brother = new Person(); • brother.age = 20; • brother.height = 170.0F; • brother.weight = 67.5F; • 클래스 변수 • 클래스로 변수를 만들어도 이것을 변수라고 부른다. 기본 데이터 타입의 변수와 구별하기 위해서 클래스 변수를 객체 또는 객체 변수라고 부른다. • Person sister = new Person(); • sister.age = 15; • sister.height = 165.3F; • sister.weight = 51.0F;

  43. 2.2.3 메모리 생성 연산자 • 구조체의 선언과 메모리 생성 • Person brother; • Person sister; • 클래스의 선언과 메모리 생성 • Person brother = new Person(); • Person sister = new Person(); • 구조체의 메모리 생성 • 구조체는 변수의 선언과 동시에 메모리가 생성된다. • 기본 데이터 타입의 메모리 생성 • 기본 데이터 타입은 변수의 선언과 동시에 메모리가 생성된다. • 클래스 변수의 메모리 생성 • 클래스로 변수만 선언했을 때 메모리가 생성되지 않는다. • 메모리를 생성하기 위해서는 반드시 new와 생성자를 함께 사용해야 한다.

  44. 2.2.4 사용자 정의 데이터 타입 테스트 • 자바 코드의 파일명과 확장자 • 클래스의 이름과 파일명은 동일하다. • 소스 파일은 .java 확장자를 사용한다. • 클래스 파일 • 코드를 컴파일하면 클래스명과 동일한 .class 파일이 생성된다. • 즉 컴파일된 결과 파일은 .class 확장자가 붙는다. • main()을 포함한 클래스가 실행 클래스가 된다. • 각각의 파일 컴파일하기 • javac Person.java • javac PersonMain.java • 한번에 컴파일 하기 • javac P*.java • 자바 프로그램의 실행 • java PersonMain • Person 클래스 - 새로운 데이터 타입 • public class Person { • public int age; • public float height; • public float weight; • } Person.java Person 클래스를 테스트하는 예 public class PersonMain { public static void main(String[] args) { Person brother = new Person(); brother.age =100; brother.height = 170.0F; brother.weight = 67.0F; System.out.println("age:" + brother.age); System.out.println("height:" + brother.height); System.out.println("weight:" + brother.weight); } } PersonMain.java

  45. 2.3 클래스의 의미

  46. 2.3.1 클래스와 데이터 타입의 관계 • 데이터 타입, 변수, 상수의 관계 • 데이터 타입 : 무존재(無存在) • 변수 : 존재(存在) • 상수 : 실존(實存) • 구조체와 클래스의 위치 • 데이터 타입 윗부분에 구조체와 클래스가 위치한다. • 데이터 타입, 변수, 상수의 관계 • 클래스, 구조체 : 무(無) • 데이터 타입 : 무존재(無存在) • 변수 : 존재(存在) • 상수 : 실존(實存) • 구조체와 클래스의 역할 • 구조체와 클래스는 둘 다 데이터 타입 생성기이다. 데이터 타입 생성기 데이터 타입 변수 상수

  47. 2.3.2 자바에서 사용하지 않는 구조체 • 구조체 • C 언어의 사용자 정의 데이터 타입 • 클래스 • C++와 자바에서의 사용자 정의 데이터 타입 • 자바에서 구조체 • 자바에는 구조체가 없다. • 구조체에서 발전된 개념이 클래스이다. • 결론 • 클래스는 구조체의 개념을 포함한다. C 언어 구조체 클래스 구조체 클래스 Java 언어 C++언어

  48. 2.3.3 클래스의 역할 • 인간 클래스 디자인 • class Person{ • int age; • float height; • float weight; • 등등… • } • Person 홍길동 = new Person(); • Person 성춘향 = new Person(); • Person 홍길동 = new Person(); • 홍길동.age = 20; • 홍길동.height = 180.0F; • 홍길동.weight = 80.0F; • Person 성춘향 = new Person(); • 성춘향.age = 16; • 성춘향.height = 164.0F; • 성춘향.weight = 50.0F;

  49. 2.3.4 클래스와 데이터베이스 • 데이터베이스 테이블에 비유되는 Person 클래스 • public class Person{ • public int age; • public float height; • public float weight; • } □ Person 테이블에 레코드 삽입(MS-SQL 2000 기준) ◇ insert into Person values (20, 170.0, 67.5); ◇ insert into Person values (15, 165.3, 51.0); □ Person 테이블 생성 구문(MS-SQL 2000 기준) ◇ Create Table Person (age int, height float, weight float); • 레코드 삽입에 비유되는 객체의 값할당 • Person 홍길동 = new Person(); • 홍길동.age = 20; • 홍길동.height = 170.0F; • 홍길동.weight = 67.5F; • Person 성춘향 = new Person(); • 성춘향.age = 15; • 성춘향.height = 165.3F; • 성춘향.weight = 51.0F;

  50. 2.3.5 클래스와 메모리 • Person 클래스의 구성 • Person이라는 데이터 타입의 근본은 변수로 이루어져 있으며, 여러 개의 변수를 조합해서 하나의 데이터 타입을 이루고 있다. • Person 클래스 내의 변수들의 역할 • 메모리를 어떻게 분할할 것인지를 나타낸다. • Person 클래스 • public class Person{ • public int age; • public float height; • public float weight; • } • Person의 메모리 생성 • Person p = new Person(); • Person p의 메모리 • □□□□ □□□□ □□□□ 클래스가 변수로 되어 있는 이유 5번째부터 4개의 바이트에 float형의 데이터를 넣고자 한다면, 해당 부분이 아예 처음부터 변수로 되어 있으면 편하다.

More Related