print μ€λ°κΏβββ, println : μ€λ°κΏβββ!!!!μμ±μλ κ°μ²΄λ₯Ό μμ±ν λ νΈμΆλλ νΉλ³ν λ©μλ
μλ°μμ μμ κ΄κ³μ μμ λ μμ±μλ₯Ό νΈμΆνλ©΄, μμ ν΄λμ€μ μμ±μ μ€νμ μμ λΆλͺ¨ ν΄λμ€μ μμ±μκ° λ¨Όμ νΈμΆλλ€. superλ₯Ό μ¬μ©ν΄ λͺ
μμ μΌλ‘ λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό μ§μ ν μ μμΌλ©°, μ΄ κ²½μ° μ§μ λ λΆλͺ¨ μμ±μκ° μ€νλλ€. λͺ
μμ μΌλ‘ λΆλͺ¨ μμ±μλ₯Ό νΈμΆνμ§ μμΌλ©΄, 묡μμ μΌλ‘ μΈμ μλ λΆλͺ¨ ν΄λμ€μ κΈ°λ³Έ μμ±μκ° μλμΌλ‘ νΈμΆλλ€.
λΆλͺ¨ ν΄λμ€μ μμ±μκ° μ€νμ λ§μΉκ³ λλ©΄, μμ ν΄λμ€μ μμ±μλ‘ λμμμ μ½λλ₯Ό κ³μ μ€ννλ€.
κ°μ μ΄λ¦μ λ©μλλ₯Ό λ§€κ°λ³μμ κ°μ λλ νμ
μ λ°λΌ μ¬λ¬λ² μ μνλ κ²
class Calculator {
// add λ©μλ, μ€λ²λ‘λ©μ μ¬μ©νμ¬ μ μ
int add(int a, int b) {
return a + b;
}
// λ§€κ°λ³μμ κ°μκ° λ€λ₯Έ add λ©μλ
int add(int a, int b, int c) {
return a + b + c;
}
}
Calculator calc = new Calculator();
System.out.println(calc.add(5, 10)); // 15
System.out.println(calc.add(5, 10, 15)); // 30
μμ κ΄κ³ μμ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μμ ν΄λμ€κ° μ¬μ μ νλ κ². (λ©μλλͺ
, λ§€κ°λ³μμ νμ
κ³Ό κ°μ, λ°ν νμ
μ λμΌν΄μΌ ν¨)
class Animal {
void sound() {
System.out.println("λλ¬Ό μ리");
}
}
class Dog extends Animal {
// Animal ν΄λμ€μ sound λ©μλ μ€λ²λΌμ΄λ©
void sound() {
System.out.println("λ©λ©");
}
}
Animal dog = new Dog();
dog.sound(); // λ©λ©
μμ ν΄λμ€μ static λ©μλλ₯Ό νμ ν΄λμ€μμ κ°μ μ νμΌλ‘ λ€μ μ μΈνλ κ². νμ΄λ©λ λ©μλλ λ©μλ νΈμΆμ΄ ν΄λμ€ νμ
μ λ°λΌ κ²°μ λλ€. (μμ κ΄κ³μμλ§ λ°μνλ©° μ μ λ©μλμ νμ λ νΉμ±)
class Base {
static void display() {
System.out.println("λΆλͺ¨ ν΄λμ€μ λμ€νλ μ΄ λ©μλ");
}
}
class Derived extends Base {
// Base ν΄λμ€μ display λ©μλ νλ©
static void display() {
System.out.println("μμ ν΄λμ€μ λμ€νλ μ΄ λ©μλ");
}
}
Base.display(); // λΆλͺ¨ ν΄λμ€μ λμ€νλ μ΄ λ©μλ
Derived.display(); // μμ ν΄λμ€μ λμ€νλ μ΄ λ©μλ
class A {
static void f() { System.out.print("1 "); } // λΆλͺ¨ ν΄λμ€μ μ μ λ©μλ
void g() { System.out.print("2 "); } // λΆλͺ¨ ν΄λμ€μ μΈμ€ν΄μ€ λ©μλ
}
class B extends A {
static void f() { System.out.print("3 "); } // νμ΄λ©: A ν΄λμ€μ f() λ©μλλ₯Ό νμ΄λ©
void g() { System.out.print("4 "); } // μ€λ²λΌμ΄λ©: A ν΄λμ€μ g() λ©μλλ₯Ό μ€λ²λΌμ΄λ©
}
class C {
public static void main(String[] args) {
A a = new B();
a.f(); // νμ΄λ©λ λ©μλ νΈμΆ, Aμ f()κ° νΈμΆλ¨
a.g(); // μ€λ²λΌμ΄λ©λ λ©μλ νΈμΆ, Bμ g()κ° νΈμΆλ¨
}
}
// μΆμ ν΄λμ€ μ μ
abstract class λλ¬Ό {
abstract void μΈλ€(); // μΆμ λ©μλ, ꡬνλμ§ μμ
// μΆμ ν΄λμ€ λ΄μμλ μΌλ° λ©μλ ꡬνμ΄ κ°λ₯
void μ¨μ¬λ€() {
System.out.println("μ¨μ μ½λλ€.");
}
}
// μΆμ ν΄λμ€λ₯Ό μμλ°μ ꡬ체μ μΈ ν΄λμ€ μ μ
class κ° extends λλ¬Ό {
// μΆμ λ©μλ 'μΈλ€' ꡬν
void μΈλ€() {
System.out.println("λ©λ©!");
}
}
class κ³ μμ΄ extends λλ¬Ό {
// μΆμ λ©μλ 'μΈλ€' ꡬν
void μΈλ€() {
System.out.println("μΌμΉ!");
}
}
public class μΆμν΄λμ€μμ {
public static void main(String[] args) {
κ° κ° = new κ°(); // 'κ°' ν΄λμ€μ μΈμ€ν΄μ€ μμ±
κ°.μΈλ€(); // ꡬνλ λ©μλ νΈμΆ
κ°.μ¨μ¬λ€(); // μμλ°μ μΌλ° λ©μλ νΈμΆ
κ³ μμ΄ κ³ μμ΄ = new κ³ μμ΄(); // 'κ³ μμ΄' ν΄λμ€μ μΈμ€ν΄μ€ μμ±
κ³ μμ΄.μΈλ€(); // ꡬνλ λ©μλ νΈμΆ
κ³ μμ΄.μ¨μ¬λ€(); // μμλ°μ μΌλ° λ©μλ νΈμΆ
}
}
Javaμμλ μ νμ μ§μ νμ§ μκ³ μμ§μλ₯Ό μ¬μ©νλ©΄ κΈ°λ³Έμ μΌλ‘ doubleλ‘ μ²λ¦¬
(λͺ
μμ μΌλ‘ floatλ‘ λ§λ€λ €λ©΄ 24.8fμ κ°μ΄ μ«μ λ€μ f λλ Fλ₯Ό μΆκ°ν΄μΌ ν¨)
class Calculate {
public int cal(int a, int b) {
return a - b; // aμ bμ μ°¨λ₯Ό λ°ν
}
// λ μ€μ(float)μ λ§μ
μ μννλ λ©μλ
public float cal(float a, float b) {
return a + b; // aμ bμ ν©μ λ°ν
}
// λ μ€μ(double)μ λ§μ
μ μννλ λ©μλ
public double cal(double a, double b) {
return a + b; // aμ bμ ν©μ λ°ν
}
// μΈ μ μμ λ§μ
μ μννλ λ©μλ
public int cal(int a, int b, int c) {
return a + b + c; // a, b, cμ ν©μ λ°ν
}
}
class Example {
public static void main(String[] args) {
Calculate a = new Calculate(); // 'Calculate' ν΄λμ€μ μΈμ€ν΄μ€ μμ±
System.out.println(a.cal(31, 69, 25)); // μΆλ ₯: 125
// μ€μ(double) λ§μ
λ©μλ νΈμΆ λ° κ²°κ³Ό μΆλ ₯
System.out.println(a.cal(24.8, 5.1)); // μΆλ ₯: 29.9
}
}
class Adder {
// μ€λ²λ‘λ©(Overloading): κ°μ μ΄λ¦μ λ©μλλ₯Ό λ§€κ°λ³μμ μ νκ³Ό κ°μλ₯Ό λ€λ₯΄κ² ν΄μ μ¬λ¬ κ° μ μ
public int add(int a, int b) { return a+b; } // μ μ λ§μ
public double add(double a, double b) { return a+b; } // μ€μ λ§μ
}
// Computer ν΄λμ€: Adder ν΄λμ€λ₯Ό μμ(Inheritance)λ°μ μλ‘μ΄ κΈ°λ₯μ μΆκ°
class Computer extends Adder {
// μΊ‘μν(Encapsulation) λ° μ 보 μλ(Information Hiding): λ³μ xλ₯Ό privateλ‘ μ μΈνμ¬ μΈλΆ μ κ·Ό μ ν
private int x;
// μ€λ²λ‘λ©λ add λ©μλ: λ§€κ°λ³μκ° μΈ κ°μΈ μ μ λ§μ
public int cal(int a, int b, int c) {
if (a == 1) return add(b, c); // μμλ°μ Adderμ add λ©μλ μ¬μ©
else return x;
}
}
class Adder_Main {
public static void main(String[] args) {
Computer c = new Computer();
// μ€λ²λ‘λ©λ λ©μλ νΈμΆ: int νμκ³Ό double νμμ λ§κ² add λ©μλκ° νΈμΆλ¨
System.out.println("100 + 200 = " + c.add(100, 200));
System.out.println("5.7 + 9.8 = " + c.add(5.7, 9.8));
}
}
// κΈ°λ³Έ ν΄λμ€ X μ μ
class X {
int i;
X() { i = 10; } // μμ±μμμ iλ₯Ό 10μΌλ‘ μ΄κΈ°ν
void print() { System.out.print(i+", "); } // iκ° μΆλ ₯
}
// Xλ₯Ό μμλ°λ ν΄λμ€ Y μ μ
class Y extends X {
int i; // ν΄λμ€ Xμ λμΌν μ΄λ¦μ i λ³μλ₯Ό κ°μ§
int j;
Y() {
i = 15; // Yμ iλ₯Ό 15λ‘ μ΄κΈ°ν
j = 20; // Yμ jλ₯Ό 20μΌλ‘ μ΄κΈ°ν
}
void print() { System.out.print(j+", "); } // Yμ jκ° μΆλ ₯
void superprint() { super.print(); } // Xμ print() νΈμΆ
}
// Yλ₯Ό μμλ°λ ν΄λμ€ Z μ μ
class Z extends Y {
int k;
Z() {
super(); // λΆλͺ¨ ν΄λμ€ Yμ μμ±μ νΈμΆ
k = 30; // Zμ kλ₯Ό 30μΌλ‘ μ΄κΈ°ν
}
void print() { System.out.print(k+", "); } // Zμ kκ° μΆλ ₯
void test() {
print(); // Zμ print() νΈμΆ
superprint(); // Yμ print() νΈμΆ
System.out.print(super.j+", "); // Yμ jκ° μΆλ ₯
System.out.println(i); // Zμ iκ° μΆλ ₯ (μ¬κΈ°μλ Yμ iκ° μΆλ ₯λ¨)
}
}
// λ©μΈ ν΄λμ€μ λ©μΈ λ©μλ μ μ
public class Main {
public static void main(String[] args) {
Z z = new Z(); // Z ν΄λμ€μ μΈμ€ν΄μ€ μμ±
z.test(); // Zμ test() λ©μλ νΈμΆ
}
}