Java 기초 실습을 마치고 다음 단원으로 넘어가 객체지향 프로그래밍을 배우기 위한 첫시간으로 객체지향 프로그래밍과 클래스에 대해 알아보도록 하겠습니다.

 


객체란?

객체 (object)

 

  • 객체는 '의사나 행위가 미치는 대상'이라는 사전적 의미를 가지고 있습니다.
  • 자바에서는 하나의 역할을 수행하는 메소드와 변수의 묶음 혹은 단위라고 볼 수 있고 클래스라는 형태로 묶이게 됩니다.
  • 사람, 자동차와 같은 명사형의 객체도 있지만 주문, 생산, 관리와 같은 동사형의 객체도 존재합니다.

 

객체지향프로그래밍이란?

절차지향 프로그래밍과 객체지향프로그래밍

 

절차지향프로그래밍( Procedural Programming)

  • 초기 프로그래밍 방식으로 시간이나 사건의 흐름에 따라 프로그램을 구현하는 방식입니다. 대표적으로 C언어가 있습니다.
  • 학교를 가는 과정을 절자지향 프로그래밍으로 표현한다면 {일어난다 > 씻는다 > 밥을 먹는다 > 버스를 탄다> 요금을 지불한다 > 학교에 도착한다}  같이 시간에 순서대로 일어나는 일을 표현합니다.
  • 프로그래밍이 복잡해짐에 따라 여러가지 절차가 시간 순서와 상관없이 교차해서 일어나는 상황을 프로그래밍하기  어렵다는 한계가 있습니다.

 

 

 

객체지향프로그래밍(Object Oriented Programming : OOP)

  • 객체를 기반으로 하여 객체를 정의하고 객체의 기능을 구현하며 객체간의 협력(상호작용)을 통해 프로그램을 구현하는 방식입니다.
  • 학교를 가는 과정을 객체지향 프로그래밍으로 표현한다면 다음 그림과 같습니다.

  • 학생, 밥, 버스, 학교 같이 객체를 정의하고 학생-밥, 학생-버스 사이의 연관관계를 프로그래밍하는 것이 객체지향 프로그래밍이라고 할 수 있습니다.
  • 객체간의 관계를 자유롭게 구성할 수 있기 때문에 시간순서에 상관없이 프로그램을 구현할 수 있습니다.

클래스?

  • 객체라는 추상적인 개념을 코드화 한 것을 클래스라고 합니다. 객체 지향 프로그래밍의 가장 기본적인 요소로 청사진(blue print)라고도 부르기도 합니다.
  • 클래스에는 객체의 속성과 기능을 표현하는 변수와 메소드를 포함합니다.

멤버변수, 메서드

멤버변수

  • 클래스 안에서 선언되는 변수를 멤버 변수라고 하며 객체가 가지는 속성을 표현는데 사용됩니다.
  • 예를 들어 사람이라는 객체는 나이, 성별, 직업, 키 등 여러가지 속성을 가질 수 있고 그 필요한 속성을 변수로 선언하여 사용 하는 것 입니다.
  • member variable , property, attribute 으로 표현합니다.

메서드

  • 객체안에서 사용하는 함수로 객체가 제공하는 기능을 구현하는데 사용합니다.
  • method, member function

클래스 정의하기

클래스를 직접 정의해보며 배운내용들을 확인해 보겠습니다.

 

조건에 맞게 학생에 대한 클래스를 구현해 보세요.

 

조건

  • 학생이 있습니다
  • 학생은 학번, 이름, 주소 값을 가집니다.
  • 학생의 정보를 보여줍니다.
  • 학생에 대한 클래스를 구현해보세요
 package classpart;

public class Student {

class ABCD{
	}
}
  • public class Student 에서 Student는 클래스명으로 .java파일명과 동일해야 합니다. Studenta라고 입력하면 오류가 발생합니다
  • clas ABCD와 같이 class내에 여러 class를 만들 수 있지만 public class는 class안에 한 개만 작성할 수 있습니다.
public class Student {

	public int studentID;
	public String studentName;
	public String address;
}

 

  • 학생의 여러가지 속성 중 우리가 필요한 학번, 이름 주소를 변수(멤버 변수)를 선언해 줍니다. 
  • String은 자바에서 제공하는 클래스로 Char[]를 대체하여 문제열을 표현할때 사용합니다.
  • public이란 키워드는 접근제어자라고 하며 4가지 종류가 있다고 알아두고 뒤에 더 자세히 배우도록 하겠습니다. 
	public void showStudentInfo(){
		System.out.println(studentName +","+ address);
		
	}
  • 학생의 정보를 보여주는 기능을 표현하기 위해 showStudentInfo메서드를 작성합니다
  • 메서드는 void는 결과값 자리로 현재는 결과값이 없기 때문에 void로 비우둡니다.
  • showStudentInfo()는 메서드의 이름을 지정해주는 것이고 괄호안에는 매개변수(입력값)가 들어갈 수 있습니다.

클래스 사용하기

작성한 클래스를 사용하기 위해 클래스를 생성하고 클래스의 속성과 메서드를 참조해주어야 합니다. 

public class StudentTest {

	public static void main(String[] args) {

		Student studentLee = new Student();
		studentLee.studentName = "이순신";
		studentLee.address = "서울";
		
		studentLee.showStudentInfo();
        
        //결과값
        이순신,서울
	}

}
  • Student class를 테스트하기 위한 StudentTest class를 만들고 main을 작성합니다. 
  • Student class를 사용하기 위해 Student studentLee = new Student(); 생성자를 작성해 class를 생성해줍니다. class를 생성을하게 되면 메모리가 할당되고 사용가능 하게 되는데 이과정에 대해서는 뒤에 더 자세히 배워 보겠습니다.
  • studentLee. 을 작성하면 선택박스에 우리가 작성해놓은 변수들과 메소드가 뜨게 되는데 그것을 '참조'한다라고 합니다. 그 중 studentName과 address를 참조해 각각의 값을 대입해줍니다.
  • 마지막으로 showStudentInfo메소드를 작성하고 실행을 해보면 결과 값이 나오는 것을 확인할 수 있습니다.

 

 

 

 

+ Recent posts