본문 바로가기
1인칭 학습 시점_웹개발/JAVA

[JAVA] Java 기초 개념 정리 - 생성자, this, 오버로딩, 접근 제한자, 상속까지!

by awesong 2024. 5. 28.
728x90
반응형

자바(Java) 처음 배우면서 가장 먼저 접하는 기초 개념들에 대해 정리해보았습니다. 객체지향 언어인 Java 구조와 문법을 이해하면 이후의 학습도 훨씬 수월해집니다. 글에서는 생성자, this 키워드, 메서드 오버로딩, 접근 제한자 중요한 내용을 차근히 정리해보았습니다.

 

1. 생성자 (Constructor)

1)생성자란?
클래스로부터 객체를 생성할 자동으로 호출되는 특수한 메서드입니다. 객체의 초기화를 담당합니다.

public class Car {
    String brand;
    
    public Car(String brand) {
        this.brand = brand;
    }
}

Car c1 = new Car("현대");
  • new 키워드와 함께 호출됩니다.
  • 생성자 이름은 클래스 이름과 같아야 하며, 반환형이 없습니다.

 

2. this 키워드

1) this?
this
객체 자기 자신을 가리키는 참조 변수입니다.
주로 매개변수와 필드명이 동일할 구분을 위해 사용합니다.

public class Car {
    String color;
   
    public Car(String color) {
        this.color = color;  // this로 필드와 매개변수를 구분
    }
}
  • this.color 필드변수
  • color 매개변수

 

3. 메서드 오버로딩 (Overloading)

1)오버로딩이란?
같은 이름의 메서드를 매개변수의 수나 타입이 다르게 정의하는 것을 의미합니다.

void print(String s) {
    System.out.println(s);
}

void print(int n) {
    System.out.println(n);
}
  • 반환형이 같거나 달라도 상관없습니다.
  • 컴파일러는 매개변수의 시그니처로 메서드를 구분합니다.

 

4. 패키지 (Package)

1) 패키지란?
자바 클래스 파일을 논리적으로 그룹화하기 위한 디렉토리 구조입니다.
패키지를 사용하면 클래스 관리가 쉬워지고, 동일한 이름의 클래스도 다른 패키지에서 사용할 있습니다.

package com.example.car;

public class Engine { }

 

다른 패키지에서 사용하려면 import 불러와야 합니다.

import com.example.car.Engine;
  • Ctrl + Shift + O 자동 import 가능

 

5. 순차적 방법론 vs 객체지향 방법론

1) 순차적 방법론

순차적방법론이란?
절차 중심의 설계 방법입니다. 흐름이 고정되어 있고 순서를 반드시 따라야 합니다.

예: 1. 집에서 나옴 → 2. 버스를 탐 → 3. 학교 도착

 

2) 객체지향 방법론

객체지향방법론이란?
모듈화와 재사용성을 고려하여 객체 중심으로 프로그램을 구성합니다. 객체 상호작용으로 시스템이 구성됩니다.

 

6. 접근 제한자 (Access Modifier)

1) 접근제한자란?
클래스, 메서드, 변수 등에 접근 가능한 범위를 설정하는 키워드입니다.

접근제한자 같은 클래스 같은 패키지 상속 관계 외부 클래스
public
protected
(default)
private
private String name;

public String getName() {
    return name;
}
  • private으로 선언하면 외부 클래스에서 접근할 없습니다.
  • 대신 getter, setter 메서드를 통해 접근합니다.

 

7. 상속 (Inheritance)

1) 상속이란?
기존 클래스(부모) 속성과 기능을 새로운 클래스(자식) 물려받는 기능입니다.

public class Animal {
    void sound() {
        System.out.println("동물 소리");
    }
}

public class Dog extends Animal {
    void bark() {
        System.out.println("멍멍");
    }
}
  • is-a 관계로 표현됩니다.
  • 자식 클래스는 extends 키워드를 통해 부모 클래스를 상속받습니다.
반응형