Nulog
article thumbnail

 

9일차

 

위에서부터 순서대로 연산을 하는 컴퓨터 과정이 아닌, 객체 지향에 대해 배웠다.

실생활의 사물들을 구현해내자는 마인드로 설계된 구조라고 한다.

 

실제 사물들이 어떤 순서에 의해 기능하지 않듯, 각각의 사물은 사물로서 존재한다.

그 사물의 기능이 필요할 때 가져다 쓰는 방식이 객체지향 프로그래밍이다.

 

객체지향에 대해 알기 전에 먼저, 클래스와 객체에 대해 알아야겠다.

 


클래스

객체를 정의한 설계도, 표준 양식, 틀 등 객체를 생성하는 역할.

  • 클래스는 아래 4가지 요소로 이루어져 있으며, 생성자를 제외한 3요소를 멤버라고 부른다.
    • 필드: 생성할 객체의 속성을 결정한다. Ex. 자동차 모델명, 색상 등
    • 메서드: 생성할 객체의 기능을 결정한다. Ex. 시동, 주행, 가속, 정지 등
    • 생성자: 클래스의 객체를 생성한다.
    • 이너 클래스: 클래스 내부의 클래스
Class Car {
//필드
	private String model; // 자동차 모델명
    private int wheels; // 바퀴의 갯수
    private int doors; // 문의 갯수
    private String color; // 색상
 
 //메서드
    void power() { System.out.println("부르릉"); }  // 시동 걸기
    void accelerate() { System.out.println("부우우웅"); } // 가속하기
    void stop(){ System.out.println("끼이이익"); } // 정지하기
}

//생성자

클래스명 참조_변수명;
참조_변수명 = new 생성자();
//
클래스명 참조_변수명 = new  생성자();

class CarTest {
	public static void main(String[] args){
    
    Car bmw = new Car(); // Car클래스를 기반으로 생성된 bmw 인스턴스(객체)
    Car tesla = new Car(); // Car클래스를 기반으로 생성된 tesla 인스턴스(객체) 
    Car audi = new Car(); // Car클래스를 기반으로 생성된 audi 인스턴스(객체)
}

객체

실재하는 모든 사물, 클래스에 의해 생성, 모든 인스턴스를 포괄하는 개념

  • 인스턴스: 해당 객체가 어떤 클래스로부터 생성됐는지 강조
    • 인스턴스는 힙 메모리에 주소값을 저장한다. 
    • new 생성자를 이용해 생성하는 모든 것은 객체이며, 해당 클래스의 인스턴스이다. (배열, Scanner 등 포함)
  • 클래스의 멤버들은 객체 내부에 위치한다.
  • 메서드는 객체 외부에 따로 저장된다. 반복 사용되므로 객체 안에 개별 저장할 필요가 없다.

필드

클래스에 포함된 변수. 클래스에서 객체의 속성을 정의하기 위해 사용된다.

인스턴스 변수

  • 인스턴스가 가지는 각각의 고유한 속성을 저장하기 위한 변수.
  • new 생성자를 통해 인스턴스가 생성될 때 만들어진다.

클래스 변수

 static이 함께 선언된 변수

  • 클래스 변수는 공통된 저장공간을 가지고 있다.
  • 인스턴스(객체) 외부에 존재하므로, 인스턴스를 생성하지 않고도 선언이 가능하다.
  • 모든 객체가 공유할 수 있는 변수이다.

지역 변수

메서드 내에 선언되는 변수. 메서드 내에서만 사용이 가능하다.


메서드

특정 작없을 수행하는 일련의 명령문들의 집합

메서드 시그니처

  • 메서드 이름, 파라미터의 타입과 갯수
  • 메서드 오버로딩
    • 같은 이름의 메서드를 2개 이상 쓸 수 있다. 이 때 받아야되는 파라미터의 갯수나 타입이 달라야 한다.
    • 반환타입은 오버로딩과 상관없다.
    • 하나의 메서드로 여러가지 경우를 해결 할 수 있다.

메서드 바디

  • 메서드 반환타입 void는 말 그대로 반환을 비워둔다. return문을 사용할 필요가 없다.
profile

Nulog

@Nuni0617

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