JAVA 6강_1_Class

열라뽕따히·2024년 2월 4일

JAVA

목록 보기
31/79

클래스(Class)란?

  • 현실에서 객체는 갑자기 만들어지는 것이 아니라, 설계도를 바탕으로 만들어짐. 예를 들어 사람들이 자동차를 이용하기 위해서는 우선 공장에서 자동차 설계도를 보고 자동차를 만들어야 함.
    객체지향 프로그래밍도 마찬가지임. 메모리에서 사용하고 싶은 객체가 있다면 우선 설계도로 해당하는 객체를 만드는 작업이 필요함.
    자바에서는 설계도가 바로 클래스(Class)임.

  • 클래스는 객체를 만들기 위한 설계도(틀, 도면)임.

  • 붕어빵 틀과 붕어빵 객체 사이의 관계를 통해 클래스와 객체 관계를 보여줌.
    자바로 말하자면 붕어빵 틀은 자바 클래스이며, 붕어빵은 자바 객체임.
    클래스는 하나이지만 객체들은 수 없이 많이 생성될 수 있음.

  • 자바는 클래스 단위로 프로그래밍을 함.

  • 클래스를 구성하는 것을 멤버(member)라고 함.

  • 멤버 = 속성(멤버변수) + 기능(멤버메서드)
    ==> 속성 : 멤버변수 - 클래스의 특징 ==> 명사적 개념
    ==> 기능 : 멤버메서드 - 클래스의 행위(동작) ==> 동사적 개념

  • 클래스 구성 : 클래스 헤더, 멤버변수, 멤버메서드, 생성자

  • 클래스 이름 : 반드시 첫 글자는 대문자로 작성(식별자)

  • 형식)

      [접근제한] class 클래스이름{
           멤버변수;
           생성자();
           멤버메서드();
      }
  • 객체마다의 속성과 기능에 차이가 있기 때문에 heap에 객체마다 각기 다르게 저장이 됨 ==> 객체를 만들면 heap에 저장

*사진참고 (출처 : TCP School / https://datamoney.tistory.com/177)




============================코드============================

public class ClassExam_01 {
	
	/*
	 * 멤버변수는 초기값을 설정하지 않으면 JVM이
	 * 객체 생성 시점에 해당 데이터 타입(자료형)에 맞게
	 * 알아서 해당 자료형의 default(기본) 값을 설정을 해줌
	 */
	
	int num;           // 멤버변수 - 전역변수 (class 내에서는 어디든지 사용 가능)
	String str;        // 멤버변수 - 전역변수
	
	
	void display() {  // 멤버메서드
		
		int su = 10;  // 지역변수
		
		System.out.println("멤버변수(num) >>> " + num);
		System.out.println("멤버변수(str) >>> " + str);
		System.out.println("지역변수(su) >>> " + su);
		
	} // display() 메서드
	

	public static void main(String[] args) {
		
// 클래스를 대상으로 객체를 만드는 과정이 필요하다!  (설계를 바탕으로 만드는 느낌)
// 1단계 : 클래스 선언
//         형식) 클래스 이름 참조변수(클래스별칭/별명);
		// ClassExam_01 exam;    // exam;이 참조변수!
		
// 2단계 : 클래스를 메모리(heap)에 생성
//        형식) 참조변수(클래스별명) = new 클래스이름();
		// exam = new ClassExam_01();
		
// 1단계 + 2단계 : 클래스 선언 및 클래스 메모리 생성
		ClassExam_01 exam = new ClassExam_01();  // ==> heap메모리에 만들어진 ClassExam의 시작 주소값
		
		System.out.println("exam >>> " + exam);
		
// 3단계 : 참조변수를 이용하여 객체에 접근
//        객체에 접근 시 .(도트)를 이용하여 접근
		exam.display();      // 멤버변수는 초기값을 설정하지 않아도 됨 JVM에서 자동으로 초기값 설정함
		
		System.out.println();
		
		exam.num = 147;      // 초기값 설정
		exam.str = "홍길동";  // 초기값 설정
		
		exam.display();
		
		System.out.println();
		
		ClassExam_01 exam2 = new ClassExam_01();  // ==> 객체를 또 생성 가능(ex) 자동차 설계도라면 여러 자동차를 만들 수 있음)
		
		System.out.println("exam2 >>> " + exam2);  // ==> exam과 다른 주소값 (heap 안에 또 다른 공간이 생성됐단 뜻)
		
		exam2.num = 279;
		exam2.str = "세종대왕";
		
		exam2.display();
		
	} // main() 메서드 end

}  // CalssExam_01 클래스 end

============================실행============================





**어려웠던 점
-뭐가 뭔지 알 거 같긴 한데 모르겠닼ㅋㅋㅋㅋ.. 클래스 내에 선언한 멤버변수는 메서드나 main()에서나 다 활용할 수 있다는 것을 기억하자..

0개의 댓글