java 변수
Java - Variable Types (tutorialspoint.com)
Java - Variable Types
Java - Variable Types A variable provides us with named storage that our programs can manipulate. Each variable in Java has a specific type, which determines the size and layout of the variable's memory; the range of values that can be stored within that m
www.tutorialspoint.com
1. 로컬변수
: 메서드, 생성자 또는 블록에서 선언됨.
: 메서드, 생성자, 블록을 입력해서 로컬변수를 만들고 벗어나면 변수가 삭제됨.
: 만약 메서드에서 정의했다면 해당 범위는 정의된 메서드에서만 사용됨.
//변수의 초기값이 없을 때 error
public class Test {
public void pupAge() {
int age;
age = age + 7;
System.out.println("Puppy age is : " + age);
}
public static void main(String args[]) {
Test test = new Test();
test.pupAge();
}
}
=> int age =0; 으로 최기화를 해주고 사용해야함.
2. 인스턴스 변수
: 매소드, 생성자 또는 블록의 밖에서 선언됨.
: 클래스 수준에서 사용 전후에 선언할 수 있음.
: 인스턴스 변수에 접근성이 부여된 정적메소드의 경우, 완전한 이름을 호출해 사용해야함.
package java_study;
public class Staff {
public String name;
//public이기때문에 어디서든 사용가능.
private double salary;
//private이기때문에 Staff class에서만 사용가능.
public Staff(String stfname) {
name = stfname;
}
public void setSalary(double stfSal) {
salary = stfSal;
}
public void printstf() {
System.out.println("이름 : "+name);
System.out.println("급여 : "+salary);
}
public static void main(String args[]) {
System.out.println("다음은 인스턴스 변수에 대한 예제 코드입니다.");
Staff stfone = new Staff("백수진");
//class선언과 동시에 인스턴스변수 매개변수를 넣어줌
stfone.setSalary(10000);
stfone.printstf();
}
}
<결과>
다음은 인스턴스 변수에 대한 예제 코드입니다.
이름 : 백수진
급여 : 10000.0
3. 클래스/정적변수
: 변하지 않는 상수의 값을 선언하기 위해서 사용하는 경우가 대부분.
: 대부분의 경우 초기값에서 절대로 변하지 않음.
: static을 사용 ( final을 사용할 경우, 대문자)
fianl과 static을 사용하는 이유가 궁금해졌다면?
https://goodncuteman.tistory.com/4 을 참고하여 이해!
[JAVA] final 과 static 의 핵심 정리
JAVA의 final 과 static을 클래스, 메소드, 변수에 사용할 때의 차이점과 용도에 관한 정리입니다. * final 변수란? 변수를 상수화 시킨다. 즉 한번 값이 결정된 변수의 값은 변경이 불가능하다. * fina
goodncuteman.tistory.com
*final사용이유*
1. 클래스: final로 클래스를 선언하면, 이 클래스를 상속하는 것을 허용하지 않는 것을 의미한다.
2. 변수 : 변수의 값의 변경을 허용하지 않는 것을 의미한다.
3. 메소드 : 상속이 가능하지만 메소드 오버라이딩이 불가하다. ( 상속 후 재정의하여 사용하는 것 : 오버라이딩)
*static사용이유*
1. 메모리공간을 할당해 어디서나 접근이 가능
단, 어디서나 가능하려면 private가 아닌 public으로 사용하는 것은 당연하다.
2. 인스턴스 간에 데이터 공유가 필요한 상황에서 static 변수를 활용
package java_study;
public class Staff_static_Ex {
private static double sal;
//급여 변수는 private 정적 변수로 설정한다
public static final String DEPARTMENT = "영업부";
//final을 사용하려고할 떄 모두 대문자로 자겅해야함.
public static void main(String args[]) {
sal = 1000;
System.out.println(DEPARTMENT + "평균급여 : "+sal);
}
}
<결과>
영업부평균급여 : 1000.0
4. 접근제한자
자바는 default값으로 접근제한자를 표현하면 클래스, 필드, 메소드 등이 서로 접근하는 것을 제한할 수 있음.
: private ( private로 만든 곳에서만 활용가능)
package java_study;
public class market_public_Ex {
private String category;
//category는 private여서 다른 class에서 활용할수가 없음.
public String getCategpry() {
return this.category;
}
public void setCategory(String category) {
this.category = category;
}
//this.category를 return this.category까지 가능하도록 public을 활용해야함.
}
:public ( main문은 인터프리터가 되어야하기때문에 public이여야함.)