본문 바로가기
프로그래밍/JAVA

17 클래스(Class)와 객체(instance)

by 윤지(●'◡'●) 2021. 4. 7.
반응형

 


Storage Class(저장 기억 부류)

 

지역 변수 : 메소드 내부에 선언된 변수(메소드 내에서만 사용 가능)
                ex) for문의 int i

전역 변수 : 메소드 외부에, 클래스 내부에 선언된 변수  (static 메소드 외 모든 메소드에서 접근 가능)

정적 변수 : static이 붙은 변수 ( 다른 클래스에서도e Class(저장 기억 부류)

 

  지역변수 전역변수 정적변수
초기화 직접 자동 자동
생명주기(사용범위) 해당{}내에서만 프로그램 종료시 프로그램 종료시
보안성

 

Ram에서의 할당

 


클래스(Class)

 

자바에서 클래스(class)란 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용된다.

설계도인 클래스를 가지고 여러 변수들과 메소드들을 관리 및 사용하기 위해 쓴다.

 

클래스와 객체 예시

 

1. 주어이다.

 

모든 문장 맨 앞에 클래스가 나오고 영어는 맨 앞을 항상 대문자로 적는다.
따라서 클래스는 주어이고, 대문자로 시작한다.

Monkey.eat("banana");
[주어] [동사] [목적어]

 

 

 

2. 타입이다.

 

클래스는 추상적인 개념이고 이 클래스 안에는 필드가 존재한다.
추상적인 것을 바로 사용할 수 없기 때문에 그 필드들을 구체화시킨 대상이 필요하다. 
이러한 것들을 객체라고 부르고 영어로는 instance variable이라고 부른다. (ex 붕어빵)

instance는 예, 예시라는 뜻이고 추상적인 개념의 한 예시로써 객체가 나오기 때문에
instance variable이라 부른다.
(ex :자동차인데 예를 들어 내차 말이야)
     [클래스]                  [객체]

추상적인 개념인 클래스를 구체화시킨 대상을 만드는 작업을 객체화라고 하며,  instane화라고 한다.

클래스명 객체명;

따라서 클래스는 그 객체의 타입이다.

 

클래스(Class) 선언

다른 클래스 외부에 선언한다.

 

class 클래스명{
		필드(변수, 메소드)
	}

 

 

클래스(Class) 사용

 

클래스는 추상적인 틀이기 때문에 먼저 객체화를 진행한다.

클래스명 객체명 = new 클래스명();
			// (new >> heap에 공간할당)

객체화를 진행한 객체명을 통해 아래와 같은 방법으로 사용한다.

객체명.변수;
객체명.메소드();

하나의 저장공간에는 단 한개의 값만 담을 수 있다.
필드에는 여러개의 값이 존재하기 때문에 필드는 다른곳(Heap)에 할당되고 

할당된 필드의 주소값을 저장하는것이 객체 이다.

 

 

위에서 배운 내용을 토대로 TV를 설계 해보자 (@^0^@)/

 

  TV
속성 - 브랜드
- 전원상태
- 채널
기능 - 전원 ON/OFF
- 채널 UP/DOWN

 

 

public class Test {

	public static void main(String[] args) {
		TV tv = new TV();
		tv.channel = 7;
		tv.channelUp();
		System.out.println("현재 채널 : " + tv.channel);
		System.out.println("현재 상태 : " + tv.power);
		tv.powerOn();
		System.out.println("현재 상태 : " + tv.power);
	}
	
}

class TV{
	// TV의 속성(멤버변수)
		String brand;
		String power = "Off";
		int channel;
	
	// TV의 기능(메소드)
		void powerOn() {
			power = "On";
		}
		
		void powerOff() {
			power = "Off";
		}
		
		void channelUp() {
			++channel;
		}
		
		void channelDown() {
			--channel;
		}
}

 

현재 채널 : 8
현재 상태 : Off
현재 상태 : On

 

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

19 클래스 배열  (0) 2021.04.08
18 생성자  (0) 2021.04.07
16 메소드를 이용한 문제 풀이  (0) 2021.04.06
15 메소드(method)  (0) 2021.04.06

댓글