티스토리 뷰

모바일소프트웨어/자바

java 변수

백수진 2021. 9. 28. 20:46

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이여야함.)

 

 

'모바일소프트웨어 > 자바' 카테고리의 다른 글

Generic class  (0) 2021.10.19
자바에서의 객체 비교  (0) 2021.10.16
자바 문자열 다루기  (0) 2021.10.11
Static변수와 객체생성의 관계  (0) 2021.10.01
객체와 클래스(Java Objects and Class)  (0) 2021.09.15