[Java] 4. 클래스와 객체

PYOUNANI·2022년 9월 29일
0

Java

목록 보기
4/14
post-thumbnail

4. 클래스와 객체

4-1. 객체지향언어의 특징


4-1-1. 절차지향언어 VS 객체지향언어

  • 절차지향언어
    함수를 기반으로 하는 언어이다. 여러 함수를 이용하여 데이터를 조작해서 큰 문제를 작은 문제로 쪼개가며 문제를 해결해내는 것이 특징이다.
  • 객체지향언어
    클래스를 기반으로 하는 언어이다. 객체들의 상호작용으로 문제를 해결해내는 것이 특징이다.

4-1-2. 객체지향언어 장점

객체지향언어 장점

  • 모듈화된 코드의 재사용 용이
  • 신뢰성이 있는 소프트웨어를 쉽게 작성 가능
  • 디버깅이 쉽움
  • 유지보수 용이

4-1-3. 클래스 VS 객체

  • 클래스
    클래스는 객체를 만들기 위한 틀이다.
  • 객체
    객체는 클래스의 구체적인 한 실례(instance)이다.
public class CircleAreaTest {
	public static void main(String[] args) {
		Circle c1 = new Circle();
        Circle c10 = new Circle();
	}
}

Circle 클래스으로부터 반지름 1인 c1 객체를 생성한 것이다.

4-1-4. 객체지향언어의 특징

객체 = 데이터(속성, 변수/상수) + 알고리즘(행위, 함수)

객체의 특징

  • 추상화
    객체들의 공통된 속성과 행위를 추출하는 것을 추상화라고 한다.
public class Circle {
	static final double PI = 3.141592;
    
    double getArea(double radius){
    	return radius * radius * PI;
    }
}

Circle 클래스를 만들고자 했을 때 c1, c10 객체를 만들다고 가정하자. 반지름빼고는 원의 넓이를 구하는 행위는 같은 속성과 행위를 이용한다. 이 공통된 특성들을 이용해서 CIrcle 클래스를 만드는 것이다.

  • 캡슐화
    클래스는 데이터와 연관된 함수를 묶어놓았기 때문에 이 연관된 특징을 캡슐화라고 한다. 이 특징을 통해 우리는 보다 쉽고 안전한 사용이 가능하다.

이외에도 많은 특징들이 있는데 이 특징들은 이후에 다뤄볼 것이다.

  • 정보은닉
  • 상속성
  • 다형성

4. 클래스와 객체

4-2. 자바 클래스의 기본 구조 및 사용


4-2-1. 기본 클래스의 구조

[접근제한][클래스종류] class <클래스 이름>

class Circle{
	double radius; //[접근제한] [클래스종류]은 꼭 명시해야 하는 것은 아니다. 
}

객체 = 데이터(속성, 변수/상수, 멤버필드) + 알고리즘(행위, 함수, 메서드)

객체의 속성을 저장하는 것이 멤버필드이다.

  • instance 멤버 필드
    객체가 생성시 별도의 메모리를 할당 받는다.
double radius;
  • static 멤버 필드
    프로그램 시작 시 메모리 할당 받는다.
static double radius;

객체가 수행할 수 있는 동작들을 메서드라고 한다.

 double getArea(double radius){
    	return radius * radius * PI;
    }

4-2-2. 기본 클래스의 사용

  • 참조 변수 선언
Circle c1;
  • 선언된 참조 변수에 객체를 생성
c1 = new Circle();
  • 멤버 접근(. 를 이용하여)
c1.radius = 1;
double area = c1.getArea();

0개의 댓글