JAVA/JAVA
Java | Abstraction 추상화 & Class 개요 및 생성
pathas
2020. 1. 20. 17:44
추상화 Abstraction
기본 자료형으로는 저장할 수 없어서 새로운 자료형(객체)이 필요할 때 그것의 설계도(클래스)를 만드는 것
※ abstract(추상 클래스)를 쓰지 않아도, Class를 만드는 것 자체를 추상화라고 함
Class
Java에서 클래스는 객체를 생성할 때 사용되는
틀(Template)이자 자료형(Data Type)객체의 속성(변수, 상수)과 기능(메서드)을 정의함
※ 자료형 중에서도 참조 자료형에 속함
→ Java에서 기본자료형을 제외한 모든 자료형은 참조 자료형에 속함
Class를 만드는 이유?
객체를 만들기 위해 클래스 생성
기본자료형만으로는 저장할 수 없는 데이터와 메서드를 따로 저장 가능한
사용자 정의 자료형을 만들기 위해서 추상화를 통한 클래스 작성
Member Variable
클래스 내부에 선언하여 객체의 속성을 나타내는 변수
Member Function_Method
클래스 내부에서 멤버 변수를 사용하여 클래스의 기능을 구현한 것
※ 클래스 없이 객체를 만들 수 없고, 클래스는 객체를 만들지 않으면 쓸모 없는 도구임
Class 파일명 작성법
- 핵심 클래스를 찾아서 파일명으로 부여
main() 메서드를 가지고 있는 클래스 - main() 메서드가 없다면, public 클래스를 파일명으로 부여
- 하나의 파일에 public클래스는 하나밖에 작성할 수 없음
- main() 메서드도 public 클래스도 없다면 어떤 것으로 작성해도 상관 없음
→ 거의 없는 경우
Class 생성 형식
class 클래스명 {
Java code; // 멤버 변수, 멤버 메서드가 포함됨
}
사용례_Car class 생성
Car.java 파일에서 Car 클래스 생성
public class Car {
String name; // 차 이름
int output; // 배기량
int year; // 년식
String color; // 차 색깔
int current_speed; // 현재 속도, int 자료형의 기본 값은 0
boolean sidong = false; // 시동 / 주차
// 1. 차 시동 걸기 -> 단순하고 반복적인 기능(매개변수 X, 반환값 X)
void startEngine() {
sidong = true; // 멤버 변수 값 저장 가능
System.out.println("시동!!"+sidong);
}
// 2. 차 속도 증가 -> 매개변수 O 반환값 X, 속도를 입력 받아서 계산, 저장
void speedUp(int speed) {
current_speed += speed;
System.out.println(speed+"km/h만큼 속도 증가!!");
}
// 3. 차 속도 감소
void speedDown(int speed) {
current_speed -= speed;
System.out.println(speed+"km/h만큼 속도 감소!!");
}
// 4. 차 정보 출력
void carInfoPrint() {
System.out.println("===차의 정보===");
System.out.println("차 이름: "+name);
System.out.println("배기량: "+output);
System.out.println("색깔: "+color);
System.out.println("현재 속도: "+current_speed);
System.out.println("시동 상태: "+sidong);
}
// 5. 주차
void stop() {
sidong = false;
current_speed = 0;
System.out.println("주차!!");
}
}
Class의 개요와 생성 방법에 대해 간단하게 살펴보았습니다.
Class는 객체의 뼈대, 틀이라고 할 수 있고 멤버변수와 메서드를 통해 데이터와 기능을 구현할 수 있습니다.
하나의 Class로 여러 개의 객체를 생성할 수 있기 때문에 설계를 통해 Class를 작성하는 것이 좋다고 합니다.