본문 바로가기

Java

클래스, 객체, 선언 위치에 따른 변수의 종류

출처 - Java의 정석 기초편 (남궁 성)

 

 

1. 객체지향 언어

- 기존 프로그래밍 언어에 객체지향 규칙을 추가

- 재사용성, 유지보수, 중복된 코드 제거

- 캡슐화, 상속, 추상화, 다형성

 

 

2. 클래스(제품 설계도) → 객체(제품)

- 클래스란 객체를 정의해 놓은 것, 객체를 생성하는데 사용

- 객체란 실제로 존재하는 것, 프로그래밍에서의 객체는 클래스에 정의된 내용대로 메모리에 생성된 것

 

 

3. 객체

- 속성(변수)과 기능(메서드)의 집합

- 객체 = 클래스의 인스턴스(instance)

- 클래스 생성 → 객체 생성 → 객체 사용

- 인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치

 

클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언
변수명 = new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장

Tv t; // 참조변수 t 선언
t = new Tv(); // 객체 Tv 생성 후 대입연산자(=)에 의해 참조변수 t 와 연결

t.channel = 7; // 변수 사용
t.channelDown(); // 메서드 사용(호출)

class Tv {
    // Tv 속성(멤버변수)
    String color;
    boolean power;
    int channel;
    
    // Tv 기능 (메서드)
    void power() { power = !=power; }
    void channelUp() { ++channel; }
    void channelDown() { --chanel; }
}

 

 

4. 객체 배열(=참조변수 배열)

 

Tv[] tvArr = new Tv[3]; // 객체 배열 생성
Tv[] tvArr = { new Tv(), new Tv(), new Tv() }; / 배열 초기화, 객체 수 많을 때는 for문 사용

 

 

5. 클래스

- 설계도

- 데이터와 함수의 결합

- 사용자정의 타입

 

 

6. 선언 위치에 따른 변수의 종류

- 클래스 변수(cv): 클래스 영역, 클래스가 메모리에 올라갈 때, 공통 속성, 모든 인스턴스가 공통된 저장공간(static 변수) 공유, '클래스이름.클래스변수'

- 인스턴스 변수(iv): 클래스 영역, 인스턴스(객체)가 생성되었을 때, 개별 속성

- 지역 변수(lv): 메서드 영역, 생성자, 초기화 블럭 내부, 메서드 종료시 소멸

 

 

 

'Java' 카테고리의 다른 글

상속, 포함, Object클래스, 오버라이딩  (0) 2022.09.28
메서드, return문, 호출스택, 매개변수, 생성자  (0) 2022.09.25
배열(Array)  (2) 2022.09.21
반복문(for, while)  (0) 2022.09.19
조건문(if, switch)  (0) 2022.09.16