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 |