μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |
- index skip scan
- μν°λ λ³μ’ κ°λ°μ
- mysql
- λ°μ©λ μ€κ΅μ΄
- Item6
- hikari cp μ€μ
- enum μμ±μ μ κ·Ό μ νμ
- μλ°μμ
- μμ
- μλ°μμμ°λ λλ₯Ό μ¬μ©νλ μ΄μ
- μλ°λΌμ΄λΈμ€ν°λ
- μΈλ±μ€νμ€μΊ
- μμ΄ν 15
- μΈλ±μ€μ€ν΅μ€μΊ
- μλ°
- item15
- mysqlμν€ν μ²
- index full scan
- μν°λ κ°λ°μνμ¬
- builder null
- SVN
- λΉμΌκ°μ²΄μμ±
- Hikari Connection Pool
- μλ°μ°λ λ
- μ΄νν°λΈμλ°
- μλΌμ€ν±μμΉλ©μΈμ§μ©λ
- λ°μ΄ν°λ² μ΄μ€κ²©λ¦¬μμ€
- effectiveJava
- assert.notnull
- InnoDBμν€ν μ²
- Today
- Total
βπ»κΈ°λ‘νλ λΈλ‘κ·Έ
[ JAVA ] μμ λ³Έλ¬Έ
μλ° λΌμ΄λΈ μ€ν°λ 6μ£Ό μ°¨ - μμ
github.com/whiteship/live-study/issues/6#issuecomment-751219666
1. μλ° μμμ νΉμ§
ν΄λμ€λ₯Ό μ μν λ κΈ°μ‘΄μ ꡬνλ ν΄λμ€λ₯Ό μμλ°μμ μμ± (λ³μ), κΈ°λ₯(λ©μλ)μ΄ νμ₯λλ κ²
κΈ°μ‘΄μ ν΄λμ€λ₯Ό κ°μ Έλ€κ° μ‘°κΈ λ νμ₯μ κ°λ
- uml λ€μ΄μ΄κ·Έλ¨μΌλ‘ μμμ νν μ μμλ°λ λΆλͺ¨ν΄λμ€λ₯Ό μμ ν΄λμ€κ° νμ΄νλ‘ κ°λ¦¬ν€κ² λλ€.
- λ€μ€ μμμ μ§μνμ§ μλλ€.
- μμμ νμμ μ ν λμ§ μλλ€.
2. super ν€μλ
λΆλͺ¨ ν΄λμ€λ‘λΆν° μμλ°μ νλλ λ©μλλ₯Ό μμ ν΄λμ€μμ μ°Έμ‘° μ μ¬μ©νλ μ°Έμ‘° λ³μ
λΆλͺ¨ ν΄λμ€μ λ©€λ²μ μμ ν΄λμ€μ λ©€λ² μ΄λ¦μ΄ κ°μ κ²½μ° super ν€μλλ₯Ό μ¬μ©νμ¬ κ΅¬λ³ κ°λ₯
class Parent{
int a = 10;
}
class Child extends Parent{
int a = 20;
void display(){
System.out.println(a);//20
System.out.println(this.a);//20
System.out.println(super.a);//λΆλͺ¨ν΄λμ€μ λ³μ a 10
}
}
public class inheritance{
public static void main(String[] args){
Child ch = new Child();
ch.display();
}
}
3. λ©μλ μ€λ²λΌμ΄λ© (κΈ°μ‘΄ λ©μλ μ¬μ μ)
μμκ΄κ³μ μλ λΆλͺ¨μ ν΄λμ€μμ μ΄λ―Έ μ μλ λ©μλλ₯Ό μμ ν΄λμ€μμ λμΌν μ΄λ¦μ λ©μλλ‘ μ¬λ¬ κ° μ¬μ μν΄μ μ¬μ©νλ κ²
(λΆλͺ¨μμ private μ κ·Ό μ νμλ₯Ό μ μΈν λͺ¨λ μμ μμμ΄ κ°λ₯)
μ€λ² λΌμ΄λ© 쑰건
1. μ€λ²λΌμ΄λ© λ©μλμ λμλ§ μ¬μ μ νλ―λ‘, μ μΈλΆλ κΈ°μ‘΄μ λ©μλμ λμΌν΄μΌ νλ€.
2. λΆλͺ¨ ν΄λμ€μμ μ μλ μ κ·Ό μ νμ λ³΄λ€ μ μ λ²μλ‘ λ³κ²½ λΆκ°
3. λΆλͺ¨ ν΄λμ€μμ μ μλ μμΈλ³΄λ€ λ ν° λ²μμ μμΈ μ μΈ λΆκ°
public class Test {
public static void main(String[] args) {
Parent pa = new Parent();
pa.display();
Child ch = new Child();
ch.display();
ch.display("hello World");
Parent pc = new Child();
pc.display();
}
}
class Parent {
void display() { System.out.println("λΆλͺ¨ν΄λμ€μ displayλ©μλμ
λλ€"); }
}
class Child extends Parent {
//μ€λ² λ‘λ©λ λ©μλ
void display() { System.out.println("μμ ν΄λμ€μμ μ¬μ μλ displayλ©μλμ
λλ€"); }
//μ€λ²λΌμ΄λ©λ λ©μλ
void display(String str) { System.out.println("μμν΄λμ€μμ μ¬μ μλ λ©μλμ
λλ€ : "+str);}
}
4. λ€μ΄λ΄λ―Ή λ©μλ λμ€ν¨μΉ (Dynamic Method Dispatch)
μ¬μ μν λ©μλλ₯Ό νΈμΆν λ, λ©μλμ κ°μ²΄ μ νμ μ»΄νμΌ νμμ΄ μλ λ°νμ μ ν΄μλλ κ³Όμ μ λ»νλ€.
class Animal {
public void move() {
System.out.println("Animals can move");
}
}
class Dog extends Animal {
public void move() {
System.out.println("Dogs can walk and run");
}
}
public class TestDog {
public static void main(String args[]) {
Animal a = new Animal(); // Animal reference and object
Animal b = new Dog(); // Animal reference but Dog object
a.move(); // Animals can move
b.move(); // Dogs can walk and run
}
}
μ»΄νμΌ μ μ°Έμ‘° νμ μ λ§λ€μ§λ§, λ°νμ μ μλ jvmμ΄ bμ κ°μ²΄ νμ κ³Ό move()κ° μ€μ λ‘ μν κ°μ²΄λ₯Ό ν΄κ²°νλ€.
κ·Έλ¬λ―λ‘ μ»΄νμΌ μ κΉμ§λ bλΌλ μ°Έμ‘° λ³μλ Animal ν΄λμ€μ moveλ©μλμ§λ§, λ°νμ μμλ jvmμ΄ μ€μ λ‘ μν κ°μ²΄ Dogν΄λμ€μ move()λ₯Ό κ°λ¦¬ν¨λ€.
5. μΆμ ν΄λμ€
μΆμ ν΄λμ€ μ μΈ νμ
abstract λ°ννμ
λ©μλμ΄λ¦();
ꡬνλ λ©μλλ νμ ν΄λμ€κ° 곡ν΅μΌλ‘ μ¬μ©νλ κΈ°λ₯μ λ©μλ , νμ ν΄λμ€μ λ°λΌ μ¬μ μκ° κ°λ₯
μΆμ ν΄λμ€λ new (μΈμ€ν΄μ€ν)κ° λΆκ°νλ€ → λ©μλμ λ°λκ° μμΌλ―λ‘
μμ) μμ£Ό μ¬μ©νλ λͺ¨λμ 곡ν΅λλ λΆλΆμ 미리 λ§λ€κ³ , λ°μ μ¬μ©νλ μͺ½μμ μμ μ΄ νμν λΆλΆλ§ μ¬μ μνμ¬ μ¬μ©, μμ°μ±μ΄ ν₯μ
λͺ¨λ λ©μλκ° κ΅¬νλμλ€κ³ ν΄λ ν΄λμ€μ abstract ν€μλλ₯Ό μ¬μ©νλ©΄ μΆμ ν΄λμ€
→ jdk λ΄λΆμλ μ‘΄μ¬, μ€λ‘μ§ μμμ μν μΆμ ν΄λμ€
2020/12/20 - [βοΈJava] - [ JAVA ] μΆμν΄λμ€
6. final ν€μλ
finalν€μλλ₯Ό μ΄μ©νμ¬ μμ±νλ ν νλ¦Ώ λ©μλ
μΆμ λ©μλλ ꡬνλ λ©μλλ₯Ό νμ©νμ¬ μ 체μ νλ¦μ μ μν΄ λλ λ©μλ, μλ μμμ²λΌ finalν€μλλ₯Ό μ¬μ©νμ¬ runλ©μλλ₯Ό μ μΈνλ―λ‘ runλ©μλμμ μ μΈλ λ©μλ μμκ° κ³ μ νμ¬ μμλ°μ νμ ν΄λμ€μμ ν νλ¦Ώμ²λΌ μ¬μ©μ΄ κ°λ₯νλ€.
finalλ‘ μ μΈνμ¬ μ¬μ μ ν μ μκ² ν¨
- finalλ³μ : κ°μ΄ λ³κ²½λ μ μλ μμ
- final λ©μλ : νμ ν΄λμ€μμ μ¬μ μ λΆκ°
- final ν΄λμ€ : λ μ΄μ μμλμ§ μμ ex ) javaμ string ν΄λμ€
package template;
public abstract class Car {
public abstract void drive();
public abstract void stop();
public void startCar(){
System.out.println("μλμ μΌλλ€.");
}
public void turnOff(){
System.out.println("μλμ λλλ€.");
}
final public void run(){//finalν€μλλ‘ νμν΄λμ€μμ μ¬μ μκ° λΆκ° νλλ‘ μ€μ
startCar();
drive();
stop();
turnOff();
}
}
7. Object ν΄λμ€ (java.lang.Object)
λͺ¨λ ν΄λμ€μ μ΅μμ ν΄λμ€, λͺ¨λ ν΄λμ€λ object ν΄λμ€λ₯Ό μμλ°λλ€. μ»΄νμΌλ¬κ° μλ import νλ€.
μ¬μ©μκ° μ§μ extendsνμ§ μμλ μ»΄νμΌλ¬κ° μλμΌλ‘ λ£μ΄μ€λ€.
java.langν¨ν€μ§λ μλ°μμ κ°μ₯ κΈ°λ³Έμ μΈ λμμ νλ ν΄λμ€
java.langν¨ν€μ§λ λ°λ‘ importνμ§ μμλ ν΄λμ€μ μ΄λ¦λ§μΌλ‘ μ¬μ©μ΄ κ°λ₯
ex) String, Void , System
- java.lang.Objectν΄λμ€
λͺ¨λ ν΄λμ€μ μ΅κ³ μ‘°μ ν΄λμ€, λͺ¨λ ν΄λμ€κ° objectν΄λμ€μ λͺ¨λ νλμ λ©μλ μμ λ°μ
λ°λ‘ extends νμ§ μμλ μ¬μ©μ΄ κ°λ₯ λ°λ‘ toString () λ©μλλ₯Ό μΈ μ μλ μ΄μ
Object ν΄λμ€λ νλλ₯Ό κ°μ§μ§ μμΌλ©°, μ΄ 11κ° λ©μλλ‘λ§ κ΅¬μ±
- toString()- toString() λ©μλλ κΈ°λ³Έμ μΌλ‘ apiν΄λμ€λ§λ€ μ체μ μΌλ‘ μ€λ² λΌμ΄λ©μ ν΅ν΄ μ¬μ μλλ€.
- - κ°μ²΄μ μ 보λ₯Ό stringννλ‘ λ°κΎΈμ΄ μ¬μ©ν λ μ μ©νλ€.
- - μΈμ€ν΄μ€μ λν μ 보λ₯Ό λ¬Έμμ΄λ‘ λ°ν, λ¬Έμμ΄μ ν΄λμ€ μ΄λ¦@16μ§μ ν΄μ¬ μ½λλ‘ μΆλ ₯λλ€.
- clone()
- filnalize()
- getClass()
- hashCode()
- notify()
- notifyAll()
- wait() / wait(long timeout) / wait(long timeout, int nanos)
- equalsλ κ°μ²΄μ λμΌν¨μ λ
Όλ¦¬μ μΌλ‘ μ¬μ μν μ μμ
- 물리μ λμΌν¨ : κ°μ μ£Όμλ₯Ό κ°μ§λ κ°μ²΄
- λ Όλ¦¬μ λμΌν¨ : κ°μ νλ²μ νμ, κ°μ μ£Όλ¬Έ λ²νΈμ μ£Όλ¬Έ
- 물리μ μΌλ‘ λ€λ₯Έ λ©λͺ¨λ¦¬μ μμΉν κ°μ²΄λΌλ λ Όλ¦¬μ μΌλ‘ λμΌν¨μ ꡬννκΈ° μν΄ μ¬μ©νλ 맀μλ
www.tutorialspoint.com/Dynamic-method-dispatch-or-Runtime-polymorphism-in-Java
'Language > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ JAVA ] μΈν°νμ΄μ€ (0) | 2021.01.08 |
---|---|
[ JAVA ] package (0) | 2021.01.01 |
[ JAVA ] μΆμν΄λμ€ (0) | 2020.12.20 |
[ JAVA ] κΈ°λ³Έν΄λμ€ ( Object, String, Wrapper) (0) | 2020.12.13 |
[ JAVA ] λ€νμ± polymorphism (0) | 2020.12.06 |