객체
구체적, 추상적 데이터 단위이다.
객체의 속성에는 객체의 특성, 속성, 멤버 변수가 있다.(property, attribute, member variable)
객체의 기능
객체가 하는 기능들을 메서드로 구현
객체지향 프로그래밍
객체를 기반으로 하는 프로그래밍이다.
클래스
객체에 대한 속성과 기능을 코드로 구현한 것
"클래스를 정의한다" 라고 함
객체에 대한 청사진(blueprint)
클래스를 정의하는 법
(접근 제어자) class 클래스 이름{
1. 멤버 변수
2. 생성자
3. 메소드
}
클래스 명은 대부분 대문자로 시작한다.
아래는 예제로 학생 클래스를 만들어 본 소스코드이다.
studentID, studentName, grade, address는 멤버 변수라고 부른다.
생성자
생성자는 일반적인 디폴트 생성자와 매개변수가 존재하는 생성자로 나누어진다.
생성자가 하는 일은 클래스를 처음 만들 때 멤버 변수나 상수를 초기화하는 것이다.
생성자는 클래스를 생성할 때만 호출하고, 생성자 이름은 클래스 이름과 같으며, 생성자는 반환값이 없다.
디폴트 생성자
매개변수가 존재하지 않는 생성자이다. 매개변수가 존재하는 생성자를 만든 경우에는 디폴트 생성자를 사용할 수 없다.
디폴트 생성자와 매개변수가 한개, 세개 존재하는 생성자를 만들어 보자.
public Person(){}//디폴트 생성자.
public Person(String name) {//매개변수가 한개 있는 생성자.
this.name = name;
}
public Person(String name, float height, float weight) {//매개변수가 세 개 있는 생성자.
this.name = name;
this.height = height;
this.weight = weight;
}
메소드
함수의 일종이다. 객체의 기능을 제공하기 위해 클래스 내부에 구현되는 함수
클래스, 구조체, 열거형에 포함되어있는 "함수"를 메소드라고 부른다. 메소드를 다른말로 "클래스 함수"라고도 한다.
함수는 하나의 기능을 수행하는 일련의 코드이다. 중복되는 기능은 함수로 구현하여 함수를 호출하여 사용한다.
아래는 함수를 구현하고 호출한 코드이다.
두 개의 int 매개변수를 받아서 합을 return하는 함수를 만들었다.
메인에서는 그 매개변수를 대입하고 출력한 모습이다.
클래스 생성하기
클래스를 사용하기 위해서는 클래스를 생성하여야 함.
new 예약어를 이용하여 클래스 생성.
클래스형 변수이름 = new 생성자;
클래스를 생성했으면, 멤버 변수에 값을 대입해주고, 인스턴스의 각 멤버 변수를 출력해 보자.
다음은 인스턴스를 여러 개 생성하는 예시이다.
한 개의 인스턴스를 더 만들어 보자.
인스턴스와 힙 메모리
하나의 클래스 코드로부터 여러 개의 인스턴스를 생성
인스턴스는 힙(Heap) 메모리에 생성됨
각각의 인스턴스는 다른 메모리에 다른 값을 가짐.
요약
용어 | 설명 |
객체 | 객체 지향 프로그램의 대상, 생성된 인스턴스 |
클래스 | 객체를 프로그래밍하기 위해 코드로 만든 상태 |
인스턴스 | 클래스가 메모리에 생성된 상태 |
멤버 변수 | 클래스의 속성, 특성 |
메서드 | 멤버 변수를 이용하여 클래스의 기능을 구현 |
참조 변수 | 메모리에 생성된 인스턴스를 가리키는 변수 |
참조 값 | 생성된 인스턴스의 메모리 주소 값 |
'교육 | 외부활동 > 이론_JAVA' 카테고리의 다른 글
KH자바수업_6_배열 (0) | 2022.11.10 |
---|---|
KH자바수업_5_클래스와 객체 2 (0) | 2022.11.09 |
KH자바수업_4_생성자 (0) | 2022.11.09 |
KH자바수업_2_제어문, 반복문 (0) | 2022.11.08 |
KH자바수업_1_변수와 자료형, 연산자 (0) | 2022.11.08 |