{"CODING": undefind};/JAVA

1. 변수의 정의(instance변수,static변수,멤버변수,지역변수)

잼잼미 2021. 1. 21. 02:17

만약에 쇼핑몰 프로그램을 작성하고자 한다라면

회원, 제품,장바구니,주문내역 부품이 필요할 것이다.

여기서 필요로 하는 부품의 설계도면을 "클래스"라고 보면 된다.

-추상화 ==> 필요한 속성 및 기능만 뽑아내는 것을 말한다.

-회원가입(병원) ==> 신장,혈액형,몸무게,혈압

-회원가입(쇼핑몰) ==> 아이디,비밀번호,성명,이메일,전화번호,주소,마일리지(포인트),....

-attribute == property == field == 속성

 

1. instance(인스턴스)변수

instance(인스턴스)변수를 다른말로 non static 변수라고도 한다.

instance(인스턴스)변수는 서로 다른 instance 끼리 공유하지 못하고 각자 자기의 instance 내에서만 사용하는 것이다.

instance는 클래스가 메모리(RAM)에 올라가서 실제 사용가능한 객체로 되어진 상태를 말한다.

String id; // String 은 문자열을 뜻하는 클래스(자료형)이다.

id 라는 변수(변하는 수)에는 문자열이 들어온다는 뜻이다.

String pwd; // 비밀번호

String name; // 성명

String email; // 이메일

id, pwd, name, email 은 instance(인스턴스)변수라고 부른다.

2. static 변수

static 변수는 동일한 클래스로 생성되어진 서로 다른 instance 들 끼리 공유하는 변수이다.

클래스 변수, 정적 변수라고도 하며, instance의 생성과 상관 없이 사용할 수 있으므로 클래스 이름으로 참조한다.

static String address; // 주소

behavior == 행위 == 기능 == method(메소드)

자바에서 괄호 ()가 나오는 것은 오로지 2개 밖에 없다.

첫번째는 생성자(constructor)에서 () 가 사용되고, 두번째로 method(메소드)에서 ()가 사용된다.

회원의 정보를 조회해주는 기능을 만들어 봅니다.

void showInfo() { // 인스턴스 method(메소드)

// void는 return 타입이 없다라는 말이다.

System.out.println("=== 회원정보 ===\n"

                        + "1.아이디 : " + id + "\n"

                        + "2.암호 : " + pwd + "\n"

                        + "3.성명 : " + name + "\n"

                        + "4.이메일 : "+ email);

// \n 이 줄바꿈을 말한다.

// 문자열 사이의 +는 문자열 결합을 뜻한다.

3. 멤버변수

instance 변수와 static 변수를 합친 것을 멤버변수라고 부른다.

instance 변수 및 static 변수는 초기화를 하지 않더라도 자동적으로 초기화가 되어진다.

정수형인 데이터 타입(byte, short, int, long)은 자동적으로 0 으로 초기화가 되고,

실수형인 데이터 타입(float, double)은 자동적으로 0.0 으로 초기화가 되고,

문자형인 데이터 타입(char)는 자동적으로 ' '으로 초기화가 되고,

String 을 포함한 클래스 타입은 자동적으로 null 로 초기화가 된다.

4. 지역변수

지역변수는 { } 내에서만 사용되는 것으로 { } 을 벗어나는 순간 지역변수는 자동적으로 메모리(RAM)에서 삭제되어진다.

★지역변수는 반드시 초기화(== 값을 부여하는것)를 해주어야 한다.