[혼공자][week3] Day9 6장 클래스 시작! (추가숙제 포함)

Ida·2025년 1월 25일
0

혼공자

목록 보기
9/20
post-thumbnail

조금 늦어도 추가 숙제랑 기본 숙제는 같이 제출하도록.
우수 혼공족 놓친게 아쉽다... ㅜ_ㅜ

06-1 객체 지향 프로그래밍 (추가숙제)

객체

자신의 속성을 가지고 있으며 식별 가능한 것.

필드(: 속성)

  • 자동차: 색깔, 속도, 브랜드
  • 사람: 이름, 나이, 키

메소드(: 동작)

  • 자동차: 달린다, 멈춘다
  • 사람: 먹다, 웃다

객체 모델링
현실 세계 객체 -> 소프트웨어 객체의 필드와 메소드로 정의하는 과정

1. 객체의 상호작용

독립적으로 존재하는 객체들은 서로 상호자용 하면서 동작함.

메소드
상호작용 수단. 메소드 호출하고 결과 리턴하는 식으로 동작함.

리턴값 = 객체.메소드(매개값1, 매개값2, ...);
-> int result = Calculator.add(10, 20);

위 자바 코드로 메소드 호출하면 변수 result에는 30이란 값이 저장됨. (add가 더하기 메소드)

2. 객체 간의 관계

  • 집합관계
    부품과 완성품의 관계
  • 사용관계
    객체 간 상호작용이 있는 관계. 메소드를 호출하고 결과를 리턴함. (ex. 사람과 자동차)
  • 상속관계
    부모 자식 관계. 상위 객체 기반으로 하위 객체 생성.

객체 지향 프로그래밍
객체를 모델링하고 집합 관계에 있는 부품 객체와 사용 관계에 있는 개체를 하나씩 설계하여 조립하는 방식으로 프로그램을 개발함.

3. 객체와 클래스

클래스
객체 생성을 위한 설계도. 필드(속성)와 메소드(동작)가 정의 됨.

인스턴스
클래스에서 만들어진 객체
(ex. 자동차 클래스의 인스턴스 => 자동차 객체, 이런 과정을 인스턴스화라고 함.)

객체 지향 프로그래밍 개발 단계

  1. 클래스 설계
  2. 설계된 클래스를 사용할 객체 생성
  3. 생성된 객체 이용

4. 클래스 선언

클래스 이름 결정시에는 자바의 식별자 작성 규칙에 따라야 함.

식별자 작성 규칙

  1. 하나 이상의 문자로 이루어져야 함.
  2. 첫 글자 숫자 X, 첫 글자 영어 대문자고 나머지는 소문자가 관례적
  3. $, _ 외의 특수문자 사용 X
  4. 자바 키워드 사용 X
  • 영어 대소문자 구분, 다른 단어 혼합시 각 단어의 첫 글자는 대문자로 작성이 관례

클래스 이름 지정 후 클래스 이름.java로 소스 파일 생성한 후 클래스 선언

클래스 선언 키워드는 반드시 소문자로 작성.
2개 이상 클래스 선언 가능하지만 보통 소스파일당 클래스는 하나만 선언함.

  • 만약 2개의 클래스를 선언한다면 소스 파일은 1개, 바이트 코드 파일(.class)는 2개가 생성됨.
// 클래스 선언
public class 클래스이름 {

}

5. 객체 생성과 클래스 변수

클래스 변수;
변수 = new 클래스();

클래스로부터 객체 생성
new 연산자는 힙 영역에 객체를 생성시켜 객체의 번지를 리턴함.

클래스 선언 (손코딩)

클래스로부터 객체 생성 (손코딩)

같은 클래스인 Student를 참고함. 하지만 객체는 new 연산자가 생성한만큼 생성됨.
s1과 s2는 Student클래스의 인스턴스임.

  • Student 클래스
    라이브러리용
  • StudentExample 클래스
    실행용, main()메소드 사용

두 클래스 동시에 사용하면 라이브러리인 동시에 실행 클래스로 생성 가능
하지만 보통 객체 지향 프로그램은 라이브러리, 실행 클래스가 분리 됨.

6. 클래스의 구성 멤버

객체가 가져야 할 구성 멤버 3가지

  • 필드(Field)
    int ;
    객체의 고유 데이터, 부품 객체, 상태 정보 저장
    생성자와 메소드 전체에 사용됨. 객체 소멸까지 함께 존재
  • 생성자(Constructor)
    클래스이름() { ... }
    객체 생성 시 초기화 담당
    클래스 이름
  • 메소드(Method)
    void methodName() { ... }
    객체의 동작, 데이터를 전달하는 수단

06-2 필드

1. 필드 선언

생성자와 메소드 중괄호 블록 내부를 제외한 어느 곳이든 선언 가능
선언 형태가 변수 선언과 비슷함.

타입 필드 [ = 초기값 ];
초기값은 생략 가능. 생략 시 해당 타입의 기본값으로 초기화 됨.

Car 클래스 필드 선언 (손코딩)

2. 필드 사용

외부 클래스 사용시 객체 생성 후 필드 사용 가능. 객체가 없으면 필드도 존재 X

외부 클래스에서 Car 필드값 읽기 및 변경 (손코딩)

필드 자동 초기화 후 필드값 출력 (손코딩)

클래스에서 필드 선언 시 초기값 없으면 기본값으로 초기화됨.

profile
나는 이다이다.

0개의 댓글

관련 채용 정보