필드 (자바) 편집하기
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
− | '''필드'''(field)란 [[클래스]]를 구성하는 요소 중 하나로 [[클래스]] 내부 멤버이다. 어떠한 데이터를 저장하기 위한 역할을 담당하며 [[클래스]] 내부의 생성자와 [[메소드]] 밖에 정의가 된다. 필드는 클래스에서 내부 멤버이기 때문에 | + | '''필드'''(field)란 [[클래스]]를 구성하는 요소 중 하나로 [[클래스]] 내부 멤버이다. 어떠한 데이터를 저장하기 위한 역할을 담당하며 [[클래스]] 내부의 생성자와 [[메소드]] 밖에 정의가 된다. |
+ | |||
+ | ==개요== | ||
+ | 필드는 클래스에서 내부 멤버이기 때문에 멤버 변수라고도 불리며, [[클래스]] 내 전역에서 사용하기 때문에 전역 변수라고도 불리며 데이터를 저장하기 위한 역할을 담당하며 생성자와 [[메소드]] 밖에서 사용한다. 즉 필드란 클래스 안에서 독립적으로 선언되는 변수를 뜻한다.<ref name="필드변수">Velvet, 〈[https://m.blog.naver.com/PostView.nhn?blogId=pkss1230&logNo=220418155364&proxyReferer=https:%2F%2Fwww.google.com%2F 필드와 변수]〉, 《개인블로그》, 2015-07-12</ref> | ||
==특징== | ==특징== | ||
+ | |||
필드의 경우 다른 지역변수들과 다르게 초기화를 하지 않아도 기본값이 자동으로 초기화 된다는 특징을 가지고 있다. String의 경우 null, int의 경우 0으로 초기화 된다. 그리고 해당 [[클래스]] 내의 모든 [[메소드]]에 접근이 가능하다. | 필드의 경우 다른 지역변수들과 다르게 초기화를 하지 않아도 기본값이 자동으로 초기화 된다는 특징을 가지고 있다. String의 경우 null, int의 경우 0으로 초기화 된다. 그리고 해당 [[클래스]] 내의 모든 [[메소드]]에 접근이 가능하다. | ||
생성의 경우 객체가 생성될 때 함께 생성되며, 생성된 객체를 더 이상 참조하지 않을 때 가비지 컬렉터(Garbage Collector)에 의해서 제거된다.<ref name="개인블로그">JOKER, 〈[https://blog.naver.com/heartflow89/220956313502 자바 필드(field)-전역변수,멤버변수]〉, 《개인블로그》, 2017-03-13</ref> | 생성의 경우 객체가 생성될 때 함께 생성되며, 생성된 객체를 더 이상 참조하지 않을 때 가비지 컬렉터(Garbage Collector)에 의해서 제거된다.<ref name="개인블로그">JOKER, 〈[https://blog.naver.com/heartflow89/220956313502 자바 필드(field)-전역변수,멤버변수]〉, 《개인블로그》, 2017-03-13</ref> | ||
− | 필드를 | + | 필드를 선언 할 때는 접근 지정자, 필드의 타입, 필드의 이름 세가지를 정해줘야 한다. 접근 지정자에는 public과 private가 있으며, public은 모든 클래스로 부터 접근 가능, private는 클래스 내부에서만 접근이 가능하며 이 외에는 접근이 불가능하다.<ref name="개인블로그3">Yown, 〈[https://luckyyowu.tistory.com/193 Java 08 : 필드와 메소드]〉, 《개인블로그》, 2014-07-30</ref> |
필드는 객체의 고유 데이터, 객체가 가져야할 부붐, 객체의 현재 상태 데이터를 저장한다. 자동차를 예로 들 때 자동차에 필요한 고유 데이터는 제작회사, 모델명, 색, 최고 속도가 필요하고 현재 속도, 엔진 회전 수의 상태 데이터와 차체, 엔진, 타이어와 같은 부품이 필요하다가 필요하다. 이런 자동차를 클래스로 설계 할 때 이전에 말한 정보들은 클래스의 필드로 선언이 된다. | 필드는 객체의 고유 데이터, 객체가 가져야할 부붐, 객체의 현재 상태 데이터를 저장한다. 자동차를 예로 들 때 자동차에 필요한 고유 데이터는 제작회사, 모델명, 색, 최고 속도가 필요하고 현재 속도, 엔진 회전 수의 상태 데이터와 차체, 엔진, 타이어와 같은 부품이 필요하다가 필요하다. 이런 자동차를 클래스로 설계 할 때 이전에 말한 정보들은 클래스의 필드로 선언이 된다. | ||
27번째 줄: | 31번째 줄: | ||
위와 같은 형태로 정보들을 필드로 선언해 클래스를 사용할 때 편하게 정보를 변경할 수 있다.<ref name="개인블로그4">kephl, 〈[https://kephilab.tistory.com/46 3. Java 자바 - 클래스의 구성 멤버]〉, 《개인블로그》, 2020-05-15</ref> | 위와 같은 형태로 정보들을 필드로 선언해 클래스를 사용할 때 편하게 정보를 변경할 수 있다.<ref name="개인블로그4">kephl, 〈[https://kephilab.tistory.com/46 3. Java 자바 - 클래스의 구성 멤버]〉, 《개인블로그》, 2020-05-15</ref> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==활용== | ==활용== | ||
− | [[자바]]에서 필드를 사용하기 위해서는 코드 내에 선언을 해주어야 한다. | + | [[자바]]에서 필드를 사용하기 위해서는 코드 내에 선언을 해주어야 한다. |
=== 활용 위치 === | === 활용 위치 === | ||
− | [[파일:필드 선언 위치.png| | + | [[파일:필드 선언 위치.png|354픽셀|썸네일|필드 위치]] |
− | [[클래스]] 내의 필드는 멤버 변수 혹은 전역 변수라고도 하기 때문에 [[클래스]] 내부 중괄호 안 어느 위치에서나 선언이 가능하다. 하지만 [[메소드]] 혹은 생성자의 밖에 선언되어야 한다.<ref name="개인블로그2">Ara Blog, 〈[https://hunit.tistory.com/154 자바(Java)〃필드와 변수의 선언위치와 초기값(전역변수,지역변수)]〉, 《개인블로그》, 2015-11-02</ref> | + | [[클래스]] 내의 필드는 멤버 변수 혹은 전역 변수라고도 하기 때문에 [[클래스]] 내부 중괄호 안 어느 위치에서나 선언이 가능하다. 하지만 [[메소드]] 혹은 생성자의 밖에 선언되어야 한다. |
+ | <ref name="개인블로그2">Ara Blog, 〈[https://hunit.tistory.com/154 자바(Java)〃필드와 변수의 선언위치와 초기값(전역변수,지역변수)]〉, 《개인블로그》, 2015-11-02</ref> | ||
+ | |||
public class 클래스이름 { | public class 클래스이름 { | ||
139번째 줄: | 138번째 줄: | ||
hu1.cm=170; | hu1.cm=170; | ||
//hu1의 kg과 cm이라는 필드에 값을 넣음 | //hu1의 kg과 cm이라는 필드에 값을 넣음 | ||
+ | |||
} | } | ||
} | } | ||
146번째 줄: | 146번째 줄: | ||
또한 클래스 내부 [[메소드]]에서 필드 변수를 사용가능하다. 하지만 [[메소드]] 내의 지역변수와 필드 변수의 변수명이 같을 시 [[메소드]] 내의 지역변수를 우선순위로 하며, 만약 필드를 사용하고 싶다면 변수명 앞에 ''''this.''''를 사용한다면 필드 변수를 사용할 수 있다. | 또한 클래스 내부 [[메소드]]에서 필드 변수를 사용가능하다. 하지만 [[메소드]] 내의 지역변수와 필드 변수의 변수명이 같을 시 [[메소드]] 내의 지역변수를 우선순위로 하며, 만약 필드를 사용하고 싶다면 변수명 앞에 ''''this.''''를 사용한다면 필드 변수를 사용할 수 있다. | ||
− | class | + | class human { |
int kg; | int kg; | ||
int cm; | int cm; | ||
155번째 줄: | 155번째 줄: | ||
} | } | ||
public static void main(String[] args){ | public static void main(String[] args){ | ||
− | + | example(); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | |||
} | } | ||
− | + | 위와 같이 작성 시 example 내의 kg은 100이라는 숫자가 들어가고 human의 kg은 70이라는 값이 나오게 된다. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{각주}} | {{각주}} | ||
203번째 줄: | 167번째 줄: | ||
* JOKER, 〈[https://blog.naver.com/heartflow89/220956313502 자바 필드(field)-전역변수,멤버변수]〉, 《개인블로그》, 2017-03-13 | * JOKER, 〈[https://blog.naver.com/heartflow89/220956313502 자바 필드(field)-전역변수,멤버변수]〉, 《개인블로그》, 2017-03-13 | ||
* Ara Blog, 〈[https://hunit.tistory.com/154 자바(Java)〃필드와 변수의 선언위치와 초기값(전역변수,지역변수)]〉, 《개인블로그》, 2015-11-02 | * Ara Blog, 〈[https://hunit.tistory.com/154 자바(Java)〃필드와 변수의 선언위치와 초기값(전역변수,지역변수)]〉, 《개인블로그》, 2015-11-02 | ||
− | |||
== 같이 보기 == | == 같이 보기 == | ||
214번째 줄: | 177번째 줄: | ||
* [[필드]] | * [[필드]] | ||
− | {{프로그래밍|검토 필요}} | + | {{프로그래밍 언어|검토 필요}} |
[[분류:데이터베이스]] | [[분류:데이터베이스]] |