🌱<μΈν”„λŸ° μ›Œλ°μ—… μŠ€ν„°λ”” 클럽 0κΈ°> BE - 3일차 과제

AishaΒ·2024λ…„ 2μ›” 21일
post-thumbnail

μ œκ°€ μˆ˜κ°•ν•˜κ³  μžˆλŠ” μ΅œνƒœν˜„λ‹˜ κ°•μ˜ μΆœμ²˜μž…λ‹ˆλ‹€!

https://inf.run/XKQg

μžλ°”μ˜ λžŒλ‹€μ‹μ€ μ™œ λ“±μž₯ν–ˆμ„κΉŒ?

λžŒλ‹€λžŒμ₯.(농-λ‹΄)🐿️

λžŒλ‹€ ν‘œν˜„μ‹μ€ μžλ°” ν”„λ‘œκ·Έλž˜λ°μ—μ„œ κ°„κ²°ν•œ ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜κ³  μ „λ‹¬ν•˜λŠ” λ°©λ²•μœΌλ‘œ, μžλ°” 8μ—μ„œ λ„μž…λœ κΈ°λŠ₯이닀.

λžŒλ‹€λŠ” μ½”λ“œλ₯Ό 더 κ°„κ²°ν•˜κ³  읽기 μ‰½κ²Œ λ§Œλ“€μ–΄μ£ΌλŠ”λ° 예λ₯Ό λ“€μ–΄, 이벀트 μ²˜λ¦¬λ‚˜ μ •λ ¬κ³Ό 같은 κ°„λ‹¨ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•  λ•Œ μœ μš©ν•˜λ‹€.μ΄μ „μ—λŠ” μ΄λŸ¬ν•œ μž‘μ—…μ„ μœ„ν•΄ 읡λͺ… λ‚΄λΆ€ 클래슀λ₯Ό μ‚¬μš©ν–ˆλŠ”λ°, 읡λͺ… λ‚΄λΆ€ ν΄λž˜μŠ€λŠ” μ½”λ“œκ°€ κΈΈκ³  λ³΅μž‘ν•΄μ§€λŠ” 단점이 μžˆμ—ˆλ‹€λ©΄ λžŒλ‹€ ν‘œν˜„μ‹μ„ μ‚¬μš©ν•˜λ©΄ μ΄λŸ¬ν•œ μž‘μ—…μ„ 훨씬 κ°„λ‹¨ν•˜κ²Œ ν•  수 μžˆλ‹€λŠ” μž₯점이 μžˆλ‹€.

κ°„λ‹¨ν•œ 이벀트 ν•Έλ“€λŸ¬ μ½”λ“œ μ˜ˆμ‹œμ™€ ν•¨κ»˜ μ•Œμ•„λ³΄μž.

// 읡λͺ… λ‚΄λΆ€ 클래슀λ₯Ό μ‚¬μš©ν•œ μ˜ˆμ „ 방식
button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("λ²„νŠΌμ΄ ν΄λ¦­λ˜μ—ˆμŠ΅λ‹ˆλ‹€.");
    }
});

// λžŒλ‹€ ν‘œν˜„μ‹μ„ μ‚¬μš©ν•œ 더 κ°„λ‹¨ν•œ 방식
button.addActionListener(e -> System.out.println("λ²„νŠΌμ΄ ν΄λ¦­λ˜μ—ˆμŠ΅λ‹ˆλ‹€."));

μ „μžμ˜ μ½”λ“œμ—μ„œ 읡λͺ… λ‚΄λΆ€ ν΄λž˜μŠ€λŠ” ActionListener μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜λŠ” 객체λ₯Ό μƒμ„±ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. addActionListener λ©”μ„œλ“œμ— μ „λ‹¬λœ 뢀뢄이 읡λͺ… λ‚΄λΆ€ ν΄λž˜μŠ€μ΄λ‹€.

즉, ActionListener μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜λŠ” μƒˆλ‘œμš΄ 클래슀λ₯Ό μƒμ„±ν•˜λ©΄μ„œ λ™μ‹œμ— 객체λ₯Ό λ§Œλ“€μ–΄ addActionListener λ©”μ„œλ“œμ— μ „λ‹¬ν•œλ‹€. 이 읡λͺ… λ‚΄λΆ€ ν΄λž˜μŠ€λŠ” ActionListener μΈν„°νŽ˜μ΄μŠ€μ˜ actionPerformed λ©”μ„œλ“œλ₯Ό μ˜€λ²„λΌμ΄λ“œν•˜μ—¬ λ²„νŠΌμ΄ 클릭될 λ•Œ μˆ˜ν–‰λ  λ™μž‘μ„ μ •μ˜ν•˜λŠ” 방식이닀.

이걸 λžŒλ‹€ ν‘œν˜„μ‹μœΌλ‘œ μ‚¬μš©ν•˜λ©΄ λ‹€μŒκ³Ό 같은 μž₯점이 μžˆλ‹€.

μ½”λ“œμ˜ κ°„κ²°μ„±: λžŒλ‹€ ν‘œν˜„μ‹μ€ 더 κ°„κ²°ν•˜κ³  가독성이 쒋은 μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆλ‹€. 읡λͺ… λ‚΄λΆ€ 클래슀의 κ²½μš°μ—λŠ” λ§Žμ€ 뢀가적인 μ½”λ“œκ°€ ν•„μš”ν•˜μ§€λ§Œ, λžŒλ‹€ ν‘œν˜„μ‹μ€ μ§§κ³  κ°„λ‹¨ν•˜κ²Œ ν‘œν˜„μ΄ κ°€λŠ₯ν•˜λ‹€.

μ‰¬μš΄ 이벀트 처리: μœ„ μ˜ˆμ‹œμ²˜λŸΌ 이벀트 처리 λ“±μ˜ μž‘μ—…μ„ κ°„λ‹¨ν•˜κ²Œ μ²˜λ¦¬ν•  수 μžˆλ‹€.

ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° 지원: λžŒλ‹€ ν‘œν˜„μ‹μ„ μ‚¬μš©ν•˜λ©΄ ν•¨μˆ˜λ₯Ό λ³€μˆ˜μ— ν• λ‹Ήν•˜κ±°λ‚˜ λ‹€λ₯Έ λ©”μ„œλ“œμ˜ λ§€κ°œλ³€μˆ˜λ‘œ μ „λ‹¬ν•˜λŠ” λ“±μ˜ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° μŠ€νƒ€μΌμ„ 지원할 수 μžˆλ‹€. μ΄λŠ” μžλ°”μ˜ ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€μ™€ ν•¨κ»˜ μ‚¬μš©λ˜μ–΄ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ„ 더 μ‰½κ²Œ ν•  수 μžˆλ„λ‘ λ•λŠ”λ‹€.

λžŒλ‹€μ‹κ³Ό 읡λͺ… ν΄λž˜μŠ€λŠ” μ–΄λ–€ 관계가 μžˆμ„κΉŒ?

두 κ°€μ§€ λͺ¨λ‘ μžλ°”μ—μ„œ μ½”λ“œλ₯Ό κ°„κ²°ν•˜κ²Œ λ§Œλ“€κ³  읡λͺ… ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜λŠ” 데 μ‚¬μš©λ˜μ§€λ§Œ, μ•„λž˜μ™€ 같은 차이가 μžˆλ‹€.

문법적 차이: λžŒλ‹€μ‹μ€ κ°„κ²°ν•œ 문법을 μ œκ³΅ν•˜μ—¬ 읡λͺ… ν•¨μˆ˜λ₯Ό μ •μ˜ν•œλ‹€. μ΄λŠ” 보톡 ν•œ μ€„μ˜ ν‘œν˜„μ‹μœΌλ‘œ ν‘œν˜„λ˜λŠ”λ°, 읡λͺ… ν΄λž˜μŠ€λŠ” 클래슀 μ •μ˜μ™€ μΈμŠ€ν„΄μŠ€ 생성을 λ™μ‹œμ— ν•˜κΈ° λ•Œλ¬Έμ— μœ„μ˜ μ˜ˆμ‹œμ²˜λŸΌ μƒλŒ€μ μœΌλ‘œ λ²ˆμž‘ν•œ 문법을 κ°€μ§€κ³  μžˆλ‹€.

νƒ€μž… μΆ”λ‘ : λžŒλ‹€μ‹μ„ μ‚¬μš©ν•˜λ©΄ μ»΄νŒŒμΌλŸ¬κ°€ λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž…μ„ μΆ”λ‘ ν•  수 μžˆλ‹€. μ΄λŠ” νƒ€μž…μ„ λͺ…μ‹œμ μœΌλ‘œ μž‘μ„±ν•˜μ§€ μ•Šμ•„λ„ λ˜λŠ” μž₯점을 μ œκ³΅ν•˜λŠ”λ°, 이에 λ°˜ν•΄ 읡λͺ… ν΄λž˜μŠ€λŠ” νƒ€μž…μ„ λͺ…μ‹œμ μœΌλ‘œ μž‘μ„±ν•΄μ•Ό ν•œλ‹€.

λ©”μ„œλ“œ μ°Έμ‘°: λžŒλ‹€μ‹μ„ μ‚¬μš©ν•˜λ©΄ λ©”μ„œλ“œ μ°Έμ‘°λ₯Ό μ‰½κ²Œ ν•  수 μžˆλ‹€. μ΄λŠ” λžŒλ‹€μ‹μ΄ ν•˜λ‚˜μ˜ λ©”μ„œλ“œ ν˜ΈμΆœλ§Œμ„ μˆ˜ν–‰ν•˜λŠ” κ²½μš°μ— μœ μš©ν•˜κ³ , 읡λͺ… ν΄λž˜μŠ€μ—μ„œλŠ” λ©”μ„œλ“œ μ°Έμ‘°λ₯Ό μ‚¬μš©ν•  수 μ—†λ‹€.

ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€μ™€μ˜ 관계: λžŒλ‹€μ‹μ€ ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€μ™€ 자주 ν•¨κ»˜ μ‚¬μš©λœλ‹€. μ—¬κΈ°μ„œ ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€λŠ” ν•˜λ‚˜μ˜ 좔상 λ©”μ„œλ“œλ§Œμ„ κ°€μ§€κ³  μžˆλŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§ν•œλ‹€. λžŒλ‹€μ‹μ€ μ΄λŸ¬ν•œ ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€μ˜ κ΅¬ν˜„μ²΄λ‘œ μ‚¬μš©λ  수 μžˆλ‹€.

λžŒλ‹€μ‹μ€ μ–΄λ–»κ²Œ ν‘œν˜„ν• κΉŒ?

(parameters) -> expression

μ—¬κΈ°μ„œ,

parameters: λžŒλ‹€μ‹μ— μ „λ‹¬λ˜λŠ” λ§€κ°œλ³€μˆ˜μ΄λ‹€. λ§€κ°œλ³€μˆ˜κ°€ μ—†λŠ” κ²½μš°μ—λŠ” 빈 κ΄„ν˜Έ ()λ₯Ό μ‚¬μš©ν•˜κ³ , μ—¬λŸ¬ 개의 λ§€κ°œλ³€μˆ˜κ°€ μžˆλŠ” κ²½μš°μ—λŠ” κ΄„ν˜Έ μ•ˆμ— μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜μ—¬ λ‚˜μ—΄ν•œλ‹€.
->: λžŒλ‹€ ν™”μ‚΄ν‘œ(arrow)λŠ” λ§€κ°œλ³€μˆ˜μ™€ ν‘œν˜„μ‹ λ˜λŠ” μ½”λ“œ 블둝을 λΆ„λ¦¬ν•œλ‹€.
expression: λžŒλ‹€μ‹μ˜ κ²°κ³Όλ₯Ό κ³„μ‚°ν•˜λŠ” ν‘œν˜„μ‹μ΄λ‹€. 결과값이 있고, ν•œ μ€„λ‘œ ν‘œν˜„ κ°€λŠ₯ν•œ 경우 μ‚¬μš©λœλ‹€.
{}: λžŒλ‹€μ‹μ˜ λͺΈμ²΄(body)λ₯Ό κ°μ‹ΈλŠ” μ€‘κ΄„ν˜Έμ΄λ‹€. μ—¬λŸ¬ μ€„μ˜ μ½”λ“œλ‘œ ν‘œν˜„ν•˜κ±°λ‚˜ 결과값을 λͺ…μ‹œμ μœΌλ‘œ λ°˜ν™˜ν•΄μ•Ό ν•  λ•Œ μ‚¬μš©λœλ‹€.

두 수의 합을 κ΅¬ν•˜λŠ” μ½”λ“œ μ˜ˆμ‹œ

(int a, int b) -> {
    int sum = a + b;
    System.out.println("두 수의 ν•©: " + sum);
}
profile
μ΄κ²ƒμ €κ²ƒλ§Œλ“€μ–΄λ³΄κ³ μ‹Άμ–΄μš”!

0개의 λŒ“κΈ€