Java Declaring Variables
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); } }