매일 간단 한 JAVA 교육:변수
오늘 은 좀 게 으 름 을 피 워 서 변수의 정 의 를 간단하게 소개 해 드 리 겠 습 니 다.
변수 가 무엇 인지 쉽게 말 하면 주소 지침 이 고 이 지침 의 내용 은 가 변 적 이 어야 합 니 다.변수의 역할 은 프로그램 을 쓸 때 처리 할 데 이 터 를 임시로 저장 하 는 것 이다.
자바 에서 변수의 정 의 는 다음 과 같 습 니 다.
[패키지 경로.]종류 명 변수 이름[=값];
실제 변수 이름 예 는 다음 과 같 습 니 다.
java.util.Date today = new java.util.Date();
인간 의 언어 로 위의 코드 를 설명 하면 자바 util.Date 대상 주소 블록 을 새로 만 들 고 today 지침 에 저장 하 며 today 주소 세그먼트 에 저 장 된 내용 은 자바 util.Date 의 데이터 일 수 있 습 니 다.
만약 우리 가 패 킷 경 로 를 절약 하고 싶다 면 자바 의 파일 헤더,package 문장 뒤에 class 문장 밖 에 다음 과 같은 문장 을 쓸 수 있 습 니 다.
import .[ |*];
예 를 들 어 상례:
package ...;
import java.util.Date;
...
Date today = new Date();
이 패키지 가 아 닌 경로(현재 class 가 있 는 package 와 다 름)를 참조 할 때 import 참조 또는 설명 류 의 패키지 이름 을 사용 해 야 합 니 다.마치 우리 가 남 의 집 을 방문 할 때 그의 주 소 를 먼저 알 아야 하 는 것 처럼.그러나 자바 에 서 는 자바.lang 에서 온 모든 클래스 가 가방 이름 을 열거 하지 않 아 도 직접 참조 할 수 있 습 니 다.모든 클래스 에 기본적으로 도입 되 었 습 니 다.
변 수 를 이야기 하면 자 연 스 럽 게 그 역할 영역 에 관심 을 가 질 것 이다.작용 역 에 따라 우 리 는 국부 변수(variable)와 필드(field)로 나 눌 수 있다.부분 변 수 는 코드 세그먼트 나 방법 에서 임시로 만들어 진 중간 변 수 를 말 합 니 다.이러한 변 수 는 코드 세그먼트 나 방법 체 를 뛰 어 내 린 후에 GC 에 의 해 회수 되 는 경우 가 많 습 니 다.
이 변수 가 다른 대상 에 의 해 인용 되 지 않 는 한.이 부분 은 우리 가 약 한 인용 을 말 할 때 언급 될 것 이다.
자,field 와 variable 의 차 이 를 살 펴 보 자.
package vardemo;
public class VarDemo
{
// field
public String aField;
static{
//
String var = "I'm a var in static segment!";
}
// , var , aField
public void aMethod()
{
String var = "I'm another var for this method!";
String aField = "test";
for(int i=0;i<10;i++)
{
String var2 = "tmp var in for loop";
}
System.out.println(var);
System.out.println(var2);
}
}
위의 코드 에서 두 가지 오류 가 발생 할 수 있 습 니 다.첫 번 째 는 aMethod()에 있 는 String aField="test"이 고 다른 하 나 는 System.out.println(var 2)입 니 다.
첫 번 째 오 류 는 변수 가 필드 와 이름 을 바 꿀 수 없 기 때 문 입 니 다.jre 는 같은 클래스 에서 같은 이름 의 두 바늘,어떤 것 이 클래스 자체 의 필드,어떤 것 이 방법의 변수 인지 알 기 어렵 기 때문이다.또 같은 주소 세그먼트 의 변수 이름 도 같 을 수 없다.예 를 들 어 이렇게 쓰 는 것 도 옳지 않다.
public void aMethod()
{
String var = "test";
String var = "test";
}
이렇게 하면 잘못 보고 할 것 이다.
또 다른 오 류 는 바로 뒤의 System.out.println(var 2)입 니 다.프로그램 이 for 순환 을 한 후에 var 2 의 성명 은 gc 에 의 해 알 게 되 었 기 때문에 우 리 는 그것 의 주소 지침 을 다시 찾 을 수 없습니다.설령 그것 이 메모리 에 존재 할 수 있 더 라 도!
왜 변수의 작용 범 위 를 이해 해 야 합 니까?이것 은 할당 과 관계 가 있다.
먼저,변 수 를 어떻게 할당 하 는 지 말 해 보 세 요.간단 합 니 다.변 수 를 정의 할 때 와 비슷 합 니 다.
= ;
유일한 차이 점 은 변수 이름 전의 포인터 형식 정의 가 없 는 것 입 니 다.그 렇 죠?
필드 는 하나의 전역 변수 이기 때문에 칭찬 방법의 값 을 유지 할 수 있 습 니 다.예 를 들 어:
public class Person
{
private String name;
public void setName(String aName)
{
name = aName;
}
public String getName()
{
return name;
}
public static void main(String[] args){
Person p = new Person();
p.setName("JJ");
System.out.println(p.getName());
}
}
위 는 바로 우리 의 유명한 자바 빈 필드 작성 법 입 니 다.한 필드 에 getter 방법 과 setter 방법 이 있 습 니 다.이 두 가지 방법 을 통 해 외부 에 특정한 데 이 터 를 하나의 인 스 턴 스 에 저장 할 수 있 고 마지막 에 저 장 된 데 이 터 를 수시로 호출 할 수 있다.또한 서로 다른 인 스 턴 스 는 메모리 세그먼트 의 독립 으로 인해 같은 필드 의 값 이 교차 되 지 않 고 다 중 스 레 드 문제 가 발생 할 수 있 습 니 다.
field 필드 는 전역 변수 로 서 전체 주소 에서 공유 할 수 있 으 며,그 정 의 는 하나의 modifier 가 필요 합 니 다.인 스 턴 스 자 체 를 제외 하고 누가 수정 할 수 있 는 지 를 표시 할 수 있 습 니 다.예 를 들 어 위의 예 를 들 면 우 리 는 개조 할 수 있다.
public class Person
{
public String name;
public static void main(String[] args){
Person p = new Person();
p.name="JJ";
System.out.println(p.name);
}
}
그러나 이 는 너무 위험 하기 때문에 일반적인 상황 에서 필드 를 Public 로 정의 하 는 것 을 권장 하지 않 고 private 나 proctected 로 정의 하 는 것 만 권장 합 니 다.
마찬가지 로 변 수 는 field 든 variable 이 든 final 을 사용 할 수 있 고 static 는 field 가 정의 할 때 만 사용 할 수 있 습 니 다.필드 를 static 과 final 로 동시에 정의 할 때 상수 로 부 릅 니 다.이름 규칙 은 전체 대문자 로 사용 하고 단어 간 에 밑줄 로 구분 해 야 합 니 다.
private static final String A_CONSTANT = "I'm a constant and I can never be changed".
public login(final String username,final String password)
{
username = "I'm trying to make it dirty";
....
}
상례 에서 첫 번 째 는 상량 의 정의 방식 이다.두 번 째 예 는 흔히 볼 수 있 는 방법 매개 변수 변 수 를 final 로 정의 하 는 용법 으로 방법 이 도중에 부주의 로 민감 한 입력 매개 변 수 를 수정 하 는 것 을 방지 할 수 있다.상기 예 에서 username 의 할당 이 잘못 될 수 있 습 니 다.이 유 는 두 가지 방법 으로 매개 변 수 를 수정 할 수 없 기 때 문 입 니 다.주 소 는 이미 잠 겨 있 습 니 다.
오늘 내용 은 여기 서 마 치 겠 습 니 다.급 해서 잘 못 썼 나 봐 요.제 가 잠시 후에 다시 수정 하 겠 습 니 다.
내일 우 리 는 this 와 슈퍼 라 는 두 지침 안에 지침 을 세 울 것 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.