클래스(class)는 객체지향 프록래밍의 기반이다. 객체지향 프로그래밍은 클래스를 선언하고 정의하는 것부터 시작한다. 클래스는 객체의 속성, 특성을 정의하고 또한 그 객체가 지원하는 기능을 정의해놓은 것이라 할 수 있다. 즉 객체는 클래스를 정의함으로 만들어진다.
1. class의 속성 : 멤버 변수
사람이라는 객체를 만들려 한다.
객체의 속성으로는 나이, 이름, 주소가 있다고 해보자. 이를 클래스로 구현하려면 다음과 같이 하면 된다.
package classpart;
public class Person {
//멤버 변수
int age;
String name;
String address;
}
클래스의 속성은 클래스 내부에 변수로 선언한다. 클래스의 속성을 '멤버 변수' 라고 부른다.
참고로 자바는 객체지향 언어 답게 모든 요소가 클래스 내부에 온다. 클래스 외부에 올 수 있는것은 package 선언과 외부 라이브러리를 가져오는 import 선언밖에 없다.
이렇게 만들어진 클래스는 하나의 또다른 자료형이 될 수 있다. 사실 String자료형 역시 자료형은 int, double과 같이 자바가 기본적으로 지원하는 자료형이 아니고 우리가 컴퓨터에 설치한 JDK에서 지원하는 하나의 클래스이다.
이처럼 하나의 클래스로 이루어진 자료형을 참조 자료형이라고 하며 뒤에서 자세히 다룰 것이다.
2. class의 기능 : 메소드
클래스는 멥버 변수 뿐만 아니라 클래스가 수행하는 기능이 정의된 메소드(method)를 가질 수 있다. 이름을 개명한다던지, 밥을 먹는다던지 하는 기능을 수행하는 메소드를 정의해보겠다.
package classpart;
public class Person {
// Person 클래스의 속성
int age;
String name;
String address;
// 밥먹기 메소드
public void eatMeal() {
System.out.println("냠냠쩌쩝쩝");
}
// 이름 바꾸기 메소드
public void changeName(String newName) {
this.name = newName;
}
}
이처럼 클래스의 기능을 구현한 것을 메소드 혹은 멤버 함수라고 부르는데, 주로 메소드라고 부른다.
3. 패키지
패키지란 클래스 파일들의 묶음이다. 어떠한 프로젝트를 일정한 기준으로 클래스 파일들을 분류하여 하나의 패키지에 넣어놓고 관리할 수 있다.
패키지를 사용해서 프로젝트의 계층 구조를 효율적으로 잘 구성해야 프로젝트의 관리와 유지보수가 편리해진다.
위에서 정의한 클래스는 Person이라는 이름을 가지고 있다. 사실 Person의 풀 네임은 classpart.Person이다. 같은 패키지 내에서는 패키지 명을 생략할 수 있어서 그렇게 한 것이었다.
따라서 클래스 이름이 같더라도 다른 패키지에 있으면 풀네임이 다르므로 서로 연관이 없는 완전히 다른 클래스이다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
(Java) 16 - 인스턴스 (0) | 2020.05.17 |
---|---|
(Java) 15 - 메소드 (0) | 2020.05.17 |
(Java) 13 - 객체 지향 프로그래밍이란 (0) | 2020.05.17 |
(Java) 12 - 조건문(3) - switch (0) | 2020.05.17 |
(Java) 11 - 조건문(2) - 조건 연산자 (0) | 2020.05.17 |