한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지_패스트 캠퍼스 챌린지 06일차

2021. 9. 11. 23:09IT공부/Java&Spring 이용한 웹프로그래밍

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

객체 (Object)

  • 의사나 행위가 미치는 대상 ( 사전적 의미 )
  • 구체적, 추상적 데이터의 단위 ( 학생, 회원, 생산, 주문, 배송 )

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

  • 아침에 일어나 학교를 가는 과정을 예를 들어 봅시다.
  • 절차 지향 프로그래밍일어난다 -> 씻는다 -> 밥을 먹는다 -> 버스를 탄다-> 요금을 지불한다 -> 학교에 도착
  • -시간이나 사건의 흐름에 따른 프로그래밍
  • 객체 지향 프로그래밍

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

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

02. 생활 속에서 객체 찾아 클래스로 구현해 보기

객체를 찾아 봅시다

  • 온라인 쇼핑몰에 회원 로그인을 하고 여러 판매자가 판매하고 있는 제품 중 하나를 골라 주문을 한다
  • 아침에 회사에 가는 길에 별다방 커피숍에 들려 아이스 카페라떼를 주문했다
  • 성적확인을 위해 학사 관리 시스템에 로그인 하여 수강 한 과목들의 성적을 확인했다

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

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

  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;

   }

 

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

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

클래스 코딩하기

  • 클래스는 대문자로 시작하는것이 좋음
  • java 파일 하나에 클래스는 여러 개가 있을 수 있지만, public 클래스는 하나이고, public 클래스와 .java 파일의 이름은 동일함
  • camel notation 방식으로 명명

03. 함수와 메서드

함수란 (function)

  • 하나의 기능을 수행하는 일련의 코드
  • 구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨
  • 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음

함수 정의하기

함수는 이름, 매개 변수, 반환 값, 함수 몸체(body)로 구성됨

 

int add(int num1, int num2) {

      int result; result = num1 + num2;

      return result;

}

 

함수 구현하기 예제

public class FunctionTest {

           public static int addNum(int num1, int num2) {

            int result; result = num1 + num2;

            return result;

          }

            public static void sayHello(String greeting) {

            System.out.println(greeting);

           }

            public static int calcSum() {

            int sum = 0;

            int i;

            for(i = 0; i<=100; i++) {

             sum += i;

             }

           return sum;

          }

           public static void main(String[] args) {

            int n1 = 10;

            int n2 = 20;

            int total = addNum(n1, n2);

            sayHello("안녕하세요");

            int num = calcSum();

           System.out.println(total);

           System.out.println(num);

          }

}

 

함수 호출과 스택 메모리

  • 스택 : 함수가 호출될 때 지역 변수들이 사용하는 메모리
  • 함수의 수행이 끝나면 자동으로 반환 되는 메모리

 

메서드 (method)

  • 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수
  • 멤버 함수 (member function)이라고도 함
  • 메서드를 구현함으로써 객체의 기능이 구현 됨
  • 메서드의 이름은 그 객체를 사용하는 객체(클라이언트)에 맞게 짓는것이 좋음
  • 예) getStudentName()

04. 객체의 속성은 멤버 변수로, 객체의 기능은 메서드로 구현한다

학생 클래스를 정의 하고 이를 사용해 보자

  • 학생 클래스의 속성을 멤버 변수로 선언하고 메서드를 구현

public class Student {

        public int studentID;

        public String studentName;

        public String address;

        public void showStudentInfo() {

          System.out.println(studentName + "," + address);

       }

       public String getStudentName() {

       return studentName;

       }

}

  • 학생 클래스를 생성하여 생성된 객체(인스턴스)에 각각 다른 이름과 주소를 대입

public class StudentTest {

          public static void main(String[] args) {

           Student studentLee = new Student();

            studentLee.studentName = "이순신";

            studentLee.address = "서울";

            studentLee.showStudentInfo();

            Student studentKim = new Student();

           studentKim.studentName = "김유신";

            studentKim.address = "경주";

            studentKim.showStudentInfo();

           System.out.println(studentLee);

           System.out.println(studentKim);

       }

}

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

강의에 대해 정확하게 알고 싶다면 

https://bit.ly/37BpXiC