클래스는 왜 나왔을까?
클래스는 객체지향 프로그래밍 (OOP, Object-Oriented Programming)의 핵심개념 중 하나로, 클래스의 등장은 프로그래밍언어의 발전과정에서 중요한 이정요였다. 클래스는 여러가지 이유로 도입되었다.
- 코드 재사용성 : 클래스를 사용하면 동일한 코드를 반복해서 작성하지 않고, 클래스를 통해 정의한 기능을 다른 객체에서 재사용할 수 있다. 이는 코드의 길이를 줄이고, 유지관리를 용이하게 한다.
- 추상화 (Abstraction) : 클래스를 사용하면 실세계의 개념을 소프트웨어 내 추상화시켜 모델링할 수 있다. 예를 들어, '고양이'라는 클래스를 정의하고, 이 클래스에 '이름', '나이', '색상' 과 같은 속성과 '먹다','달리다','자다'등의 행동을 정의할수 있다.
- 캡슐화 (Encapsulation) : 클래스는 사용하면 관련된 데이터와 그 데이터를 조작하는 메서드를 하나의 단위로 묶는 것이 가능해진다. 이는 정보의 노출을 최소화하고, 코드의 안정성을 높이는데 도움이된다.
- 다형성 ( Polymorphism) : 클래스를 사용하면 한 인터페이스에서 여러 형태의 구현을 제공할 수 있다. 이를 튜ㅗㅇ해 코드의 유연성과 확장성이 증가한다.
- 상속 (Inheritance) : 클래스를 사용하면 한 클래스가 다른 클래스의 특성을 상속받아 사용할 수 있다. 이를 통해 코드의 재사용성이 높아지고, 더 복잡한 데이터 타입을 쉽게 만들 수 있다.
따라서 클래스는 소프트웨어 개발의 복잡성을 관리하고, 코드의 효율성, 안정성, 유지 보수성을 향상시키는데 중요한 도구이다.
클래스 만들기
class Cat {
// [1] : 속성(특징)
int price; //가격
int year; //연식
String color; //색상
// [2] : 동작/기능/행동(method)
void action1() {
System.out.println("먹다");
}
void action2() {
System.out.println("달리다");
}
void action3() {
System.out.println("자다");
}
}
public class oop_Exam002 {
public static void main(String[] args) {
// [1] : 객체생성
Cat cat = new Cat();
System.out.println("객체 주소: " + cat);
// [2] : 생성된 객체에 속성 값 입력하기
cat.price = 20000;
cat.year = 2;
cat.color = "black";
// [3] : 속성값 출력하기
System.out.println("고양이 가격 :" + cat.price);
System.out.println("고양이 나이 :" + cat.year);
System.out.println("고양이 색상 :" + cat.color);
// [4] : 동작 수행하기
cat.action3();
}
}
'Cat' 이라는 클래스를 정의하고, 이 클래스를 사용하여 'Cat' 객체를 생성하고, 이 객체의 속성을 설정하고 메서드를 호출하는 예제이다.
1. 클래스 정의 ( class Cat { ... } )
`Cat` 클래스는 세 가지 속성 (price, year, color) 과 세 가지행동을 가지고 있다.
- price, year, color : 이들은 `Cat` 클래스의 멤버 변수 이다. 이 변수들은 `Cat` 객체의 상태를 나타낸다.
- action1(), action2(), action3() : 이들은 `Cat` 클래스의 메서드 이다. 이 메서드들은 `Cat` 객체가 수행할 수 있는 행동을 나타낸다.
2. 객체생성 ( Cat cat = new Cat(); )
new 키워드를 사용하여 Cat 클래스의 새로운 인스턴스를 생성하고, 이 인스턴스의 참조를 `cat` 변수에 저장한다.
3. 속성 값 설정
생성된 `cat` 객체의 price, year, color 속성 값을 설장한ㄷ.
4. 속성 값 출력
생성된 `cat` 객체의 price, year, color 속성 값을 출력한다.
5. 메서드 호출 ( cat.action3(); )
`cat` 객체의 action3() 메서드를 호출하여 "자다" 라는 메세지를 콘솔에 출력한다.
위 코드를 실행하면 다음과 같은 출력값이 나온다.
객체 주소: java100.part1.ex01.Cat@15db9742
고양이 가격 :20000
고양이 나이 :2
고양이 색상 :black
자다
이 예제코드는 객체지향 프로그래밍의 기본적인 원리이며, 클래스는 객체의 속성과 행동을 정의하며, 객체는 클래스에 정의된 속성과 행동을 가진 인스턴스이다.
'Java > JAVA 100 문제 풀이' 카테고리의 다른 글
자바 part.3 문제풀이 - Integer.parseInt(string, radix) 진수변환 (0) | 2023.07.24 |
---|---|
자바 part.3 문제풀이 - 문자열을 숫자로 변환하는방법 (0) | 2023.07.23 |
자바 part.3 문제풀이 - 클래스개념,정의 (0) | 2023.07.21 |
자바 part.3 문제풀이 - TwoReturn2 (0) | 2023.07.20 |
자바 part.3 문제풀이 - TwoReturn1 (0) | 2023.07.20 |