[Java] 클래스 기본개념
자바는 객체 지향 프로그래밍(OOP, Object-Oriented-Programming)이다.
객체 지향 프로그래밍은 모든 데이터를 객체로 취급한다.
객체란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별이 가능한 것이다.
객체 지향 프로그래밍 특징
1. 캡슐화
객체의 필드, 메서드를 하나로 묶고, 실제 구현 내용을 감추는 것이다.
외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메서드만 이용 가능하다.
2. 상속
상속은 부모가 가지고 있는 재산을 자식에게 물려주는 것을 말한다.
OOP에서 부모 역할의 객체가 자식 역할의 객체에게 필드와 메서드를 물려줄 수 있다.
상속을 받아서 쉽고 빠르게 객체를 설계할 수 있다.
3. 다형성
같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질
객체는 부품화가 가능하다.
클래스는 자바에서 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용한다.
클래스를 이용하여 객체를 생성을 한다.
필드와 메서드로 구성되어있다.
클래스선언 |
작성 규칙 | 예 | |
1 | 하나 이상의 문자로 이루어져야 한다. | Calculator , Sport |
2 | 첫 번째 글자는 숫자가 올 수 없다. | Sport (o) , 3Sport(x) |
3 | '$','_' 외의 특수 문자는 사용할 수 없다. | &Sport, _Sport, !Sport(x) |
4 | 자바 키워드는 사용할 수 없다. | 예약어 |
클래스의 구성 멤버
구성 멤버에는 필드, 생성자, 메서드 가 있다.
필드 = 객체의 데이터가 저장되는 곳
생성자 = 객체 생성 시 초기화 역할 담당
메서드 = 객체의 동작에 해당 하는 실행 블록
class className{
//필드
int fielName;
//생성자
className(){
}
//메소드
void methodName() {
}
}
|
cs |
필드
객체의 고유 데이터이다.
필드의 선언 형태는 변수와 비슷하지만, 필드를 변수라고 부르지 않는다.
생성자와 메소드 전체에서 사용되며 객체가 소멸되지 않는 한 객체와 함께 쓰인다.
생성자
new 연산자로 호출되는 특별한 중괄호 { } 블록이다.
최기화 담당이며 메서드와 비슷하게 생겼지만, 리턴타입이 없다.
생성자는 꼭! 클래스이름으로 생성한다.
메소드
어떠한 특정 작업을 수행하기 위한 명령문의 집합이다.
외부로부터 매개 값을 받을 수 도 있고, 실행 후 어떤 값을 리턴할 수도 있다.
간단한 클래스 예제 |
|
//클래스
class Car{
//필드 생성
String company;
String model;
String color = "검정";
int speed;
int oil;
//생성자 생성
public Car(String company, String model) {
this.company=company;
this.model=model;
}
//메소드 생성
public void runCar(int oil, int speed) {
this.oil=oil;
this.speed=speed;
System.out.println(oil+"m충전하였습니다.");
System.out.println(speed+"km로 달립니다.");
}
}
public class TTESST {
public static void main(String[] args) {
//객체생성
Car c1 =new Car("현대","제네시스");
System.out.println(c1.company);
System.out.println(c1.model);
System.out.println(c1.color);
c1.runCar(5, 100);
}
}
|
cs |
|
현대
제네시스
검정
5m충전하였습니다.
100km로 달립니다.
|
cs |
클래스라는 설계도를 이용하여 메인에 객체를 생성한다.
클래스를 이용하여 활용에 따라 여러 개의 객체 생성이 가능하다.