상세 컨텐츠

본문 제목

자바 기본 [클래스와 데이터]

자바 기초

by jjrroo 2024. 3. 7. 19:41

본문

[클래스]

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

- ex) Student,User,MemberSevice

 

코드를 먼저 살펴본다면

package class1;
 public class Student {
     String name;
	 int age;
	 int grade; 
     }

 

 class 키워드를 사용해 학생 클래스 (Student)를 정의 한다.

 학생 클래스는 내부에 이름( `name` ), 나이( `age` ), 성 적( `grade` ) 변수를 가지게된다.

 

- 이렇게 정의한 변수들을 멤버 변수 or 필드라고 부르게 된다.

1. 멤버변수(Member Variable): 이 변수들은 특정 클래스에 소속된 멤버이기 때문에 부른다.

2.필드(Field): 데이터 항목을 가리키는 전통적인 용어이고, 데이터 베이스, 엑셀등에서 데이터 각각의 항목을 필드라고 한다.

# 자바에서 멤버변수와 필드는 같은 뜻이다. 클래스에 소속된 변수를 뜻하게된다.

 

package class1;
 public class ClassStart3 {
     public static void main(String[] args) {
	  Student student1; student1 = new Student(); student1.name = "학생1"; student1.age = 15; student1.grade = 90;

	  Student student2 = new Student(); student2.name = "학생2"; student2.age = 16;
	  student2.grade = 80;

	  System.out.println("이름:" + student1.name + " 나이:" + student1.age + " 성 적:" + student1.grade);
	  System.out.println("이름:" + student2.name + " 나이:" + student2.age + " 성 적:" + student2.grade);

} }


**실행 결과** ```
이름:학생1 나이:15 성적:90 이름:학생2 나이:16 성적:80

 

클래스 사용자 정의 타입 )

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

- int라 하면 정수 타입 , String이라 하면 문자 타입이다. 이처럼 학생(Student)라는 타입을 만든것이다. 

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

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

- 클래스를 통해 사용자가 원하는 종류의 데이터 타입을 마음껏 정의가 가능하다.

 

 용어가 클래스, 객체, 인스턴스가 있다면 클래스는 설계도이고 이 설계도를 기반으로 실제 메모리에 만들어진 실체를 객체or인스턴스라 한다. (둘다 같은 의미이다.)

위 코드로 예시를 들자면 학생(Student)클래스를 기반으로 학생1(stundent1),학생2(stundent2) 객체(인스턴스)를 만들었다.

 

코드를 자세히 분석하자면

1. 변수 선언 

Student student1

- Student타입을 받을수 있는 변수를 선언하여 Student는 student타입의 객체(인스턴스)를 받을수 있다.

2. 객체 생성

student1 = new Student()

-여기서 new Student(): Student 클래스 정보를 기반으로 새로운 객체를 생성하란 뜻. 이렇게 하면 메모리에 실제 Student객체(인스턴스가 생성된다.)

3. 참조값 보관

-new 키워드를 통해 객체가 생성되고 나면 참조값을 반환한다.

-객체 생성시 자바는 메모리 어딘가에 있는 객체에 접근할수 있는 참조값(주소)(x001)을 반환한다.  //여기서 (x001)은 예시이다.

-student1 변수는 객체에 접근할수 있는 참조값(x001)을 다지게 된다.  결과적으로 student1변수를 통해 실제 객체에 접근하고 사용이 가능하다. 

 

객체사용)

클래스를 통해 생성한 객체를 사용하기 위해선 먼저 메모리에 존재하는 객체에 접근해야한다.

객체에 접근을 위해서 .(점,dot)을 사용하면 된다.

 

//객체 값 대입
student1.name = "학생1";
student1.age = 15; 
student1.grade = 90;

//객체 값 사용
System.out.println("이름:" + student1.name + " 나이:" + student1.age + " 성적:" +student1.grade);

 

 

정리 )

객체-Object

객체는 클래스에서 정의한 속성과 기능을 가진 실체이다. 객체는 서로 독립적인 상태를 가진다.

 

인스턴스-Instance

인스턴스는 특정 클래스로부터 생성된 객체를 의미한다.

객체와 인스턴스는 둘다 클래스에서 나온 실체라는 의미는 같기때문에 보통 둘을 구분하지 않고 사용한다.