[Java] 2_1_클래스와 객체1(1)

Haeun Noh·2022년 8월 8일
0

0808


지금까지는 그래도 어떠한 것을 배울지 감이 잡혔었는데 슬슬 얕은 지식이 떨어져 간다. 새로운 것을 배우는 것은 언제나 설레면서도 어려운 일이다. 이번에는 객체와 클래스와 간략히 패키지에 대해서도 배울 것이다. 다 들어는 봤지만 주의깊게 보지 않았던 것들이라 익숙하면서도 새로웠다. 기초를 탄탄히 다지겠다는 초심을 잃지 않으면서 정리를 시작해보겠다.



객체(object)란?

: 의사나 행위가 미치는 대상 - 사전적의미
: 구체적, 추상적 데이터 단위

객체란 기능을 하는 것을 말한다. 예를 들면 나도 기능을 하는 것이기 때문에 객체라고 할 수 있겠다. 이러한 객체를 기반으로 하는 프로그래밍을 객체지향 프로그래밍 (object oriented programming)OOP라고 한다.

이것의 반대는 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법인 절차지향 프로그래밍 (procedural programming)이다. 절차지향 프로그래밍의 대표적인 예시는 C언어이다.

절차지향 프로그래밍의 예시를 들어보자.

ex) 학교에 가는 상황
일어난다 > 밥먹는다 > 씻는다 > 옷입는다 > 버스탄다 > 요금지불한다 > 학교에 도착한다

이것은 시간에 따른 프로그래밍, 즉 순차적인 프로그래밍이라고 할 수 있겠다.


다시 객체로 돌아와서 객체의 속성과 객체의 기능에 대해서 살펴보겠다.

  • 객체의 속성
    - 객체의 특성 property
    • 속성 attribute
    • 멤버 변수 member function
  • 객체의 기능
    - 객체가 하는 기능들을 메서드로 구현
    • method, member function


클래스(class)란?

: 객체를 코드로 나타낸 것
: 객체에 대한 속성과 기능을 코드로 구현한 것

클래스에는 속성기능이 있다. 여기서 속성멤버변수로 구현하고, 기능메서드로 구현한다.
클래스는 앞서 배운 객체를 코드로 나타낸 것으로 클래스를 사용할 때는 클래스를 정의한다라고 한다.

클래스 정의하기

(접근 제어자) class 클래스 이름 {
	멤버 변수;
    메서드;
}

위와 같은 방식으로 우리는 클래스를 정의할 수 있다. 그런데 아직 클래스가 뭔지조차 감이 잡히지 않는 사람들은 예시를 하나 보고 가자.

학생 클래스를 예시로 들어보자. 클래스는 속성과 기능을 코드로 구현한 것이라고 앞에서 얘기했을 것이다. 학생의 속성은 학번, 이름, 학년, 사는 곳 등등을 예시로 들 수 있다. 학생의 기능은 수강신청, 수업듣기, 시험보기 등등 학생이 무언가를 하는 것으로 예시를 들을 수 있다. 이러한 속성과 기능들을 코드로 구현한 것이 바로 학생 클래스라는 것이다.


class의 특징

  • class는 대부분 대문자로 시작한다.

    ex) public class Student {

    위의 Student와 같이 말이다.

  • 하나의 java파일에는 하나의 클래스를 두는 것이 원칙이나, 여러 개의 클래스가 같이 있는 경우에는 public이라는 키워드를 가지는 클래스는 단 하나여야 하며, public클래스와 자바 파일의 이름은 동일해야 한다.

  • 자바의 모든 코드는 class 내부에 위치한다.

  • 외부에 있는 코드의 내용은 패키지의 정의import만 쓰고 나머지 내용들은 다 클래스 안에 존재한다.


class의 속성

클래스의 속성은 클래스의 특징을 나타낸다. property attribute라고도 하고, 자료형을 이용하여 멤버 변수로 선언한다.


class의 활용

자, 이제 클래스가 뭔지도 알았고, 정의, 특징, 속성도 알았다. 그런데 그래서 클래스를 만들고 이 클래스를 어떻게 활용해야 하는가?
이러한 의문을 가지는 사람들을 위해 클래스 활용 예시를 들어보겠다.

package classpart;

public class Student {

	int studentID;
	String studentName;
	int grade;
	String address;
		
	public void showStudentInfor() {
		System.out.println( studentName + "," + address);
	}
	public static void main(String[] args) { //이 클래스를 돌리기 위해서 만들어진 메인 메서드
		
		Student studentLee = new Student();
		studentLee.studentName = "이순신";
		studentLee.address = "서울시 서초구 서초동";
		
		studentLee.showStudentInfor();
	}
}

class의 기능

클래스의 기능은 메서드(method)로 구현할 수 있다. 멤버 함수(member function)이라고도 하고 객체가 수행하는 기능을 구현한다.



패키지(package)란?

: 소스의 묶음

패키지는 우리가 지금까지 짠 소스의 묶음이라고 할 수 있겠다. 여러 소스들을 어떠한 묶음으로 두기 위해 사용한다.

패키지의 역할은 클래스를 구별해주고, 소스 코드를 어떠한 계층 구조로 관리할지를 구성하는 것이다.



profile
기록의 힘을 믿는 개발자, 노하은입니다!

0개의 댓글