공부/Java

자바 클래스

Stair 2024. 8. 27. 20:10
반응형

자바 세상은 클래스와 객체로 이루어져 있다. 그만큼 클래스와 객체라는 개념은 중요하다.

 

 

 

위와 같은 코드는 한가지 문제점이 있다.

학생이 추가되면 추가될 수록 일일히 하나씩 만들어야 한다는 점이다.

이러한 문제를 배열을 사용하여 사용하여 다음과 같이 간소화 시킬 수 있다.

 

 

 

 

하지만 이와 같이 코드를 최소화 시킨 것도 문제점이 존재한다.

한 학생의 데이터가 studentNames[], studentAges[], studentGrades[]라는 3개의 배열에 나누어져 있다.

따라서 데이터를 변경할 때 매우 유의해야 한다.

 

컴퓨터 입장에서는 문제 없지만 사람이 관리하기에는 좋은 코드가 아니다.

 

이러한 문제점을 클래스를 도입하여 해결할 수 있다.

 

class 키워드를 사용하여 학생 클래스를 정의한다. 학생 클래스는 이름, 나이, 성적 변수를 가진다.

 

이렇게 클래스에 정의한 변수들을 멤버 변수, 또는 필드라 한다.

멤버 변수 : 이 변수들은 특정 클래스에 소속된 멤버이기 때문에 이렇게 부른다.

필드 : 데이터 항목을 가르키는 전통적인 용어이다.

 

클래스는 관례상 대문자로 시작하고 낙타 표기법을 사용한다.

 

 

타입은 데이터의 종류나 형태를 나타낸다.

int라고 하면 정수 타입, String이라고 하면 문자 타입이다.

Student라는 타입을 만들 수 있지 않을까?

클래스를 사용하면 int, String과 같은 타입을 직접 만들 수 있다.

사용자가 직접 정의하는 사용자 정의 타입을 만들려면 설계도가 필요하다. 이 설계도가 바로 클래스이다.

 

설계도인 클래스를 사용해서 "실제 메모리에 만들어진 실체"를 객체 또는 인스턴스 라고 한다.

 

즉 위와 같은코드에 객체(인스턴스)는 student1, student2 총 두개가 있는 것이다.

 

클래스 : 설계도

객체, 인스턴스 : 클래스를 사용하여 실제로 만들어진 것

 

student1 = new Student() 코드를 나누어 분석하면 아래와 같다.

1. 객체를 사용하려면 먼저 설계도인 클래스를 기반으로 객체를 생성해야한다.

2.  new Student()의 new는 새로 생성한다는 뜻이다. new Student() 는 Student 클래스 정보를 기반으로 새로운 객체를 생성하라는 뜻이다. 이렇게 하면 메모리에 실제 Student 객체를 생성한다.

3. 객체를 생성할 때는 new  클래스명()을 사용하면 된다. 마지막에 ()도 추가해야한다.

4. 객체를 생성하면 자바는 메모리 어딘가에 있는 이 객체에 접근할 수 있는 참조값(주소)를 반환한다. ex)0x0100와 같은 주소

new Student가 0x0100이 되어 student1 = 0x0100이 된다고 생각하면 된다.

 

** new Student 코드 자체에는 아무런 이름이 없다. 이 코드는 단순히 Student 클래스를 기반으로 메모리에 실제 객체를 만드는 것이다. 따라서 생성한 객체에 접근할 수 있는 방법이 필요하다.

*왜 new인가? -> 그냥 객체를 새로 만들라는 뜻이다.

반응형

'공부 > Java' 카테고리의 다른 글

자바 클래스에 배열 도입하기  (0) 2024.08.27
자바 클래스, 객체, 인스턴스 정리  (0) 2024.08.27
자바 메서드 관련 정리  (0) 2024.08.27
자바 은행 입출금 예제  (0) 2024.08.27
자바 메서드 오버로딩  (0) 2024.08.26