240724 내일배움캠프 백엔드 Java 6기 TIL : Java문법 종합반 3일차 : 클래스

박대현·2024년 7월 24일
0

1. 클래스

A. 객체지향 프로그래밍 이해하기

  • 속성 : 행위 = 필드 : 메서드
  • 객체간의 관계 : 사용관계, 포함관계, 상속관계

객체지향형 프로그래밍의 특징: 캡슐화, 상속, 다형성, 추상화

  • 캡슐화

    • 내부 구현내용을 외부에서 알수없게 -> 보안기능, 불필요한 정보 가려 혼란줄이기
    • 대신, 노출시켜준 메소드를 통해 접근가능 -> 접근제어자(public, private...) 사용
  • 상속

    • 부모 객체가 가지고있는 필드와 메소드를 자식객체가 사용할 수 있도록.
    • 객체간의 구조파악 쉬워짐, 코드중복 감소
  • 다형성

    • 자동 형변환을 이용해서,
  • 추상화

    • 객체에서 공통된 부분들을 모아 상위개념으로 새롭게 선언, 클래스로 생성된 객체

B. 클래스 설계

  • 설계 4단계 : 선언 - 필드 - 생성자 - 메소드

C. 메서드

  • 오버로딩 : 이름은 같게 but 매개변수를 다르게해서 기능을 다르게
  • 기본형 매개변수는 넘겨도 main에 변화 X
    참조형 매개변수를 넘기면 main에도 변화 O

D. 인스턴스 멤버와 클래스 멤버

  • 멤버 = 필드 + 메서드
  • 필드와 메서드를 선언하는 방법에 따라 인스턴스멤버와 클래스멤버로 구분
    • 인스턴스멤버는 객체 생성 후에 사용가능
    • 클래스멤버는 객체생성 없이도 사용가능 : static 키워드 사용
      • 공용데이터를 저장하는 필드는 클래스멤버로 선언
      • 인스턴스 필드를 사용하지 않고 실행되는 메서드 -> static써서 클래스 메서드로
      • static을 쓰면 어디에서나 호출가능

E. 생성자

  • 생성자도 오버로딩 가능(단, 변수이름만 다르고 자료형은 같으면 오버로딩 X)
  • 상황에따라 this를 써서 생성자를 만드는게 필수일 수 있음
  • this() : 다른 생성자를 호출. 반드시 첫줄에 써야함

F. 접근제어자

  • 클래스 접근제어자 : public, default
  • 메서드&멤버변수 : public, protected, default, private
  • getter : 외부에서 객체의 private 한 필드를 읽을 필요가 있을 때, get + 필드 이름(첫 글자 대문자)
public String getModel() {
    return model;
}

public String getColor() {
    return color;
}

public double getPrice() {
    return price;
}
  • setter : 외부에서 객체의 private 한 필드를 저장/수정할 필요가 있을 때, get + 필드 이름(첫 글자 대문자)
public void setModel(String model) {
    this.model = model;
}

public void setColor(String color) {
    this.color = color;
}

public void setPrice(double price) {
    this.price = price;
}

0개의 댓글