-
Java | Abstraction 추상화 & Class 개요 및 생성JAVA/JAVA 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를 작성하는 것이 좋다고 합니다.
'JAVA > JAVA' 카테고리의 다른 글
Java | str.equals() & str.contentEquals() 비교 (0) 2020.01.21 Java | Object 개요 & 생성, 사용 (0) 2020.01.20 Java | OOP(객체 지향 프로그래밍) 개요 & Method (0) 2020.01.20 Java | 탈출문 Break, Continue (0) 2020.01.17 Java | 반복문_While, Do~While문 (0) 2020.01.17 - 핵심 클래스를 찾아서 파일명으로 부여