Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- db
- 자바 Random클래스
- Java업캐스팅
- Java try-catch
- Java다운캐스팅
- 코딩
- java super( )
- oracle
- 자바 내부 클래스
- 자바 String클래스
- nodejs
- 자바 스트링클래스
- 자바 제어문
- Java thorw
- 자바 try-catch
- Java문자열 클래스
- Java 추상 메서드
- 오라클
- 자바 Wrapper클래스
- 자바 추상메서드
- 자바 문자열 클래스
- 데이터베이스
- Java추상클래스
- Express
- DBMS
- dbeaver
- Java 내부 클래스
- database
- 자바 예제
- Java객체배열
Archives
- Today
- Total
코딩이란 무엇일까
[Java/자바] 클래스(1) 인스턴스(instance) 변수와 클래스변수 본문
안녕하세요 오늘은 클래스 생성 방법 및 인스턴스 변수와 클래스 변수에 대해 알아보아요.
클래스의 생성방법
class 클래스명{
변수 혹은 메서드
}
새로운 객체(인스턴스) 생성 방법
클래스명 참조변수 = new 클래스명( );
위의 과정을 인스턴스화 한다고 합니다.
이렇게 되면 class라는 틀을 만들어 놓은 뒤 사용할 준비가 되었다는 것이죠!
인스턴스 변수란?
인스턴스 변수는 객체마다 갖는 고유한 변수를 뜻합니다.
- 인스턴스는 생성할 때 만들어지며, 각각의 인스턴스마다 자신의 값을 갖고 있습니다.
- 각 인스턴스마다 다른 값을 가져야 할 때 생성합니다.
- 인스턴스 생성 시 메모리에 생성
클래스 변수란?
모든 객체가 동일한 값을 갖는 변수를 말합니다.
- 모든 객체가 같은 저장공간을 공유합니다.
- 클래스가 처음 메모리에 로딩될 때 생성됩니다.
- 인스턴스 없이 사용 가능합니다.
클래스 변수 생성 방법
class 클래스명{
static 자료형 변수명;
}
클래스 변수 선언 시 자료형 앞에 static키워드가 붙어있다면 클래스 변수 없다면 인스턴스 변수입니다.
인스턴스 변수와 클래스 변수 사용 예시
회원정보를 관리하는 클래스를 만든 뒤 메인 메서드 안에서 회원정보를 정리해보려 합니다.
Member 클래스
class Member{
String Name;
static String centerName="Sports Center"; //클래스 변수
int age;
String gender;
//출력문
void info() {
System.out.println("center Name:"+centerName);
System.out.println("Name:"+Name);
System.out.println("age:"+age);
System.out.println("gender:"+gender);
}
}
회원정보를 관리하는 Member 클래스를 만들어 보았습니다.
이름, 성별, 나이, 는 회원마다 다르니 인스턴스 변수로 선언을 해주어야겠죠?
그리고 이 회원들은 모두 같은 Center에 소속되어있으니 모든 회원들은 Sports Center에 해당하니 클래스 변수로 선언해 주어야 합니다.
Main 메서드
Main메서드에서 이제 회원정보들을 입력해 줍니다.
public class Instance_Class_Ex {
public static void main(String[] args) {
//객체 생성
Member member1=new Member();
Member member2=new Member();
Member member3=new Member();
Member member4=new Member();
//클래스 변수는 모두 같은 주소를 갖고있기 때문에 member1만 바꾸어도 모든 클래스 변수가 바뀐다
member1.centerName="할루";
member1.Name="김철수";
member1.age=32;
member1.gender="남자";
member2.Name="김민호";
member2.age=28;
member2.gender="남자";
member3.Name="이영희";
member3.age=24;
member3.gender="여자";
member4.Name="고석천";
member4.age=32;
member4.gender="남자";
System.out.println("member1----");
member1.info();
System.out.println("member2----");
member2.info();
System.out.println("member3----");
member3.info();
System.out.println("member4----");
member4.info();
}
}
출력 결과
CenterName은 분명 Sport Center로 했지만 member1에서 "할루"로 바꾸어 준 것을 볼 수 있죠?
따라서 클래스 변수는 모든 객체가 동일한 주소 값을 갖고 있기 때문에 객체 중 하나만 바꾸어도 모든 객체에서의 클래스 변수가 바뀌게 됩니다.
이상으로 클래스 변수와 인스턴스 변수에 대해 알아보았습니다.
핵심은 클래스 변수는 모든 객체가 동일한 값을 가질 때
인스턴스 변수는 객체마다 갖는 고유한 변수라 생각하면 좋습니다.
이상으로 포스팅 마치겠습니다.
글 읽어주셔서 감사합니다~!

'Java' 카테고리의 다른 글
[Java/자바]클래스-생성자 (1) | 2022.09.30 |
---|---|
[Java/자바]객체타입 배열 (1) | 2022.09.30 |
[Java/자바] 객체지향 프로그래밍이란(Object-Oriednted Programming)? (0) | 2022.09.28 |
[Java/자바] 메소드 오버 로딩(Overloading) (0) | 2022.09.28 |
[Java/자바]메서드에 알아보기 (1) | 2022.09.26 |
Comments