도찐개찐
[JAVA] 클래스(Class), 객체(Object) 본문
클래스(Class)
- 객체를 정의해 놓은 것
- 객체의 설계도 또는 틀
- 객체를 생성하는데 사용됨
클래스를 정의하는 방법
클래스란 객체를 정의한 것이므로, 클래스에는 객체의 모든 속성과 기능이 정의되어 있다.
copy typescriptclass Tv {
// 속성(변수)
String color;
boolean power;
int channel;
// 기능(메서드)
void power() { power = !power; }
void channelUp() { channel++; }
void channelDown() { channel--; }
객체(Object)
객체
- 실제로 존재하는 것. 사물 또는 개념
- 객체의 용도는 객체가 가지고 있는 기능과 속성에 따라 다름
- 클래스에 정의된 내용대로 메모리에 생성된 것
객체 만드는 방법
인스턴스화
- 클래스로부터 객체를 만드는 과정
- 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다.
객체 : 모든 인스턴스를 대표하는 포괄적인 의미
인스턴스 : 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미
객체의 구성 요소
- 속성(property)
- 멤버변수(member variable), 특성(attribute), 필드(field), 상태(state)
- 기능(function )
- 메서드(method), 함수(function), 행위(behavior)
copy cpp클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언
변수명 = new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
copy cppTv t; // Tv 클래스 타입의 참조변수 t를 선언
t = new Tv(); // Tv인스턴스를 생성한 후, 생성된 Tv 인스턴스의 주소를 t에 저장
예)
copy typescriptclass Tv {
String color;
boolean power;
int channel;
void power() { power = !power; }
void channelUp() { ++channel; }
void channelDown() { --channel; }
}
public class TvTest {
public static void main(String[] args) {
Tv t;
t = new Tv();
t.channel = 7;
t.channelDown();
System.out.println("현재 채널은 " + t.channel + "입니다.");
}
}
new 연산자
copy java클래스 변수 = new 클래스();
인스턴스(객체)를 생성해주는 역할
메모리(Heap 영역)에 데이터를 저장할 공간을 할당받고
그 공간의 참조값을 객체에게 반환하여 주고 이어서 생성자를 호출한다.
728x90
'JAVA' 카테고리의 다른 글
[JAVA] 접근 지정자(Java Access Modifier) (0) | 2022.07.06 |
---|---|
[JAVA] 객체지향 캡슐화(Encapsulation), 응집도(Cohension)와 결합도(Coupling) (0) | 2022.07.06 |
[JAVA] 추상화(Abstract) VS 인터페이스(Interface) (0) | 2022.07.06 |
[JAVA] 데이터 타입(Primitive type, Reference type) (0) | 2022.07.06 |
[JAVA] 오버로딩(Overloading), 오버라이딩(Overriding) (0) | 2022.07.06 |
Comments