ch7
static importλ¬Έμ μ¬μ©νλ©΄ static λ©€λ²λ₯Ό νΈμΆν λ ν΄λμ€ μ΄λ¦μ μλ΅ν μ μλ€.
ex)
import static java.lang.Integar.*;
import static java.lang.Math.random;
//Math.random()λ§. κ΄νΈ μλΆμ
import static java.lang.System.out;
//System.outμ outλ§μΌλ‘ μ°Έμ‘° κ°λ₯
System.out.println(Math.random());
//μ μλμ κ°μ΄ νμ κ°λ₯
out.println(random());
μ μ΄μλ ν΄λμ€, λ³μ λλ λ©μλμ μ μΈλΆμ ν¨κ» μ¬μ©λμ΄ λΆκ°μ μΈ μλ―Έλ₯Ό λΆμ¬νλ€.
μ κ·Ό μ μ΄μ, κ·Έ μΈμ μ μ΄μλ‘ λλλ€.
μ κ·Ό μ μ΄μ: public, protected, default, private
κ·Έ μΈ: static, final, abstract, native,transient, synchronized, volatile, strictfp
'ν΄λμ€μ' λλ '곡ν΅μ μΈ'μ μλ―Έλ₯Ό μ§λ
- 맴λ²λ³μμμ staticμ¬μ©
- λͺ¨λ μΈμ€ν΄μ€μμ 곡ν΅μ μΌλ‘ μ¬μ©λλ ν΄λμ€ λ³μκ° λλ€.
- μΈμ€ν΄μ€ μμ± μμ΄ μ¬μ©κ°λ₯
- λͺ¨λ μΈμ€ν΄μ€μ λν΄ λμΌν κ°
- ν΄λμ€κ° λ©λͺ¨λ¦¬μ λ‘λλ λ μμ±λ¨ / new method μ΄μ μ μ΄λ―Έ μμ
- λ©μλμμ μ¬μ©
- μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ λ νΈμΆ κ°λ₯ν static λ©μλκ° λ¨
- static λ©μλ λ΄μμλ instance variableμ μ§μ μ μΌλ‘ μ¬μ©ν μ μμ
- μ΄κΈ°ν λΈλμμ μ¬μ©
- μΈμ€ν΄μ€ μμ± μ μ ν΄λμ€ μ΄κΈ°ν λΈλμ μ€νλλ€.
'λ§μ§λ§μ' λλ 'λ³κ²½λ μ μλ'μ μλ―Έλ₯Ό κ°μ§
- ν΄λμ€μμ μ¬μ©
- λ³κ²½λ μ μλ ν΄λμ€, νμ₯λΆκ°ν ν΄λμ€κ° λλ€.
- λ€λ₯Έ ν΄λμ€μ μ‘°μμ΄ λ μ μμ
- λ©μλμμ μ¬μ©
- finalλ‘ μ μλ λ©μλλ overridingλ μ μλ€.
- λ©€λ²λ³μ / μ§μλ³μμμ μ¬μ©
- κ°μ λ³κ²½ν μ μλ μμκ° λ¨!!
final class FinalTest{
final int MAX_SIZE = 10;
final void getMaxSize(){
final int LV = MAX_SIZE;
return MAX_SIZE;
}
}
- ν΄λμ€μμ μ¬μ©
- ν΄λμ€ λ΄μ μΆμ λ©μλκ° μ μλμ΄ μμμ μλ―Έ
- λ©μλμμ μ¬μ©
- μ μΈλΆλ§ μμ±νκ³ κ΅¬νλΆλ μμ±νμ§ μμ μΆμ λ©μλμ
μΆμλ©μλμ μμΈν λ΄μ©μ p.257('μΆμ ν΄λμ€')μμ λ€λ£Έ
λ©€λ² λλ ν΄λμ€λ₯Ό μΈλΆμμ μ κ·Όνμ§ λͺ»νλλ‘ μ ννλ μν μ νλ€.
μ κ·Ό μ μ΄μκ° μ¬μ©λ μ μλ κ³³ - ν΄λμ€, λ©€λ²λ³μ, λ©μλ, μμ±μ
private - κ°μ ν΄λμ€ λ΄μμλ§ μ κ·Ό κ°λ₯
default - κ°μ ν¨ν€μ§ λ΄μμλ§ μ κ·Ό κ°λ₯
protected - κ°μ ν¨ν€μ§ λ΄μμ, κ·Έλ¦¬κ³ λ€λ₯Έ ν¨ν€μ§μ μμ ν΄λ μ€μμ μ κ·Ό κ°λ₯
public - μ κ·Ό μ ν μμ
public > protected > (default) > private
ν΄λμ€ λ΄λΆμ μ μΈλ λ°μ΄ν°λ₯Ό 보νΈνκΈ° μν΄μμ΄λ€.
λ°μ΄ν°κ° μ ν¨ν κ°μ μ μ§νλλ‘, λΉλ°λ²νΈ κ°μ λ°μ΄ν°λ₯Ό μΈλΆμμ ν¨λΆλ‘ λ³κ²½νμ§ λͺ»νλλ‘ νκΈ° μν΄μ μ ν νμ
ex) μκ° ν΄λμ€
public class Time{ public int hour; public int minute; public int second; } Time t = new Time(); t.hour = 25;
μμ κ°μ΄ μΈλΆμμ ν΄λμ€ λ΄ hourκ°μ μ ν¨νμ§ μμ κ°(25)λ‘ λ³κ²½ν΄λ λ§μ λ°©λ²μ΄ μμ.
λ°λΌμ private int hourμ μ€μ νκ³ ,
public λ©μλλ₯Ό μ 곡ν¨μΌλ‘μ λ©μλλ΄ hourμ νμ©λ²μλ₯Ό μ€μ ν μ μλ€.
getter(κ²ν°) : "getλ©€λ²λ³μμ΄λ¦"
-> λ©€λ²λ³μ κ°μ μ½λ λ©μλ μ΄λ¦
setter(μ
ν°) : "setλ©€λ²λ³μμ΄λ¦"
-> λ©€λ²λ³μ κ°μ λ³κ²½νλ λ©μλ
λ³ μΌ μλν λ°λ₯΄λλ‘ νμ(μ묡μ μ½μ)
public class Time {
private int hour;
private int minute;
private int second;
public int getHour() {
return hour;
}
public void setHour(int hour) {
if (hour < 0 || hour > 23)
return;
this.hour = hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
if (minute < 0 || minute > 59)
return;
this.minute = minute;
}
public int getSecond() {
return second;
}
public void setSecond(int second) {
if (second < 0 || second > 59)
return;
this.second = second;
}
}
μλ°μμλ ν νμ μ μ°Έμ‘°λ³μλ‘ μ¬λ¬ νμ μ κ°μ²΄λ₯Ό μ°Έμ‘°ν μ μλλ‘ ν¨μΌλ‘μ¨ λ€νμ±μ νλ‘κ·Έλ¨μ μΌλ‘ ꡬννμλ€.
ex)
Tv(μ‘°μ) CaptionTv(μμ)
Tv t = new CaptionTv();
μ‘°μ ν΄λμ€ νμ μ μ°Έμ‘°λ³μλ‘ μμ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μ°Έμ‘°νλλ‘ νλ κ²λ κ°λ₯
μμλ ν΄λμ€ λκ°(μ‘°μ, μμ)μ λν΄μ ν΄λμ€λ₯Ό μ μΈν μ°Έμ‘°λ³μμ νμ (μ‘°μ or μμ)ν΄λμ€νμΌλ‘ λ³ν κ°λ₯νλ€.
class Car{}
class FireEngine extends Car {}
class Ambulance extends Car {}
FireEngine f = new FireEngine();
Car c = (Car)f;
//μμ ν΄λμ€μ μ‘°μ ν΄λμ€λ‘μ νλ³ν
FireEngine f2 = (FireEngine)c;
Ambulance a = (Ambulance)f;
//μμ κ΄κ³κ° μλ κ΄κ³λ‘λ νλ³ν λΆκ°!!!
μ£Όμμ¬ν
class Ex7_7 {
public static void main(String args[]) {
Car car = null;
FireEngine fe = new FireEngine();
FireEngine fe2 = null;
fe.water();
car = fe; // car = (Car)fe;
// car.water();
// carμ Car ν΄λμ€ν μ°Έμ‘°λ³μμ΄κΈ° λλ¬Έμ water 맀μλ μ‘΄μ¬μν¨
fe2 = (FireEngine) car; //ν μλ΅λΆκ°!!!
fe2.water();
}
}
class Car {
String color;
int door;
void drive() {
System.out.println("drive, Brrrr~");
}
void stop() {
System.out.println("stop!!!");
}
}
class FireEngine extends Car {
void water() {
System.out.println("water!!!");
}
}
public class Time {
private int hour;
private int minute;
private int second;
public int getHour() {
return hour;
}
public void setHour(int hour) {
if (hour < 0 || hour > 23)
return;
this.hour = hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
if (minute < 0 || minute > 59)
return;
this.minute = minute;
}
public int getSecond() {
return second;
}
public void setSecond(int second) {
if (second < 0 || second > 59)
return;
this.second = second;
}
}
μ½κ² μ€λͺ νλ©΄,
μμ λ λ μ°Έμ‘°λ³μμ μ£Όμ μ λΆλΆμ μ‘°μ ν΄λμ€μ 맀μλμ μμ±λ€μ κ°μ§κΈ° λλ¬Έμ λ³νμ΄ μ©μ΄νλ€.
java κΈ°λ³Έ package μμΉ