JavaRush /Java Blog /Random-KO /์ดˆ๋ณด ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์‹ค์ˆ˜. 1 ๋ถ€
articles
๋ ˆ๋ฒจ 15

์ดˆ๋ณด ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์‹ค์ˆ˜. 1 ๋ถ€

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

1. ํด๋ž˜์Šค๋ช…์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ํŒŒ์ผ๋ช…๊ณผ ๋‹ค๋ฅด๋‹ค.

Javasoft JDK๋ฅผ ํฌํ•จํ•˜์—ฌ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ ๋ชจ๋“  Java ํ”„๋ ˆ์ž„์›Œํฌ๋Š” public ์ˆ˜์ •์ž๊ฐ€ ์žˆ๋Š” ํด๋ž˜์Šค์˜ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ์ •ํ™•ํžˆ ๋™์ผํ•œ ์ด๋ฆ„ ๋ฐ .java ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ ํŒŒ์ผ์— ์ €์žฅ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ทœ์น™์„ ๋”ฐ๋ฅด์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ ์ค‘์— ๋‚˜ํƒ€๋‚˜๋Š” ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ดˆ๋ณด ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์‹ค์ˆ˜.  ํŒŒํŠธ 1 - 1
์ดˆ๋ณด ํ•™์ƒ(ํ”„๋กœ๊ทธ๋ž˜๋จธ)์€ ์ข…์ข… ์ด ๊ทœ์น™์„ ์žŠ์–ด๋ฒ„๋ฆฌ๊ณ  ์˜ˆ๋ฅผ ๋“ค์–ด ๊ณผ์ œ์— ๋”ฐ๋ผ ํŒŒ์ผ ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค: Lab6.java. ์ž˜๋ชป๋œ ์˜ˆ: ํŒŒ์ผ ์ด๋ฆ„Lab6.java
public class Airplane extends Vehicle
  Seat pilot;
  public Airplane() {
    pilot = new Seat();
  }
}
์ˆ˜์ •๋œ ์˜ˆ: ํŒŒ์ผ ์ด๋ฆ„Airplane.java
public class Airplane extends Vehicle
  Seat pilot;
  public Airplane() {
    pilot = new Seat();
  }
}
์ฐธ๊ณ :ํด๋ž˜์Šค ์ด๋ฆ„์€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์—์„œ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ์šด์˜ ์ฒด์ œ๋Š” ํŠนํžˆ DOS ํŒŒ์ผ ์ด๋ฆ„ ์ง€์ • ์‹œ์Šคํ…œ์— ์ต์ˆ™ํ•œ Unix์—์„œ Java๋ฅผ ๋ฐฐ์šฐ๋Š” ํ•™์ƒ๋“ค์—๊ฒŒ ์ถ”๊ฐ€์ ์ธ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋Š” MotorVehicleํŒŒ์ผ์— ์ €์žฅ๋˜์–ด์•ผ MotorVehicle.javaํ•˜์ง€๋งŒ motorvehicle.java.

2. ์‚ฌ์šฉํ•œ ๋น„๊ต==

Java์—์„œ ๋ฌธ์ž์—ด์€ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค java.lang.String. ๊ฐ์ฒด์— ์ ์šฉ๋œ ์—ฐ์‚ฐ์ž๋Š” ==๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ๋™์ผํ•œ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค! ๋•Œ๋•Œ๋กœ ํ•™์ƒ๋“ค์€ ์—ฐ์‚ฐ์ž์˜ ์˜๋ฏธ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ณ  ==์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ์˜ˆ:
// ะฟั€ะพะฒะตั€ะธะผ, equals ะปะธ ะฟะตั€ะฒั‹ะน ะฐั€ะณัƒะผะตะฝั‚ "-a"
if (args[0] == "-a") {
    optionsAll = true;
}
๋‘ ๋ฌธ์ž์—ด์ด ๊ฐ™์€์ง€ ๋น„๊ตํ•˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์€ equals()ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค java.lang.String. true๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ ๊ฐ™๊ณ  ๋™์ผํ•œ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค . (์ฐธ๊ณ : ์‹ค์ œ๋กœ ์ด๋Š” ๋™๋“ฑ์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ equals๋‘ ๋ฌธ์ž์—ด์ด ๋ฌธ์ž๋ณ„๋กœ ๋™์ผํ•œ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.) ์ˆ˜์ •๋œ ์˜ˆ:
//  ะฟั€ะพะฒะตั€ะธะผ, equals ะปะธ ะฟะตั€ะฒั‹ะน ะฐั€ะณัƒะผะตะฝั‚ "-a"
if ("-a".equals(args[0])) {
    optionsAll = true;
}
์ด ์˜ค๋ฅ˜๋Š” ์–ด๋ฆฌ์„์€ ์ผ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์‹ค์ œ๋กœ Java ์ฝ”๋“œ๋Š” ๊ตฌ๋ฌธ๋ก ์ ์œผ๋กœ๋Š” ์ •ํ™•ํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ์ ์œผ๋กœ๋Š” ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ํ•™์ƒ๋“ค์€ ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ ๋Œ€์‹  ๋น„๊ต ์—ฐ์‚ฐ์ž >๋ฐ ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค . ์ด ์˜ค๋ฅ˜๋Š” ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ง€ํ•˜๊ธฐ๊ฐ€ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค. <=compareTo()java.lang.String

3. ๋ฐฐ์—ด์˜ ์š”์†Œ์ธ ๊ฐœ์ฒด๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค.

Java์—์„œ ๊ฐ์ฒด ๋ฐฐ์—ด์€ ์‹ค์ œ๋กœ ๊ฐ์ฒด ์ฐธ์กฐ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํžˆ ์•„๋ฌด ๊ฒƒ๋„ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š๋Š”(์ฆ‰, null์ธ) ์ฐธ์กฐ ์ง‘ํ•ฉ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ฐœ์ฒด์˜ "์ „์ฒด" ๋ฐฐ์—ด์„ ๋งŒ๋“ค๋ ค๋ฉด ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ํ•™์ƒ๋“ค์ด ์ด๊ฒƒ์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ฐ์ฒด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•จ์œผ๋กœ์จ ์ž๋™์œผ๋กœ ๊ฐ์ฒด ์ž์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. (๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ํ•™์ƒ๋“ค์€ ์ด ๊ฐœ๋…์„ C++์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ฐ์ฒด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๋ฉด ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๊ฐ์ฒด ์ž์ฒด๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.) ์•„๋ž˜ ์˜ˆ์—์„œ ํ•™์ƒ์€ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด 3๊ฐœ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค StringBuffer. ์ฝ”๋“œ๋Š” ์˜ค๋ฅ˜ ์—†์ด ์ปดํŒŒ์ผ๋˜์ง€๋งŒ NullPointerException์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐœ์ฒด์— ์•ก์„ธ์Šคํ•˜๋Š” ๋งˆ์ง€๋ง‰ ์ค„์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ์˜ˆ:
// ะกะพะทะดะฐะตะผ ะผะฐััะธะฒ ะธะท StringBuffer
StringBuffer [] myTempBuffers;
myTempBuffers = new StringBuffer[3];
myTempBuffers[0].add(data);
์ด ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ •๋œ ์˜ˆ:
// ะกะพะทะดะฐะตะผ ะผะฐััะธะฒ ะธะท StringBuffer ะธ ะธะฝะธั†ะธะฐะปะธะทะธั€ัƒะตะผ ัะปะตะผะตะฝั‚ั‹
StringBuffer [] myTempBuffers;
myTempBuffers = new StringBuffer[3];
for (int ix = 0; ix < myTempBuffers.length; ix++)
     myTempBuffers[ix] = new StringBuffer();

myTempBuffers[0].add(data);

4. ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํŒŒ์ผ์— ์ˆ˜์ •์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ํด๋ž˜์Šค ๋ฐฐ์น˜public

Java ์†Œ์Šค ํŒŒ์ผ์€ ํ•ด๋‹น ํŒŒ์ผ์— ํฌํ•จ๋œ ํด๋ž˜์Šค์™€ ํŠน์ • ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ด€๋ฉ๋‹ˆ๋‹ค. ๊ด€๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŠน์ง•์ง€์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  Java ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ํŒŒ์ผ์—๋งŒ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์†Œ์Šค ์ฝ”๋“œ ํŒŒ์ผ์—์„œ ์ˆ˜์ •์ž์™€ ํ•จ๊ป˜ ์ตœ๋Œ€ 1๊ฐœ์˜ ํด๋ž˜์Šค๋ฅผ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค public. ์†Œ์Šค ์ฝ”๋“œ ํŒŒ์ผ์— ์ˆ˜์‹์ž๊ฐ€ ์žˆ๋Š” ํด๋ž˜์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ publicํŒŒ์ผ ์ด๋ฆ„๊ณผ ํด๋ž˜์Šค ์ด๋ฆ„์€ ์—„๊ฒฉํžˆ ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (๋ฒˆ์—ญ ์ฐธ๊ณ : ๊ฒฝ์šฐ์— ๋”ฐ๋ผ 1๋ฒˆ ํ•ญ๋ชฉ ์ฐธ์กฐ) ํ•™์ƒ๋“ค์ด ๋‘ ๋ฒˆ์งธ ๊ทœ์น™์„ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์–ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ฌด๋Œ€ ํŽธ์ง‘์—์„œ. ๋‘ ๋ฒˆ์งธ์™€ ์„ธ ๋ฒˆ์งธ ๊ทœ์น™์˜ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค(์ด๊ฒƒ์ด ์‹ค์ œ๋กœ ์ด ์˜ค๋ฅ˜๋ฅผ ์ธ์‹ํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“œ๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค).

5. ํด๋ž˜์Šค ํ•„๋“œ๋ฅผ ์ง€์—ญ ๋ณ€์ˆ˜๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

Java๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ž˜์Šค์˜ ํ•„๋“œ์™€ ์ด๋ฆ„์ด ์ผ์น˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋กœ์ปฌ ๋ณ€์ˆ˜๊ฐ€ ์šฐ์„ ์ ์œผ๋กœ ์ ์šฉ๋˜๋ฉฐ ํ•„๋“œ ๋Œ€์‹  ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ณ€์ˆ˜์˜ ์œ ํ˜•์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋™์ผํ•œ ์œ ํ˜•์ด๋ฉด ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉฐ ํ”„๋กœ๊ทธ๋žจ์ด ์ž˜๋ชป ์ž‘๋™ํ•˜๋Š” ์ด์œ ๊ฐ€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ์˜ˆ:
public class Point3 {
    int i = 0;
    int j = 0;
    int k = 0;

    public boolean hits(Point[] p2list) {
      for(int i = 0; i < p2list.length; i++) {
        Point p2 = p2list[i];
        if (p2.x == i && p2.y == j)
          return true;
      }
      return false;
    }
}
์ด ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€ ์•”์‹œ์  ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ž˜์Šค ํ•„๋“œ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค this. this.Name_ะฟะพะปั๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ํด๋ž˜์Šค ํ•„๋“œ๋‚˜ ์ง€์—ญ ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋Œ€์ฒด๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (๋Œ€๋žต ๋ฒˆ์—ญ: ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ์šฐ๋ฆฌ์˜ ๋ฐฉ๋ฒ•์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋˜ํ•œ ์–ธ์  ๊ฐ€ ์‹ค์ˆ˜๋กœ ๋ณ€์ˆ˜ ํ•„๋“œ๋ฅผ ๊ต์ฒดํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๋Š” ๋ณด์žฅ๋„ ์—†์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ํ•„๋“œ๋ฅผ ์ „ํ˜€ ๋ณผ ์ˆ˜ ์—†์œผ๋ฉด ์ƒ์†์— ๋” ํฐ ์–ด๋ ค์›€์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค์—๋Š” ) ์ˆ˜์ •๋œ ์˜ˆ:
// One way to fix the problem
  int i = 0;
  int j = 0;
  int k = 0;

  public boolean hits(Point[] p2list) {
    for(int i = 0; i < p2list.length; i++) {
      Point p2 = p2list[i];
      if (p2.x == this.i && p2.y == this.j)
        return true;
    }
    return false;
  }

  // *****************************
  // ะ›ัƒั‡ัˆะธะน ัะฟะพัะพะฑ
  int x = 0;
  int y = 0;
  int z = 0;

  public boolean hits(Point[] p2list) {
    for(int i = 0; i < p2list.length; i++) {
      Point p2 = p2list[i];
      if (p2.x == x && p2.y == y)
        return true;
    }
    return false;
  }
์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์œ„์น˜๋Š” ๋ฉ”์„œ๋“œ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ํด๋ž˜์Šค ํ•„๋“œ ์ด๋ฆ„๊ณผ ๋™์ผํ•˜๊ฒŒ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ƒ์„ฑ์ž์—์„œ๋Š” ์ข‹์•„ ๋ณด์ด์ง€๋งŒ ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋Œ€๋žต. ๋ฒˆ์—ญ

์กฐ๊ธˆ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ธด ํ•˜์ง€๋งŒ ๊ทธ๊ฒŒ ์š”์ ์ด์—์š”

public class Test {
   private int param = 0;

   public Test(int param) {
      this.param = param;
   }
}

์ฆ‰, ์ƒ์„ฑ์ž์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์•„๋ฆ„๋‹ต๊ฒŒ ๋ณด์ด์ง€๋งŒ ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ์—๋Š” ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

6. ์ƒ์œ„(์Šˆํผํด๋ž˜์Šค) ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค.

ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ํ™•์žฅํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ ํ•˜์œ„ ํด๋ž˜์Šค ์ƒ์„ฑ์ž๋Š” ์ผ๋ถ€ ์Šˆํผํด๋ž˜์Šค ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. super(x)์ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ์„ฑ์ž์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์— ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šˆํผํด๋ž˜์Šค ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•จ์œผ๋กœ์จ ๋‹ฌ์„ฑ๋ฉ๋‹ˆ๋‹ค . ์ƒ์„ฑ์ž์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์— ํ˜ธ์ถœ์ด ์—†์œผ๋ฉด super(x)์ปดํŒŒ์ผ๋Ÿฌ ์ž์ฒด์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์—†์ด ์ด ํ˜ธ์ถœ์„ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค super(). (๋Œ€๋žต ๋ฒˆ์—ญ: x...se, ํ•˜์ง€๋งŒ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค.) ๋•Œ๋•Œ๋กœ ํ•™์ƒ๋“ค์€ ์ด ์š”๊ตฌ ์‚ฌํ•ญ์„ ์žŠ์–ด๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์Šˆํผํด๋ž˜์Šค ์ƒ์„ฑ์ž์— ๋Œ€ํ•œ ํ˜ธ์ถœ์€ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์‚ฝ์ž…๋˜๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์Šˆํผํด๋ž˜์Šค์— ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์—†์œผ๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์—์„œ ๋ชจ๋“  ์Šˆํผํด๋ž˜์Šค ์ƒ์„ฑ์ž์—๋Š” java.io.File1๊ฐœ ๋˜๋Š” 2๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ์˜ˆ:
public class JavaClassFile extends File {
    String classname;
    public JavaClassFile(String cl) {
        classname = cl;
    }
}
๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์€ ์˜ฌ๋ฐ”๋ฅธ ์Šˆํผํด๋ž˜์Šค ์ƒ์„ฑ์ž์— ๋Œ€ํ•œ ๋ช…์‹œ์  ํ˜ธ์ถœ์„ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ˆ˜์ •๋œ ์˜ˆ:
public class JavaClassFile extends File {
    String classname;
    public JavaClassFile(String cl) {
        super(cl + ".class");
        classname = cl;
    }
}
๋” ๋ถˆ์พŒํ•œ ์ƒํ™ฉ์€ ์Šˆํผํด๋ž˜์Šค์— ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์žˆ์ง€๋งŒ ๊ฐ์ฒด๋ฅผ ์™„์ „ํžˆ ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ฝ”๋“œ๋Š” ์ปดํŒŒ์ผ๋˜์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ์˜ ์ถœ๋ ฅ์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š๊ฑฐ๋‚˜ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

7. ์˜ˆ์™ธ๋ฅผ ์ž˜๋ชป ์žก๋Š” ๊ฒƒ

Java์˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์€ ๋งค์šฐ ๊ฐ•๋ ฅํ•˜์ง€๋งŒ ์ดˆ๋ณด์ž๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. C++ ๋˜๋Š” Ada์— ๋Šฅ์ˆ™ํ•œ ํ•™์ƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ C ๋ฐ Fortran ํ”„๋กœ๊ทธ๋ž˜๋จธ์™€ ๊ฐ™์€ ์–ด๋ ค์›€์„ ๊ฒช์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์—์„œ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ์‹ค์ˆ˜๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด ์˜ˆ์—์„œ๋Š” ์˜ˆ์™ธ ์ด๋ฆ„์ด ์ง€์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์ด ์˜ค๋ฅ˜๋ฅผ ํ‘œ์‹œํ•˜๋ฏ€๋กœ ์ง์ ‘ ์ˆ˜์ •ํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ์˜ˆ:
try {
    stream1 = new FileInputStream("data.txt");
} catch (IOException) {
    message("Could not open data.txt");
}
์ˆ˜์ •๋œ ์˜ˆ:
try {
   stream1 = new FileInputStream("data.txt");
} catch (IOException ie) {
   message("Could not open data.txt: " + ie);
}
๋ธ”๋ก์˜ ์ˆœ์„œ์— ๋”ฐ๋ผ catch์˜ˆ์™ธ๊ฐ€ ํฌ์ฐฉ๋˜๋Š” ์ˆœ์„œ๊ฐ€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ ๋ธ”๋ก์€ ์ง€์ •๋œ ํด๋ž˜์Šค ๋˜๋Š” ํ•ด๋‹น ํ•˜์œ„ ํด๋ž˜์Šค์˜ ๋ชจ๋“  ์˜ˆ์™ธ๋ฅผ ํฌ์ฐฉํ•œ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์œผ๋ฉด ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” catch ๋ธ”๋ก์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด๋ฅผ ์ง€์ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์—๋Š” SocketException์˜ ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค IOException. ์ž˜๋ชป๋œ ์˜ˆ:
try {
    serviceSocket.setSoTimeout(1000);
    newsock = serviceSocket.accept();
} catch (IOException ie) {
    message("Error accepting connection.");
} catch (SocketException se) {
    message("Error setting time-out.");
}
์ˆ˜์ •๋œ ์˜ˆ:
try {
    serviceSocket.setSoTimeout(1000);
    newsock = serviceSocket.accept();
} catch (SocketException se) {
    message("Error setting time-out.");
} catch (IOException ie) {
    message("Error accepting connection.");
}
์–ด๋–ค ๋ธ”๋ก์—์„œ๋„ ํฌ์ฐฉ๋˜์ง€ ์•Š๋Š” ์˜ˆ์™ธ๊ฐ€ ์ฝ”๋“œ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ try-catch์ด ์˜ˆ์™ธ๋ฅผ ๋ฉ”์„œ๋“œ ํ—ค๋”์— ์„ ์–ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ( ์˜ˆ์™ธ(ํด๋ž˜์Šค์˜ ํ•˜์œ„ ํด๋ž˜์Šค)์—๋Š” RuntimeExceptionํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค .) ํ•™์ƒ๋“ค์€ ๋•Œ๋•Œ๋กœ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์žŠ์–ด๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์„ ๋ธ”๋ก์— ๋„ฃ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค try-catch. ์ž˜๋ชป๋œ ์˜ˆ:
public void waitFor(int sec) {
    Thread.sleep(sec * 1000);
}
์ˆ˜์ •๋œ ์˜ˆ:
public void waitFor(int sec) throws InterruptedException {
    Thread.sleep(sec * 1000);
}

8. ์•ก์„ธ์Šค ๋ฐฉ๋ฒ•์—๋Š” ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค.void

์ด๊ฒƒ์€ ๋งค์šฐ ๋‹จ์ˆœํ•œ ์‹ค์ˆ˜์ž…๋‹ˆ๋‹ค. ํ•™์ƒ์€ ๋ณ€์ˆ˜์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€๋งŒ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๊ฐ€ ์•„๋ฌด ๊ฒƒ๋„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค( void๋ฉ”์†Œ๋“œ ํ—ค๋”์— ์ˆ˜์ •์ž๋ฅผ ๋ฐฐ์น˜ํ•จ). ์ด ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์˜ฌ๋ฐ”๋ฅธ ๋ฐ˜ํ™˜ ์œ ํ˜•์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ์˜ˆ:
public class Line {
    private Point start, end;
    public void getStart() {
      return start;
    }
}
์ˆ˜์ •๋œ ์˜ˆ:
public class Line {
    private Point start, end;
    public Point getStart() {
      return start;
    }
}
์ž˜๋ชป๋œ ๋ฐ˜ํ™˜ ์œ ํ˜•์„ ์ง€์ •ํ•˜๋ฉด ์ „์ฒด ์˜ค๋ฅ˜ ํด๋ž˜์Šค๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๋ฅผ ์ธ์‹ํ•˜๊ณ  ๋ณด๊ณ ํ•˜์—ฌ ํ•™์ƒ๋“ค์ด ์Šค์Šค๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ €์ž: A. Grasoffโ„ข ๊ณ„์† ์ฝ๊ธฐ ์ถœ์ฒ˜ ๋งํฌ: ์ดˆ๋ณด Java ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์‹ค์ˆ˜
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION