Language/JAVA

[JAVA] 클래스와 객체

nineil91 2021. 2. 4. 17:35

객체 지향 프로그래밍과 클래스

객체 : 자신의 속성을 가지고 있으며 식별 가능한것. 객체는 속성과 동작으로 이루어져 있는데 자바에서 속성은 필드라고 하고 동작은 메소드라고 한다. 

 

객체 간의 관계

1. 집합 관계 : 객체 중 하나는 부품이고 하나는 완성품에 해당한다.

2. 사용 관계 : 객체 간의 상호작용을 말한다.

3. 상속 관계 : 상위(부모)객체를 기반으로 하위(자식)객체를 생성하는 관계를 말한다.

 

클래스

자바에서는 설계도가 클래스이다. 클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어있다. 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스라고 한다. 

객체를 표현할때 클래스의 이름과 속성이 필요하다. 예를들어 Student라는 객체를 생성하고 싶다면 학번, 이름, 학년, 전공 등등이 속성이 될 수 있는 것이다. 속성을 클래스 내부에 변수로 선언하고 이를 '멤버 변수'라고 부른다.

(접근 제어자) class 클래스 이름{
	멤버 변수;
    메서드;
}

다음과 같은 문법으로 한다. 학생 클래스를 만들어보자.

package clAndOb;

public class Student {
	int studentID;
	String studentName;
	int grade;
	String address;

}

클래스를 이름 짓는 개발자 간의 규칙이 있다. 클래스의 이름은 대문자로 시작하게 한다. 단어가 바뀔때는 띄어쓰기 대신 대문자로 표기한다.

+) public 접근 제한자 : 파일 이름과 동일한 이름의 클래스 선언에만 붙일 수 있다. 또, 가급적 소스 파일 하나당 동일한 아름의 클래스 하나를 선언하는것이 좋다.

 

클래스 살펴보기

클래스 속성을 구현하는 멤버 변수 

멤버변수는 다음과 같이 객체가 가지는 속성을 변수로 선언한 것이다. 

 

클래스 기능을 구현하는 메서드

package clAndOb;

public class Student {
	int studentID;
	String studentName;
	int grade;
	String address;
	
	public void showStudentInfo() {
		System.out.println(studentName + "," + address);
	}

}

Student라는 클래스에 showStudentInfo()를 추가하였다.

 

클래스의 구성 멤버

 

 

필드

: 객체의 데이터가 저장되는 곳

 

 

생성자

: 객체 생성 시 초기화 역할 담당

 

 

메소드

: 객체의 동작에 해당하는 실행 블록

 

 

패키지

필드

: 객체의 고유 데이터, 객체가 가져야 할 부품, 객체의 현재 상태 데이터를 저장하는 곳이다.

필드 선언

타입 필드 [= 초기값];

필드 사용

여러 가지 타입의 필드가 어떤 값으로 자동 초기화 되는지 확인하는 코드.

생성자

생성자 : new 연산자로 클래스로부터 객체를 생성할때 호출되어 객체의 초기화를 담당한다.

객체 초기화 : 필드를 초기화 하거나 메소드를 호출해서 객체를 사용할 준비를 하는것을 말함.생성자를 실행하지 않고는 클래스로부터 객체를 만들 수 없다. new 연산자에 의해 생성자가 성공적으로 실행되면 힙 영역에 객체가 생성되고 객체의 번지가 리턴된다. 리턴된 객체의 번지는 클래스 변수에 저장된다.

기본 생성자

모든 클래스에 생성자가 반드시 존재한다. 생성자는 하나 이상 가질 수 있다. 

[public] 클래스 (){ }

생성자 선언

클래스{ 매개변수선언, ... } {
	//객체의 초기화 코드
}

필드 초기화

필드는 클래스로부터 객체가 생성될 때 기본 초기값으로 자동 설정된다. 만약 다른 값으로 초기화 하고 싶다면 두가지 방법이 있다.

① 필드를 선언할 때 초기값을 준다. ② 생성자에서 초기값을 준다.

필드를 선언할 때 초기값을 주게 되면 동일한 클래스로부터 생성되는 객체들은 모두 같은 값을 가지게 된다.

생성자에서 필드 초기화

 

매서드 

매서드는 자바에서 보통 함수를 칭하는데 자세히는 클래스기능을 구현하는 것을 메서드 라고 한다.

함수

"하나의 코드를 수행하는 일련의 코드"

함수에는 입력과 반환이 있다. 

int add(int num1, int num2){
	int result;
   	result = num1 + num2;
    return result;
}

덧셈 기능을 수행하는 함수를 선언한 것이다. 

 

위 코드에서 add(num1, num2)의 num1과 num2는 매개변수로서 선언된 값이 함수에 대입되어 n1과 n2는 각각 10과 20으로 되는 것이다.

클래스 기능을 구현하는 메서드

 

new 예약어로 클래스 생성하기

Student studentJin = new Student();

 

'Language > JAVA' 카테고리의 다른 글

[JAVA] 예외처리  (0) 2021.10.17
[JAVA] 상속  (0) 2021.02.26
[JAVA] 생성자  (0) 2021.02.26