본문 바로가기

프로그래밍(코딩)/JAVA(이클립스)

Java 독학하기-(11) 자바 언어의 클래스와 객체(2) 알아보기

반응형

'Java 독학하기-(11) 자바 언어의 클래스와 객체(2) 알아보기'

 

 

요즘 학업으로 인해 바빠 늦게나마 정리하게 되었네요. ㅜㅜ 저번 글에 이어서 이번에도 자바 프로그래밍 언어에서의 클래스와 객체에 대해 알아보겠습니다. 이번 글에서도 역시 중요한 부분들이 많기 때문에 집중해서 잘 정리해보도록 하겠습니다.

 

 


 

클래스 안에 main 함수 선언

 

우선 먼저 'main 함수'에 대해 알아보겠습니다.

 

main() 함수: 자바 가상 머신(JVM : Java Virtual Machine)이 프로그램을 시작하기 위해 호출하는 함수

 

-클래스 내부에 만들지만 클래스의 메서드 X (클래스 내부에 main() 함수를 만들 시 시작 클래스가 됨)

-클래스 내부에 main() 함수 생성 or 외부에 테스트용 클래스를 만들어 main() 함수 생성

 

 

 

그럼 외부에 테스트용 클래스를 만드는 방법에 대해서도 알아보겠습니다.

 

 

 

패키지는 서로 통일, 그리고 main() 함수 생성 체크하기
//TODO~~ 부분은 삭제하고 코드 작성
StudentTest 클래스 생성

 

이렇게 외부에 테스트용 클래스를 만들어 main() 함수 생성하여 StudentTest 클래스를 만들어보았습니다.

 

이렇게 하면 다른 클래스에 꼭 main() 함수를 포함하지 않게 되어 깔끔하게 실행 결과를 확인할 수 있습니다.

 

 


 

new 예약어를 이용해 2개의 인스턴스를 생성

 

다음으로 알아볼 내용은 바로 new 예약어입니다.

 

클래스를 생성하는 기본 형식 :

클래스형 변수이름 = new 생성자;

 

(클래스가 생성된다는 것 = 클래스를 실제로 사용할 수 있도록 메모리 공간(힙 메모리)를 할당받는다는 것)

 

인스턴스: 실제로 사용할 수 있도록 생성된 클래스

참조 변수: 인스턴스를 가리키는 클래스형 변수

 

 


 

 

studentAhn.studentName = "안연수";
System.out.println(studentAhn.studentName); //멤버 변수로 출력
System.out.println(studentAhn.getStudentName( )); // 메서드로 출력

 

1. 참조 변수로 멤버 변수에 해당하는 이름을 바로 출력할 수도 있고, 혹은 2. 참조 변수로 멤버 변수에 이름을 저장하고 getStudentName() 메서드를 사용해 출력할 수도 있습니다. 이때 출력 값은 당연히 서로 같습니다.

 

 


 

참조 값 출력

 

위 코드를 보면 student1, student2 총 인스턴스 2개를 생성하였는데요, 각 클래스가 생성될 때마다 인스턴스는 다른 메모리 공간을 차지합니다. (이로 인해 '클래스에 선언한 멤버 변수' = '인스턴스 변수'라고도 부름)

 

 

***

 

'힙 메모리' = 힙(heap)은 프로그램에서 사용하는 동적 메모리 공간을 의미. 즉, 객체가 생성될 때 사용하는 메모리 공간

 

참조 변수는 힙 메모리에 생성된 인스턴스를 가리킨다.

(참조 변수에 힙 메모리에 생성된 인스턴스의 메모리 주소가 저장됨)

 

참조 값은 생성된 인스턴스의 메모리 주소 값을 의미

 

 

 

출력 결과: 클래스명@주소 값(해시 코드)

 

ex)

참조 변수 = student1

참조 값 = 44c8afef

 

***

 


 

* * * * *

자바 프로그래밍 언어 용어 정리

* * * * *


 

 

 

이렇게 자바 프로그래밍 언어의 클래스와 객체에 대해 알아보는 두 번째 글을 정리해보았습니다. 앞으로 클래스와 객체에 대한 내용이 꽤 많이 남아있기 때문에 시간 관리를 잘해서 계속 꾸준히 자바 언어를 공부하여 정리할 수 있도록 노력해야겠습니다. ^^

 

 

 

 

 

 

 

 

 

 

 

추천하는 글

 

 

KAIST 사이버영재교육 C언어 수업 참여 후기, 올해도 이어서 수강!

'KAIST 사이버영재교육 C언어 수업 참여 후기, 올해도 이어서 수강!' 저는 프로그래밍을 전문적이고, 효과적으로 배워보고 싶어 작년부터 KAIST 사이버영재교육 C언어 수업을 신청하여 듣고 있었는

anywhereifyoucan.com

 

 

애플 아이패드 에어4, 애플펜슬 2세대 구입, 개봉기 및 간단 사용 후기

'애플 아이패드 에어4, 애플펜슬 2세대 구입, 개봉기 및 간단 사용 후기' 몇 년 전부터 아이패드 6세대 모델을 계속 사용하던 중, A10 프로세서라 그런지 성능 저하가 직접 체감이 될 정도였고, 사

anywhereifyoucan.com

 

반응형