객체
- 현실세계를 상태(특성)와 행동(기능)으로 구분한 것.
- 의사나 행위가 미치는 대상
- 구체적, 추상적 데이터 단위 (학생,회원,생산,주문,배송)
ex) 핸드폰→ 상태 : 제조사, 색상 / 행동 : 사진촬영, 연락, 메모
객체 지향 프로그래밍 / 절차 지향 프로그래밍
객체 지향 프로그래밍(Java,Python): 관계를 기준으로 실행되는 프로그래밍
절차 지향 프로그래밍 (C언어) : 시간의 흐름에 따른 프로그래밍
💡 객체 지향 프로그램은 어떻게 구현되는가 ?
- 객체를 정의
- 각 객체 제공하는 기능들을 구현
- 각 객체가 제공하는 기능들 간의 소통(메세지 전달)을 통해 객체간의 협력
클래스 (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() )
'BackEnd > JavaProgram' 카테고리의 다른 글
[ JAVA ] 오버로딩(Overloading)과 오버라이딩(Overriding) (1) | 2023.01.30 |
---|---|
[ JAVA ] 인스턴스 생성과 힙 메모리(heap memory) / 생성자 구현 (0) | 2023.01.29 |
[자바기초 문법] 반복문 While / For (0) | 2022.12.24 |
[자바기초 문법] 연산자와 조건문 If / Switch (0) | 2022.12.24 |
Scanner 객체 사용 방법 (0) | 2022.12.22 |