λ³΄ν΅ λ³μμ static ν€μλλ νλ‘κ·Έλλ° μ λ©λͺ¨λ¦¬μ ν¨μ¨λ³΄λ€λ 곡μ νκΈ° μν μ©λλ‘ ν¨μ¬ λ λ§μ΄ μ¬μ©νκ² λλ€.
//Student Class
private String name;
private int score;
public Student(String n, int s) {
this.name = n;
this.score = s;
}
public void getInfo() {
System.out.println(" -- getInfo() --");
System.out.println(" name :" + name);
System.out.println(" score :" + score);
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
if(score > 50) this.score = score;
}
//MainClass
{
Student student1 = new Student("νκΈΈλ", 90);
student1.getInfo();
student1.setScore(100);
student1.getInfo();
}
κ²°κ³Ό
---getInfo()---
name : νκΈΈλ
score : 90
---getInfo()---
name : νκΈΈλ
score : 100
λΆλͺ¨ ν΄λμ€λ₯Ό μμλ°μ μμ ν΄λμ€λ λΆλͺ¨ ν΄λμ€μ μμ±κ³Ό κΈ°λ₯λ μ΄μ©ν μ μλ€.
λΆλͺ¨ ν΄λμ€μ private μ κ·Όμ
: μμ ν΄λμ€λ λΆλͺ¨ ν΄λμ€μ λͺ¨λ μμμ μ¬μ©ν μ μμ§λ§, private μ κ·Όμμ μμ±κ³Ό λ©μλλ μ¬μ©ν μ μλ€.
: λΆλͺ¨ ν΄λμ€μ κΈ°λ₯μ μμ ν΄λμ€μμ μ¬μ μν΄μ μ¬μ©νλ€.
public class ParentClass {
public void makeJJajang() {
System.out.println(" -- makeJJajang() START --");
}
}
public class ChildClass extends ParentClass {
@Override
public void makeJJajang() {
System.out.println(" -- more delicious makeJJajang() START --");
}
}
ChildClass child = new ChildClass();
child.makeJJajang();
// κ²°κ³Ό
// -- more delicious makeJJajang()
(2) μλ£ν(νμ
)
: κΈ°λ³Έ μλ£νμ²λΌ ν΄λμ€λ μλ£νμ΄λ€.
(3) Objectν΄λμ€
: λͺ¨λ ν΄λμ€μ μ΅μμ ν΄λμ€λ Object Classμ΄λ€.
(4) super ν΄λμ€
: μμ ν΄λμ€λ₯Ό νΈμΆν λ super ν€μλλ₯Ό μ΄μ©νλ€.
public class ParentClass {
int openYear = 1995;
public void makeJJajang() {
System.out.println(" -- makeJJajang() START --");
}
}
public class ChildClass extends ParentClass {
int openYear = 2000;
public void getOpenYear() {
System.out.println("ChildClass's Open year : " + this.openYear);
System.out.println("ParentClass's Open year : " + super.openYear);
}
ChildClass c = new ChildClass();
c.getOpenYear();
// κ²°κ³Ό
// ChildClass's Open year : 2000
// ParentClass's Open year : 1995
: μ΄λ¦μ΄ μλ ν΄λμ€λ‘ μ£Όλ‘ λ©μλλ₯Ό μ¬μ μ νλ λͺ©μ μΌλ‘ μ¬μ©λλ€.
μ΅λͺ
ν΄λμ€λ μΈν°νμ΄μ€λ μΆμν΄λμ€μμ μ£Όλ‘ μ΄μ©λλ€.
public class AnonymousClass {
public AnonymousClass() {
System.out.println("AnonymousClass constructor");
}
public void method() {
System.out.println(" -- AnonymousClass's method START == ");
}
}
// Main Class
new AnonymousClass() {
@Override
public void method() {
System.out.println(" -- AnonymousClass's Override method START -- ");
};
}.method();
// κ²°κ³Ό
// -- AnonymousClass's Override method START --
μΈν°νμ΄μ€λ ?
ν΄λμ€μ λ¬λ¦¬ κ°μ²΄λ₯Ό μμ±ν μλ μμΌλ©°, ν΄λμ€μμ ꡬνν΄μΌ νλ μμ λͺ μΈμμ΄λ€.
: μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ μ΄μ λ λ§μ§λ§, κ°μ₯ ν° μ΄μ λ κ°μ²΄κ° λ€μν μλ£ν(νμ )μ κ°μ§ μ μκΈ° λλ¬Έμ΄λ€.
: class λμ interface ν€μλλ₯Ό μ¬μ©νλ©°, extend λμ implements ν€μλλ₯Ό μ΄μ©νλ€.
// InterfaceA
public interface InterfaceA {
public void funA();
}
//InterfaceB
public interface InterfaceB {
public void funB();
}
//ImplementClass
public class ImplementClass implements InterfaceA, InterfaceB {
@Override
public void funA() { System.out.println("-- funA --"); }
public void funB() { System.out.println("-- funB --"); }
}
: interfaceλ₯Ό μ΄μ©νλ©΄ κ°μ²΄κ° λ€μν μλ£ν(νμ
)μ κ°μ§ μ μλ€.
Toy robot = new ToyRobot();
Toy airplane = new ToyAirplane();
Toy toys[] = {robot, airplane};
for (int i = 0; i < toys.length; i++) {
toys[i].walk();
toys[i].run();
toys[i].alarm();
toys[i].light();
System.out.println();
}
//κ²°κ³Ό
The robot can walk.
The robot can run.
The robot has no alarm function.
The robot has light function.
The airplane can not walk.
The airplane can not run.
The airplane has alarm function.
The airplane has no light function.
μΆμν΄λμ€λ?
: ν΄λμ€μ 곡ν΅λ λΆλΆμ λ½μμ λ³λμ ν΄λμ€(μΆμν΄λμ€)λ‘ λ§λ€μ΄λκ³ , μ΄κ²μ μμν΄μ μ¬μ©νλ€.
(1) μΆμ λ©μλλ₯Ό κ°μ§λ€.
(2) κ°μ²΄ μμ±μ΄ λΆκ°νλ©° μλ£ν(νμ
)μΌλ‘ μ¬μ©λλ€.
- μΈν°νμ΄μ€
: μμ, μΆμλ©μλλ§ κ°μ§λ€.
: μΆμ λ©μλλ₯Ό ꡬνλ§ νλλ‘κ³ νλ€.
: λ€νμ±μ μ§μνλ€.
- μΆμν΄λμ€
: ν΄λμ€κ° κ°μ§λ λͺ¨λ μμ±κ³Ό κΈ°λ₯μ κ°μ§λ€.
: μΆμ λ©μλ ꡬν λ° μμμ κΈ°λ₯μ κ°μ§λ€.
: λ¨μΌ μμλ§ μ§μνλ€.
λλ€μμ΄λ?
: μ΅λͺ ν¨μλ₯Ό μ΄μ©ν΄μ μ΅λͺ κ°μ²΄λ₯Ό μμ±νκΈ° μν μ
public interface LambdaInterface1 {
public void method(String s1, String s2, String s3);
}
//Main Class
LambdaInterface1 li1 = (String s1, String s2, String s3) -> { System.out.println(s1 + " " + s2 + " " + s3); };
li1.method("Hello", "java", "World");
// 맀κ°λ³μκ° 1κ°μ΄κ±°λ νμ
μ΄ κ°μ λ, νμ
μ μλ΅ν μ μλ€.
LambdaInterface2 li2 = (s1) -> { System.out.println(s1); };
li2.method("Hello");
// μ€νλ¬Έμ΄ 1κ°μΌ λ, '{}'λ₯Ό μλ΅ν μ μλ€.
LambdaInterface3 li3 = (s1) -> System.out.println(s1);
li3.method("Hello");
// 맀κ°λ³μμ μ€νλ¬Έμ΄ 1κ°μΌ λ, '()'μ '{}'λ₯Ό μλ΅ν μ μλ€.
LambdaInterface3 li4 = s1 -> System.out.println(s1);
li4.method("Hello");
// 맀κ°λ³μκ° μμ λ, '()'λ§ μμ±νλ€.
LambdaInterface3 li5 = () -> System.out.println("no param");
li5.method();
λ¬Έμμ΄μ λ€λ£¨λ String ν΄λμ€(κ°μ²΄)λ λ°μ΄ν°κ° λ³νλ©΄ λ©λͺ¨λ¦¬μμ λ³νκ° λ§μ μλκ° λ리λ€.
StringBuffer, StringBuilder
: String ν΄λμ€μ λ¨μ μ 보μν ν΄λμ€λ‘ λ°μ΄ν°κ° λ³κ²½λλ©΄ λ©λͺ¨λ¦¬μμ κΈ°μ‘΄ κ°μ²΄λ₯Ό μ¬νμ©νλ€.
StringBuffer sf = new StringBuffer("JAVA"); sf.append("_8");
π List
: Listλ μΈν°νμ΄μ€λ‘ μ΄λ₯Ό ꡬνν ν΄λμ€λ μΈλ±μ€λ₯Ό μ΄μ©ν΄μ λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ€.
π Map
: Mapμ μΈν°νμ΄μ€λ‘ μ΄λ₯Ό ꡬνν ν΄λμ€λ keyλ₯Ό μ΄μ©ν΄μ λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ€.