일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- jpa플러시
- dbnamingrule
- db네이밍규칙
- 자기계발회고
- Python
- 포링키
- db설계방법
- 리콰이어먼츠 설정
- 겟메핑
- getpost
- db설계과정
- 패스트캠퍼스
- JPA
- 포스트메핑
- 데이터베이스설계요약
- 프라이머리키
- tableperclass
- django
- 내일배움캠프
- 데이터베이스네이밍규칙
- spring필수문법
- 코딩
- 장고
- 릴레이션십데이터베이스
- db설계핵심요약
- 스파르타코딩클럽
- 팀스파르타
- jakartapersistenceapi
- 스파르타코딩
- 파이썬
- Today
- Total
당우 일기장
자바 기초문법 2 본문
자바 문법 정리
자바의 기초를 넘어 더 깊이 들어가볼 시간이에요! 이번 문서에서는 상속, 인터페이스, 패키지 등 문법을 "문법 - 설명" 형식으로 정리했습니다. 객체지향 프로그래밍의 핵심을 이해하고 활용할 수 있도록 핵심만 간결하게 담았으니, 하나씩 따라가며 익혀보세요!
상속 (Inheritance)
클래스 상속 -
class 자식클래스 extends 부모클래스 { ... }
:
부모 클래스의 속성과 메서드를 물려받아 코드 재사용성을 높임. 예:class Dog extends Animal {}
메서드 오버라이딩 -
@Override 리턴타입 메서드명(매개변수) { ... }
:
부모 클래스의 메서드를 자식 클래스에서 재정의. 예:@Override void sound() { System.out.println("멍멍"); }
super 키워드 -
super.멤버
또는super(매개변수)
:
부모 클래스의 멤버(변수, 메서드)나 생성자를 호출. 예:super("부모");
(생성자 호출)업캐스팅 -
부모타입 변수 = 자식객체;
:
자식 객체를 부모 타입으로 참조. 자동 형변환. 예:Animal animal = new Dog();
다운캐스팅 -
(자식타입) 부모변수;
:
부모 타입으로 참조하던 객체를 자식 타입으로 변환. 명시적 형변환 필요. 예:Dog dog = (Dog) animal;
인터페이스 (Interface)
인터페이스 선언 -
interface 인터페이스명 { ... }
:
메서드 선언만 포함하는 설계도. 구현은 클래스가 담당. 예:interface Flyable { void fly(); }
인터페이스 구현 -
class 클래스명 implements 인터페이스명 { ... }
:
인터페이스의 메서드를 클래스에서 구현. 예:class Bird implements Flyable { public void fly() { System.out.println("날아요"); } }
다중 구현 -
implements 인터페이스1, 인터페이스2
:
여러 인터페이스를 한 클래스에서 구현 가능. 예:class Drone implements Flyable, Rechargeable { ... }
default 메서드 -
default 리턴타입 메서드명() { ... }
:
인터페이스 내에서 기본 구현 제공 (Java 8 이상). 예:default void land() { System.out.println("착륙"); }
static 메서드 -
static 리턴타입 메서드명() { ... }
:
인터페이스 자체에서 호출 가능한 정적 메서드. 예:static void info() { System.out.println("정보"); }
패키지 (Package)
패키지 선언 -
package 패키지명;
:
클래스를 폴더처럼 묶어 관리. 코드 충돌 방지. 파일 상단에 작성. 예:package com.example;
임포트 -
import 패키지명.클래스명;
:
다른 패키지의 클래스를 가져와 사용. 예:import java.util.Scanner;
와일드카드 임포트 -
import 패키지명.*;
:
패키지 내 모든 클래스를 임포트. 예:import java.util.*;
패키지 접근 제어 -
public
,protected
,default
,private
:
클래스나 멤버의 접근 범위를 지정. 예:public class MyClass {}
(모두 접근 가능)
접근 제어자와 기타 중급 문법
public -
public 타입 멤버;
:
모든 곳에서 접근 가능. 예:public int number;
protected -
protected 타입 멤버;
:
같은 패키지 또는 상속받은 클래스에서 접근 가능. 예:protected String name;
default (package-private) -
타입 멤버;
:
접근 제어자를 생략하면 같은 패키지 내에서만 접근 가능. 예:int count;
private -
private 타입 멤버;
:
클래스 내부에서만 접근 가능. 예:private double balance;
final 키워드 -
final 타입 변수명;
:
값 변경 불가(상수) 또는 상속/오버라이딩 방지. 예:final int MAX = 100;
abstract 클래스 -
abstract class 클래스명 { ... }
:
추상 메서드를 포함 가능, 객체 생성 불가. 예:abstract class Shape { abstract void draw(); }
static 키워드 -
static 타입 멤버;
:
클래스 수준에서 공유되는 변수나 메서드. 객체 없이 호출 가능. 예:static int counter;
예외 처리와 중급 활용
throws -
메서드명() throws 예외타입
:
메서드에서 발생한 예외를 호출한 곳으로 넘김. 예:void process() throws IOException { ... }
throw -
throw new 예외타입();
:
예외를 명시적으로 발생시킴. 예:throw new IllegalArgumentException("잘못된 값");
다중 catch -
catch (타입1 | 타입2 변수) { ... }
:
여러 예외를 한 번에 처리 (Java 7 이상). 예:try { ... } catch (IOException | SQLException e) { e.printStackTrace(); }
마무리
이 문서로 자바의 중급 문법(상속, 인터페이스, 패키지 등)을 정리해봤어요! 객체지향 프로그래밍의 핵심인 상속과 인터페이스를 이해하면 더 유연하고 확장 가능한 코드를 작성할 수 있어요. 패키지와 접근 제어자는 프로젝트 규모가 커질수록 중요해지니 꼭 익혀두세요. 다음엔 컬렉션 프레임워크나 스레드 같은 고급 주제로 넘어가볼까요? 궁금한 점 있으면 언제든 물어봐주세요! 😊
'JAVA' 카테고리의 다른 글
스프링 입문 전 필수 자바 문법 리스트 (1) | 2025.04.08 |
---|---|
자바 중급 문법 (1) | 2025.04.08 |
자바 기초 문법 (0) | 2025.04.08 |