minlog
article thumbnail

 

객체

  • 현실세계를 상태(특성)와 행동(기능)으로 구분한 것.
  • 의사나 행위가 미치는 대상
  • 구체적, 추상적 데이터 단위 (학생,회원,생산,주문,배송)

ex) 핸드폰→ 상태 : 제조사, 색상 / 행동 : 사진촬영, 연락, 메모

 

 

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

객체 지향 프로그래밍(Java,Python): 관계를 기준으로 실행되는 프로그래밍

절차 지향 프로그래밍 (C언어) : 시간의 흐름에 따른 프로그래밍

 

 

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

  1. 객체를 정의
  2. 각 객체 제공하는 기능들을 구현
  3. 각 객체가 제공하는 기능들 간의 소통(메세지 전달)을 통해 객체간의 협력

 

 클래스 (Class)

- 클래스는 객체를 추상화해서 코딩하는것.

- 클래스가 존재하여야 원하는 객체들을 무한으로 생성할 수 있다. (ex . 붕어빵 틀 > 붕어빵(객체) )

- 클래스는 대문자로 시작하는 것이 좋음

- Java 파일 하나에 클래스는 여러개가 있을 수 있지만 public 클래스는 하나이고 public클래스와 java파일의 이름은 동일해야한다.

- 객체의 속성은 클래스의 멤버 변수로 선언한다.

 

💡 클래스 코딩하기 

1. 요구 분석 ⇒ 객체 모델링 ⇒ 객체 추상화 작업

2. 공통된 데이터 구조와 기능들을 추출하여 클래스로 만든다

(같은 대상이더라도 요구 분석에 따라 상태와 기능이 달라질 수 있다.)

3. 속성을 멤버 변수로 

4. 기능(역할)을 메서드로 구현

5. 각 객체간의 협력 구현

 

 

※ 학생 클래스 생성 및 안에 멤버 변수 선언

package ch01;

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

 

 

함수와 메서드

💡 함수란 (function)

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

함수는 이름, 매개변수, 반환값 , 함수 몸체로 구성된다.

int add(int num1, int num2){
	int result;
    result = num1 + num2;
    return result;
}

 

package ch03;

public class FuntionTest {
	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);
		System.out.println(total);
		sayHello("안녕하세요.");
		total = calcSum();
		System.out.println(total);
	}

}

 

 

💡 함수 호출과 스택 메모리

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

 

 

💡 메서드 (method)

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

minlog

@jimin-log

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!