>> 변수는 변하는 수를 담는 공간이라고 알고 있었지만, 자바에서 몇 개의 변수 종류가 있는지와 각각 생성되고 소멸되는 시기에 대해서는 알지 못했다. 다시 기본부터 차근차근 짚어보자는 생각으로 정리한다.
자바에는 네 가지 변수가 있다.
- 지역 변수 (local variables)
- 매개 변수 (parameters)
- 인스턴스 변수 (instance variables)
- 클래스 변수 (class variables)
1) 지역번수
- 중괄호 내에 선언된 변수
- 지역변수를 선언한 중괄호 내에서만 유효
2) 매개변수
- 매소드에 넘겨주는 변수
- 매소드가 호출될 때 생명이 시작되고, 매소드가 끝나면 소멸된다.
3) 인스턴스 변수
- 매소드 밖에, 클래스 안에 선언된 변수. 앞에는 static이라는 예약어가 없어야 한다.
- 객체가 생성될 때 생명이 시작되고, 그 객체를 참조하고 있는 다른 객체가 없으면 소멸된다.
4) 클래스변수
- 인스턴스 변수처럼 매소드 밖에, 클래스 안에 선언된 변수 중 타입 선언 앞에 static이라는 예약어가 있는변수
- 클래스가 처음 호출될 때 생명이 시작되고, 자바 프로그램이 끝날 때 소멸된다.
public class VariableTypes{
int instanceVariable; //인스턴스 변수
static int classVariable; //클래스 변수
public void method(int parameter){ //매개변수
int localVariable; //지역변수
}
}
초기화
초기화란 뭘까? 어떤 변수든 값을 저장하기 위해서 만든다. 저장할 값이 정해져 있다면, 그 값을 지정해주면 되겠지만, 항상 저장할 값이 정해져있지는 안다. 그래서, 변수를 선언할 때에는 초기화를 해줘야 변수를 사용할 수 있다.
int a = 100;과
Dog dog = new Dog();의 차이점은 무엇일까?
int를 초기화 할 때는 값을 바로 적어주었고,
Dog를 초기화 할 때는 new라는 예약어로 생성을 한다.
자바에서는 이렇게 new를 사용해서 초기화 할 수 있는 것을 참조 자료형,
그렇지 않고 바로 초기화가 가능한 것을 기본 자료형이라고 한다.
참조자료형 중 딱 하나 예외적인 것이 String이다.
String의 초기화는 대부분의 개발자가
String a = "java"; 와 같은 방식으로 한다.
하지만, 참조 자료형이기 때문에 이와 같이 초기화 해줘도 된다.
String a = new String("java");
클래스(Class)란?
º개념
· 객체를 정의하고 만들어 내기 위한 설계도 혹은 틀
· 연관되어 있는 변수와 메서드의 집합
º특징
· 객체의 상태를 나타내는 필드(field)와 객체의 행동을 나타내는 메소드(method)로 구성된다.
· 필드(field)란 클래스에 포함된 변수(variable)를 의미한다.
· 메소드(method)란 어떠한 특정 작업을 수행하기 위한 명령문의 집합
객체(Object)란?
º개념
· 소프트웨어 세계에 구현할 대상
· 클래스에 선언된 모양 그대로 생성된 실체
º특징
· '클래스의 인스턴스(instance)' 라고 부른다.
인스턴스(Instance)란?
º개념
· 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
· 즉, 객체를 소프트웨어에 실체화 하면 그것을 '인스턴스'라고 부른다.
· 실체화된 인스턴스는 메모리에 할당된다.
º특징
· 인스턴스는 객체에 포함된다고 볼 수 있다.
· oop의 관점에서 객체가 메모리에 할당되어 실제 사용될 때 '인스턴스'라고 부른다.
· 추상적인 개념(또는 명세)과 구체적인 객체사이에 초점을 맞출 경우에 사용한다.
· 즉, 인스턴스라는 용어는 반드시 클래스와 객체 사이의 관계로 한정지어서 사용할 필요는 없다.
· 인스턴스는 어떤 원본(추상적인 개념)으로 부터 '생성된 복제본'을 의미한다.
'JAVA' 카테고리의 다른 글
[JAVA] JAVA EMOJI PARSER / 이모지 제거 라이브러리 사용법 / how to remove emoji JAVA / vdurmont 사용법(2) - 이모지 글자 치환하기 (0) | 2021.10.20 |
---|---|
[JAVA] JAVA EMOJI PARSER / 이모지 제거 라이브러리 사용법 / how to remove emoji JAVA / vdurmont 사용법 (2) | 2021.10.19 |
[JAVA]배열에 특정 값이 있는지 확인하기 (0) | 2021.08.31 |
[JDBC] 올바른 JDBC 프로그래밍 (0) | 2021.08.30 |
[JAVA] 자바 환경변수 설정하기 (0) | 2021.08.17 |
댓글