JAVA

[JAVA]멤버 변수

당고개 2023. 9. 5. 17:14

1. 멤버 변수, 인스턴스 변수, 정적 변수

멤버 변수

클래스 내에 선언된 변수를 멤버 변수라고 하며, 멤버 변수에는 인스턴스 변수정적 변수가 있습니다.

class Person {
    String name; // 인스턴스 변수
    int age; // 인스턴스 변수
    String sex; // 인스턴스 변수
    static string nationality = “korea”; // 정적 변수
}

인스턴스 변수

인스턴스를 생성 후에 접근 가능한 변수를 인스턴스 변수라고 하며, 인스턴스 변수는 인스턴스의 생성과 소명 생명주기와 동일합니다. 인스턴스가 소멸하면 인스턴스 변수도 소멸합니다.

Person person1 = new Person();
person1.name = “록카”; // 인스턴스 변수
person1.sex = “female”; // 인스턴스 변수

정적(static)변수

인스턴스를 생성하지 않아도 접근 가능한 변수를 정적 변수라고 합니다. 또는 클래스 변수라고 부릅니다. nationality 정적 변수는 모든 Person 클래스에서 동일한 메모리를 참조하기 때문에 변수를 공유한다고도 볼 수 있습니다.

정적 변수는 인스턴스의 생성과 소멸 생성주기와 상관없이 프로그램이 시작되면 메모리에 적재되기 때문에 인스턴스 생성 없이 접근할 수가 있습니다.

String nation = Person.nationality; // 정적 변수

멤버 변수를 만들어 보자

1. 인스턴스 변수 만들기

인스턴스 변수 선언하기
코드 작성(Person.java)

class Person {
    String name;
    int age;
}

코드 작성(Main.java)

public class Main {
    public static void main(String[] args) {

        Person person1 = new Person();
        // TODO : 해당 인스턴스에 값을 저장
        person1.name = "김철수";
        person1.age = 17;

        Person person2 = new Person();

        // TODO : 해당 인스턴스에 값을 저장
        person2.name = "김나연";
        person2.age = 27;

        // TODO: 인스턴스의 변수 값을 출력

        System.out.println(person1.name);
        System.out.println(person1.age);

        System.out.println(person2.name);
        System.out.println(person2.age);
    }
}

출력

김철수
17
김나연
27

2. 정적 변수 만들기

정적 변수 선언하기
코드 작성(Person.java)

class Person {
    static String job = "개발자"; 
}

코드 작성(Main.java)

public class Main {
    public static void main(String[] args) {
 
        System.out.println(Person.job);

        Person person1 = new Person();
        Person person2 = new Person();

        System.out.println(person1.job);
        System.out.println(person2.job);
    }
}

출력

개발자
개발자
개발자

정적 변수 공유 확인하기
코드 작성(Person.java)

class Person {
    static String job = "개발자"; 
}

코드 작성(Main.java)

public class Main {
    public static void main(String[] args) {
 
        System.out.println(Person.job);

        Person.job = "마케터";

        Person person1 = new Person();
        Person person2 = new Person();

        System.out.println(person1.job);
        System.out.println(person2.job);
    }
}

출력

개발자
마케터
마케터

 

 

 

출처 : https://www.codelatte.io/courses/java_programming_basic/K66CR7EYWMER1POU

'JAVA' 카테고리의 다른 글

[JAVA]생성자 오버로딩  (0) 2023.09.06
[JAVA]생성자, this  (0) 2023.09.05
[JAVA]클래스  (0) 2023.08.30
[JAVA]문자열 만들기  (0) 2023.08.21
[JAVA]반복문  (0) 2023.08.15