JAVA 웹 개발 패키지 - 패스트캠퍼스/Chapter2

객체와 객체 지향 프로그래밍

giggs 2021. 12. 25. 10:38

 

 

객체 ( Object )

 

 

 

의사나 행위가 미치는 대상 ( 사전적 의미 )

구체적, 추상적 데이터의 단위 ( 학생, 회원, 생산, 주문, 배송 )

 

 

 

 

 

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

 

 

절차 지향 프로그래밍

 

아침에 일어나 학교를 가는 과정을 예를 들어 봅시다.

절차 지향 프로그래밍 일어난다 -> 씻는다 -> 밥을 먹는다 -> 버스를 탄다-> 요금을 지불한다 -> 학교에 도착

시간이나 사건의 흐름에 따른 프로그래밍

 

 

 

객체 지향 프로그래밍

 

 

 


 

 

 

객체 지향 프로그램은 어떻게 구현하는가?

 

객체를 정의 하고

각 객체 제공하는 기능들을 구현하고

각 객체가 제공하는 기능들 간의 소통(메시지 전달)을 통하여 객체 간의 협력을 구현

 

 

 

 

생활 속에서 객체 찾아보기

 

 

 

1. 온라인 쇼핑몰에 회원 로그인을 하고 여러 판매자가 판매하고 있는 제품 중 하나를 골라 주문을 한다

  • 회원이 로그인하고 / 판매자가 판매 / 제품 / 주문 
  • 회원 / 판매자 / 제품 / 주문 

 

2. 아침에 회사에 가는 길에 별다방 커피숍에 들려 아이스 카페라떼를 주문했다

  • 내가 // 회사 // 커피숍 // 카페라떼 // 바리스타

 

3. 성적확인을 위해 학사 관리 시스템에 로그인하여 수강 한 과목들의 성적을 확인했다

  • 학생 // 과목 // 교수님 // 성적 자료 // 강의실   

 

 

보이는 객체뿐만이 아니라 보이지 않는 객체들까지 추상화하여 코드화하여야 한다.

 

클래스는 객체의 청사진(blueprint)입니다

객체의 속성은 클래스의 멤버 변수(member variable)로 선언함


생활 속 객체 찾기 1번 예제 기준

 

학생 클래스 / 주문 클래스 / 회원 클래스의 객체의

속성은 각각 클래스의 멤버 변수로 선언

public class Student {

	int studentNumber;
	String studentName;
	int majorCode;
	String majorName;
	int grade;
}
public class Order {

	int orderId;
	String buyerId;
	String sellerId;
	int productId;
	String orderDate;
}
public class UserInfo {

	String userId;
	String userPassWord;
	String userName;
	String userAddress;
	int phoneNumber;
}

 

객체 지향 프로그램을 할 때는

 

  • 객체를 정의하고
  • 각 객체의 속성을 멤버 변수로 역할을 메서드로 구현하고
  • 각 객체 간의 협력을 구현한다.

 

 

클래스 코딩하기

 

클래스는 대문자로 시작하는 것이 좋음. 단어 바뀔 때마다 대문자로 시작 ( camel notation )

 

java 파일 하나에 클래스는 여러 개가 있을 수 있지만, public 클래스는 하나이고,

public 클래스와. java 파일의 이름은 동일해야 한다.

 

 

 


 

 

 

review

드디어 객체지향에 대해 시작한다.
컴퓨터 언어보다는 접근성이 쉽겠지 생각했는데,
객체 지향 프로그램의 시작인
객체와 변수를 정의하는 것부터 쉽지 않겠구나 생각이 든다.
추상적인 부분까지 생각해서 정의해야 하는 거였다니 oOo

생활 속에 객체 찾기 습관을 들여서
객체로 무엇이 필요하고 올 수 있는지
생각해보는 것이 도움이 될 것 같다.
이제부터 모든 행동과 행위들에 객체를 생각해보는 연습을 ㅎㅎ