티스토리 뷰

Goal 

 - 객체 지향 프로그래밍의 개념을 이해한다

 - 절차 지향 프로그래밍과 객체 지향 프로그래밍의 차이를 이해한다

 - 클래스와 구성요소를 이해한다

 - 클래스를 직접 구현하고 사용해본다

 

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

 - 객체 지향 프로그래밍 (Object Oriented Programming : OOP) : 객체를 기반으로 하는 프로그래밍으로, 객체를 정의하고, 객체의 기능을 구현하며, 객체간의 협력(cooperation)을 구현

 - 절차 지향 프로그래밍 ( Procedural Programming) : 시간이나 사건의 흐름에 따른 구현, C 언어 등

 

2. 객체 지향 프로그래밍과 절차 지향 프로그래밍 예시

 

2-1 절차 지향 프로그래밍

 - 프로그램이 실행되는 일련의 과정이 절차에 따라 진행됨 (시간의 흐름)

 ex) 일어난다 -> 씻는다 -> 밥을 먹는다 -> 버스를 탄다 -> 요금을 지불한다 -> 학교에도착

 

2-2 객체 지향 프로그래밍

 - 객체를 생성하고(학생) 객체가 동작하는 행위들과의 연관관계를 통해 프로그래밍을 구성하고 실행함. (시간의 흐름에 따르지 않는 경우도 있음)

 

3. 클래스 (Class)

 - 객체를 코드로 구현한 것, 변수와 메서드로 이루어짐

 - 객체 지향 프로그래밍의 가장 기본 요소

 - 객체의 청사진 (blueprint)

 

3-1 맴버번수

 - 객체가 가지는 속성을 변수로 표현

 - 클래스의 맴버변수

 - member variable, property, attribute

 

3-2 메서드

 - 객체의 기능을 구현 

 - method, member function

 

4. Java 코드를 통해 클래스를 정의하기

 

예제 1) Student.java

 - 학번, 이름, 주소 값을 갖고 학생의 정보를 보여주는 클래스

 *public 클래스
 - 자바 파일 하나에 여러 개의 클래스가 존재 할 수도 있지만 public 클래스는 하나이고, public 클래스와 자바 파일 이름은 동일해야 함.

package classpart;

// 하나의 Java 파일에 다양한 Class를 생성할 수 있다.
//하나의 Java파일에는 public 클래스가 1개만 있고, 그 클래스의 이름은 Java 파일과 같아야 한다.
public class Student { 
	
	// 맴버 변수 
	public int studentID = 1; 
	public String studentName = "Steve";
	public String studentAddress = "종로구";
	
	// 메서드(기능)
	public void showStudentInfo () {
		System.out.println(studentName + "," + studentAddress);
	}

}

5. 클래스 사용하기

 - 클래스 생성하기 : new 키워드를 사용하여 생성자로 생성

 ex) Student studentLee = new Student();

 - 클래스의 속성, 메서드 참조하기 : 생성에 사용한 변수(참조변수, studentLee)로 클래스의 속성, 메서드 참조

 ex) studentLee.studentName = "Lee";

 ex) studentLee.showStudentInfo();

 

예제 2) StudentTest.java

 - Student클래스를 사용하는 main 클래스.

package classpart;

public class StudentTest {

	public static void main(String[] args) {
	
		Student studentLee = new Student();
		// Student 클래스를 메모리에 생성 (사용할 준비를 함)
		studentLee.studentName = "이순신";
		studentLee.studentAddress = "서울";
		
		studentLee.showStudentInfo();

	}

//출력결과 : 이순신, 서울
}

 

'Java > Java 올인원 패키지' 카테고리의 다른 글

5. 접근 제어자, 정보은닉 (Java)  (0) 2020.03.14
4. 참조 자료형 (reference data type)  (0) 2020.03.14
3. 생성자 (Java)  (0) 2020.03.14
2. 함수와 메서드  (0) 2020.03.13
15. 다형성, 형변환 (Java)  (0) 2020.03.13
댓글