Java SE Tutorials/Member Variables

Java Declaring Variables

Soul-Learner 2016. 12. 5. 12:01

Java 프로그래밍, 변수의 선언 ( Declaring Variables )


Java 언어에서 변수는 선언 위치에 따라서 3가지 종류로 나누어 볼 수 있다

멤버변수 (Member Variables) : 메소드 밖에 선언된 변수, 필드(Fields) 라고도 하며 접근제한자를 사용할 수 있다

지역변수 (Local Variables) : 메소드의 블럭 안에 선언된 변수. 선언된 메소드 블럭 안에서만 사용된다

파라미터 (Parameters) : 메소드의 블럭이 아닌 메소드 헤드에 선언된 변수. 일종의 지역변수로 취급됨


멤버번수의 선언 예

int price;                  // default Access Modifier : 동일 패키지에서만 접근이 허용됨

public int price;         // public 접근제한자 : 외부 클래스에서도 이 변수에 접근 가능함

protected int price;    // protected 접근제한자 : 자식 클래스와 동일 패키지에 있는 클래스에게만 접근을 허용함

private int price;        // private 접근제한자 : 현재 클래스에게만 접근이 허용됨


객체지향언어의 3대 특징(상속성, 다형성, 은닉성) 중에 하나인 은닉성(Encapsulation)을 잘 적용한 클래스라면 멤버변수에 직접접근(Direct Access)을 막기 위해 private 접근제한자를 사용하고 외부에서 해당 변수에 간접접근(Indirect Access)할 수 있도록 public 메소드를 제공하는 것이 일반적이다.

class User
{
	// 멤버변수에 private을 사용하면 외부에서 직접 접근(Direct Access)을 할 수 없다
	private int num;     
	private String name;
	private String email;
	
	// 메소드 앞에 public을 사용하여 외부에서 변수에 간접 접근(Indirect Access)할 수 있다
	public int getNum() { 
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
}


변수의 자료형 (Data Types)

멤버변수, 지역변수, 파라미터는 모두 변수를 선언할 때 반드시 자료형(Data Types)이 요구된다.

Java 언어에서 사용되는 자료형은 크게 기본형(Primitive Types)과 참조형(Reference Types)으로 구분된다

기본형(Primitive Types) : byte, short, char, int, long, float, double, boolean

참조형(Reference Types) : 기본형 이외의 모든 자료형 ( String 등 모든 클래스명, int[], 열거형 등 )

변수명은 첫자를 소문자로, 메소드명은 첫 단어를 동사로 하는 것이 국제 코딩 관례(Convention)이다


지역변수의 사용 예

키보드 입력으로 2개의 수를 받아서 a^b (a의 b승)을 계산하고 그 결과를 출력한다. Math.power(a,b)를 사용하는 방법도 알아두자

public class Tutorials 
{
	public static void main(String[] args) 
	{
		Scanner scanner = new Scanner(System.in);
		System.out.print("2개의 숫자를 공백으로 구분하여 입력하세요:");
		
		// 지역변수(Local Variables)의 사용 예
		int a = scanner.nextInt();
		int b = scanner.nextInt();
		
		double res = Math.pow(a, b); // a^b
		System.out.printf("%d^%d = %f %n", a, b, res);
	}
}


파라미터의 사용 예

public class Tutorials 
{
	public static void main(String[] args) 
	{
		Scanner scanner = new Scanner(System.in);
		System.out.print("2개의 숫자를 공백으로 구분하여 입력하세요:");
		
		// 지역변수(Local Variables)의 사용 예
		int a = scanner.nextInt();
		int b = scanner.nextInt();
		
		printPower(a, b);
	}
	
	static void printPower(int a, int b)// 파라미터의 선언
	{
		double res = Math.pow(a, b); // a^b
		System.out.printf("%d^%d = %f %n", a, b, res);
	}
}