인터페이스..

DevTool/Java 2009. 6. 4. 17:46

package ch07;

public class Ch0708
{
 public static void main(String[] args)
 {
  //인터페이스 예제.. Terran.java, Zerg.java, Protoss.java 포함.
  //Unit unit = new Unit(); //안될경우 2가지 : 추상클래스거나 인터페이스
 
//  Unit marin = new Terran();
//  marin.attackUpgrade();
//  marin.print();
 
  Unit unit[] = new Unit[] {new Terran(), new Zerg(), new Protoss()};
  for(int i=0;i<unit.length;i++)
  {
   unit[i].attackUpgrade();
   unit[i].defenseUpgrade();
   unit[i].shieldUpgrade();
   unit[i].print();
  }
 }
}
**** Unit.java ******
package ch07;

public interface Unit
{
//인터페이스 : 오로지 추상메서드만 가질 수 있으며
// 멤버변수, 멤버함수는 가질 수 없다.
// 그러나 클래스처럼 계승시킬 수 있는 성격을
// 가지며 인터페이스의 계승은 클래스의 상속과
// 다르게 다중상속이 허용된다.
 
// public int attack; //안됨..
// public int defence; //안됨..
 
 //public void sayHello(){} //안됨
 //public abstract void sayHello(); //작동됨.
 
 //public void sayHello(); //abstract이 자동으로 작동되어.
 //final int a=10;
 
 //가상으로 starcraft라 생각하고.
 public void attackUpgrade();
 public void defenseUpgrade();
 public void shieldUpgrade();
 
 public void print();
}


**** Terran.java *****
package ch07;

//인터페이스의 상속은 implements를 사용한다.
public class Terran implements Unit
{
 public int attack;
 public int defense;
 
 public void attackUpgrade()
 {
  // TODO 자동 생성된 메소드 스텁
  attack+=2;
 }
 
 public void defenseUpgrade()
 {
  // TODO 자동 생성된 메소드 스텁
  defense+=1;
 }
 
 public void shieldUpgrade()
 {
  // TODO 자동 생성된 메소드 스텁
 
 }
 
 public void print()
 {
  // TODO 자동 생성된 메소드 스텁
  System.out.println("태란유닛의 공격력 : "+attack+", 방어력 : "+defense);
 }
}

***** Zerg.java ******
package ch07;

public class Zerg implements Unit
{
 
 public int attack;
 public int defense;
 //공격력 +1, 방어력 +1;
 
 public void attackUpgrade()
 {
  // TODO 자동 생성된 메소드 스텁
  attack+=1;
 }
 public void defenseUpgrade()
 {
  // TODO 자동 생성된 메소드 스텁
  defense+=1;
 }
 public void shieldUpgrade()
 {
  // TODO 자동 생성된 메소드 스텁
 
 }
 
 public void print()
 {
  // TODO 자동 생성된 메소드 스텁
  System.out.println("저그유닛의 공격력 : "+attack+", 방어력 : "+defense);
 }
}

****** Protoss.java ******
package ch07;

public class Protoss implements Unit
{
 public int attack;
 public int defense;
 public int shield;
 //공격력 +1, 방어력 +1, 쉴드 1;
 
 public void attackUpgrade() {
  // TODO 자동 생성된 메소드 스텁
  attack+=1;
 }

 public void defenseUpgrade() {
  // TODO 자동 생성된 메소드 스텁
  defense+=1;
 }

 public void shieldUpgrade() {
  // TODO 자동 생성된 메소드 스텁
  shield+=1;
 }
 
 public void print()
 {
  // TODO 자동 생성된 메소드 스텁
  System.out.println("프로토스 유닛의 공격력 : "+attack+", 방어력 : "+defense+", 쉴드 : "+shield);
 }

}

Posted by 말없제이
,