this가 하는 일 - 인스턴스 자신의 메모리를 가리킴 - 생성자에서 또 다른 생성자를 호출할 때 사용 - 자신의 주소(참조값)를 반환함 생성된 인스턴스 메모리의 주소를 가짐 클래스 내에서 참조 변수가 가지는 주소 값과 동일한 주소 값을 가지는 키워드 public void setYear(int year) { this.year = year; } 생성자에서 다른 생성자를 호출하는 this - 클래스에 생성자가 여러 개인 경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있음 - 생성자에서 다른 생성자를 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로 this() statement 이전에 다른 statement를 쓸 수 없음 public class Person { String name;..
Java
객체 간의 협력 (collaboration) - 객체 지향 프로그램에서 객체 간에는 협력이 이루어짐 - 협력을 위해서는 필요한 메시지를 전송하고 이를 처리하는 기능이 구현되어야 함 - 매개 변수로 객체가 전달되는 경우가 발생 - 객체 협력의 예 버스 타고 학교 가는 학생의 과정 James와 Tomas는 각각 버스와 지하철을 타고 학교에 갑니다. James는 5000원을 가지고 있었고, 100번 버스를 타면서 1000원을 지불합니다. Tomas는 10000원을 가지고 있었고, 초록색 지하철을 타면서 1200원을 지불합니다. 두 학생이 버스와 지하철을 타는 상황을 구현해보자! Student.java public class Student { String studentName; int grade; int mon..
함수 (function) - 하나의 기능을 수행하는 일련의 코드 - 구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨 - 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음 함수 호출과 스택 메모리 - 스택: 함수가 호출될 때 지역 변수들이 사용하는 메모리 - 함수의 수행이 끝나면 자동으로 반환되는 메모리 메서드 (method) - 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수 - 멤버 함수 (member function)이라고도 함 - 메서드를 구현함으로써 객체의 기능이 구현됨 - 메서드의 이름은 그 객체를 사용하는 객체(클라이언트)에 맞게 짓는 것이 좋음 ex) getStudentName() 객체의 속성은 멤버 변수로, 객체의..
인스턴스 (instance) - 클래스는 객체의 속성을 정의하고, 기능을 구현하여 만들어 놓은 코드 상태 - 실제 클래스 기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가지게 됨 - 가령, 학생의 클래스에서 생성된 인스턴스는 각각 다른 이름, 학번, 학년 등의 값을 가지게 됨 - new 키워드를 사용하여 인스턴스 생성 힙 메모리 (heap memory) - 생성된 인스턴스는 동적 메모리에 할당됨 - C나 C++ 언어에서는 사용한 동적 메모리를 프로그래머가 해제시켜야 함(free()는 delete 이용) - 자바에서 Gabage collector가 주기적으로 사용하지 않는 메모리를 수거 - 하나의 클래스로부터 여러 개의 인스턴스가 생성되고 각각 다른 메모리 주소를 가지게 됨 용어 정리 - 객..
객체란? 의사나 행위가 미치는 대상 (사전적 의미) 구체적, 추상적 데이터의 단위 (학생, 회원, 생산, 주문, 배송) 절차 지향 프로그래밍과 객체 지향 프로그래밍 절차 지향 프로그래밍 시간이나 사건의 흐름에 따른 프로그래밍 일어난다 -> 씻는다 -> 밥을 먹는다 -> 버스를 탄다 -> 요금을 지불한다 -> 학교에 도착 대표적인 언어: C 객체 지향 프로그래밍 대표적인 언어: C++, C#, Python, JavaScript 객체 지향 프로그램 구현 - 객체를 정의하고 - 각 객체 제공하는 기능들을 구현하고 - 각 객체가 제공하는 기능들 간의 소통을 통하여 객체 간의 협력을 구현한다 클래스 구현 - 클래스는 대문자로 시작하는 것이 좋음 - java 파일 하나에 클래스는 여러 개가 있을 수 있지만, pub..