<Javaμ μ μ κ°μ 3ν>μ κΈ°λ³ΈμΌλ‘ λ°°μ΄ λ΄μ©μ λλ€.
λͺ©μ°¨
- 1. μμ inheritance
- 2. μ€λ²λΌμ΄λ© overriding
- 3. packageμ import
- 4. μ μ΄μ modifier
1. μμ inheritance
- μ₯μ : μ½λμ μΆκ°, λ³κ²½μ΄ μ½κ³ , νλ‘κ·Έλ¨μ μμ°μ±κ³Ό μ μ§λ³΄μμ μ’λ€.
- νΉμ§
- μμ±μμ μ΄κΈ°ν λΈλμ μμν μ μκ³ , λ©€λ²(λ³μ, λ©μλ)λ§ μμ κ°λ₯νλ€.
- μ κ·Ό μ μ΄μκ° private, defaultμΈ λ©€λ²μ μμμ κ°λ₯νμ§λ§, μμν΄λμ€λ‘λΆν°μ μ κ·Όμ μ νλλ€.
- μλ°μ κ²½μ° λ¨μΌ μμλ§μ νμ©νλ€.
μ₯μ | λ¨μ | |
λ€μ€ μμ | 볡ν©μ μΈ κΈ°λ₯μ κ°μ§ ν΄λμ€λ₯Ό μ½κ² μμ± κ°λ₯ | ν΄λκ°μ κ΄κ³κ° λ§€μ° λ³΅μ‘ |
λ¨μΌ μμ(μλ°) | ν΄λμ€κ°μ κ΄κ³κ° λ³΄λ€ λͺ ν |
2. overriding(=overwrite)
2-1) overriding
- μ‘°μν΄λμ€λ‘λΆν° μμλ°μ λ©μλμ λ΄μ©μ μμ ν΄λμ€μ λ§κ² λ³κ²½νλ κ²
- 쑰건
- μ μΈνμ (μ΄λ¦, 맀κ°λ³μ, λ°ννμ )μ΄ κ°μμΌ νλ€.
- μ κ·Ό μ μ΄μλ₯Ό μ‘°μ ν΄λμ€μ λ©μλλ³΄λ€ μ’μ λ²μλ‘ λ³κ²½ν μ μλ€.
- μ‘°μ ν΄λμ€λ³΄λ€ μμΈλ₯Ό λ§μ΄ μ μΈν μ μλ€.
- μΈμ€ν΄μ€ λ©μλμ staticλ©μλλ₯Ό μλ‘ λ³κ²½ν μλ μλ€.
2-2) overloading / overriding
overloading |
ν ν΄λμ€μ κ°μ μ΄λ¦ μ¬λ¬κ° μ μ |
overriding | μμ λ°μ λ©μλμ λ΄μ© λ³κ²½ |
2-3) superμ super()
- super
- λΆλͺ¨ ν΄λμ€λ‘λΆν° μμλ°μ νλλ λ©μλλ₯Ό μμ ν΄λμ€μμ μ°Έμ‘°νλ λ° μ¬μ©νλ μ°Έμ‘° λ³μ
- μΈμ€ν΄μ€ λ³μμ μ΄λ¦κ³Ό μ§μ λ³μμ μ΄λ¦μ΄ κ°μ κ²½μ° μΈμ€ν΄μ€ λ³μ μμ thisν€μλλ₯Ό μ¬μ©νμ¬ κ΅¬λΆν μ μλ κ²κ³Ό λ§μ°¬κ°μ§λ‘ λΆλͺ¨ ν΄λμ€μ λ©€λ²μ μμ ν΄λμ€μ λ©€λ² μ΄λ¦μ΄ κ°μ κ²½μ° superν€μλλ₯Ό μ¬μ©νμ¬ κ΅¬λ³ν μ μλ€.
- thisμ λ§μ°¬κ°μ§λ‘ μΈμ€ν΄μ€μλ μ¬μ©κ°λ₯νμ§λ§, ν΄λμ€ λ©μλμμλ μ¬μ©ν μ μλ€.
- super()
- this()λ©μλκ° κ°μ ν΄λμ€μ λ€λ₯Έ μμ±μλ₯Ό νΈμΆν λ μ¬μ©λλ€λ©΄ superλ©μλλ λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό νΈμΆν λ μ¬μ©λλ€.
- μμ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±νλ©΄, ν΄λΉ μΈμ€ν΄μ€μλ μμ ν΄λμ€μ κ³ μ λ©€λ²λΏλ§ μλλΌ λΆλͺ¨ ν΄λμ€μ λͺ¨λ λ©€λ²κΉμ§λ ν¬ν¨λμ΄ μκΈ° λλ¬Έμ, λΆλͺ¨ ν΄λμ€μ λ©€λ²λ₯Ό μ΄κΈ°ννκΈ° μν΄μλ μμ ν΄λμ€μ μμ±μμμ λΆλͺ¨ ν΄λμ€μ μμ±μκΉμ§ νΈμΆν΄μΌ νλ€. λ°λΌμ μλ° μ»΄νμΌλ¬λ λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό λͺ μμ μΌλ‘ νΈμΆνμ§ μλ λͺ¨λ μμ ν΄λμ€μ μμ±μ 첫 μ€μ μλμΌλ‘ λ€μκ³Ό κ°μ λͺ λ Ήλ¬Έμ μΆκ°νμ¬, λΆλͺ¨ ν΄λμ€μ λ©€λ²λ₯Ό μ΄κΈ°νν μ μλλ‘ ν΄μ€λ€.
this | super |
staticλ©μλμμλ μ¬μ©ν μ μλ€. μμλ°μ λ©€λ²(super)λ μμ ν΄λμ€ μμ μ λ©€λ²(this)μ΄λ€. |
|
μ‘°μμ λ©€λ²μ μμ μ λ©€λ²λ₯Ό ꡬλ³ν λ μ¬μ©λλ€. |
3. μ μΈ - packageμ import
- package
package ν¨ν€μ§λͺ
; //첫λ²μ§Έ μ€μ μμ±
- 물리μ μΌλ‘ νλμ ν΄λμ€ νμΌ(.class)μ ν¬ν¨νλ νλμ λλ ν 리μ΄λ€.
- νλμ μμ€νμΌμλ packageμ μΈμ νλ²λ§ νμ©νλ€.
- import문
import ν¨ν€μ§λͺ
;
import ν¨ν€μ§λͺ
.ν΄λμ€λͺ
;
- packageμ λ¬λ¦¬ μ¬λ¬λ² μ μΈ κ°λ₯νλ€.
- importλ¬ΈμΌλ‘ μ¬μ©νκ³ μνλ ν΄λμ€μ ν¨ν€μ§λ₯Ό 미리 λͺ μν΄μ£Όλ©΄ μ¬μ©λλ ν΄λμ€ μ΄λ¦μμ ν¨ν€μ§λͺ μ μλ΅ν μ μλ€.
4. μ μ΄μ modifier
μ μ΄μλ ν΄λμ€λ, λ³μ, λ©μλμ μ μΈλΆμ ν¨κ» μ¬μ©λμ΄ λΆκ°μ μΈ μλ―Έλ₯Ό λΆμ¬νλ€.
μ¬λ¬ μ μ΄μλ₯Ό μ‘°ν©νμ¬ μ¬μ©νλ κ²μ΄ κ°λ₯νλ€. (μ κ·Όμ μ΄μλ 1κ°λ§ μ¬μ©κ°λ₯)
μ κ·Όμ μ΄μ : public, protected, default, private κ·Έ μΈ μ μ΄μ : static, final, abstract, native .... |
4-1) μ κ·Ό μ μ΄μ : μΈλΆλ‘λΆν° λ°μ΄ν°λ₯Ό 보νΈ(μΊ‘μν)νκΈ° μν΄ μ¬μ©λ¨.
λμ | μ¬μ©κ°λ₯ν μ κ·Ό μ μ΄μ |
ν΄λμ€ | public, (default) |
λ©μλ | public, protected, (default), private |
λ©€λ²λ³μ | |
μ§μλ³μ | X |
μλνλ μ μ΄μμ λ°λ₯Έ μ κ·Ό κ°λ₯ λ²μμ΄λ€.
μ μ΄μ | κ°μ ν΄λμ€ | κ°μ ν¨ν€μ§ | μμ ν΄λμ€ | μ 체 |
public | β | β | β | β |
protected | β | β | β | |
(default) | β | β | ||
private | β |
4-2) κ·Έ μΈ μ μ΄μ
static | λ©€λ²λ³μ | - λͺ¨λ μΈμ€ν΄μ€μ 곡ν΅μ μΌλ‘ μ¬μ©λλ ν΄λμ€λ³μκ° λλ€. - ν΄λμ€λ³μλ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ λ μ¬μ© κ°λ₯νλ€. - ν΄λμ€κ° λ©λͺ¨λ¦¬μ λ‘λλ λ μμ±λλ€. |
λ©μλ | - μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ λ νΈμΆμ΄ κ°λ₯ν staticλ©μλκ° λλ€. - staticλ©μλ λ΄μμλ μΈμ€ν΄μ€λ©€λ²λ€μ μ§μ μ¬μ©ν μ μλ€.(λ°λ‘ μμ±ν΄μΌνλ€.) |
|
final | ν΄λμ€ | λ³κ²½λ μ μλ ν΄λμ€, νμ₯λ μ μλ ν΄λμ€κ° λλ€. |
λ©μλ | λ³κ²½λ μ μλ λ©μλ, finalλ‘ μ§μ λ λ©μλλ μ€λ²λΌμ΄λ©μ ν΅ν΄ μ¬μ μ λ μ μλ€. | |
λ©€λ²λ³μ | λ³μ μμ finalμ΄ λΆμΌλ©΄, κ°μ λ³κ²½ν μ μλ μμκ° λλ€. | |
μ§μλ³μ | ||
abstract | ν΄λμ€ | ν΄λμ€ λ΄μ μΆμ λ©μλκ° μ μΈλμ΄ μμμ μλ―Ένλ€. |
λ©μλ | μ μΈλΆλ§ μμ±νκ³ κ΅¬νλΆλ μμ±νμ§ μμ μΆμ λ©μλμμ μλ¦°λ€. |
4-3) μ μ΄μμ μ‘°ν©
- λμμ λ°λ₯Έ μ¬μ©κ°λ₯ν μ μ΄μ
λμ | μ¬μ©κ°λ₯ν μ κ·Ό μ μ΄μ | μ¬μ©κ°λ₯ν κ·Έ μΈ μ μ΄μ |
ν΄λμ€ | public, (default) | final, abstract |
λ©μλ | public, protected, (default), private | final, abstract, static |
λ©€λ²λ³μ | final, static | |
μ§μλ³μ | X | final |
- μ£Όμν μ
'π° μΈμ΄ > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
java.lang ν¨ν€μ§ (0) | 2020.06.13 |
---|---|
μλ°, κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°(3) (0) | 2020.06.09 |
μλ°, κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°(1) (0) | 2020.06.04 |
switch/case문 (0) | 2020.06.04 |
μ½μ μ μΆλ ₯ (0) | 2020.06.04 |