AppleTree iOS

java - 8일째(source) 본문

JAVA/기초 JAVA

java - 8일째(source)

사과나무 2010. 7. 19. 15:52

package console.app.exinterface;

public interface InterfacOneDay {
 
 
 public String name="";
 public String address="";
 public int age=0;
 
 
 
 //interface 는 자체가 추상(abstract)이고
 //interface 로 선언된 메소드는 몸체를 가질수없다.
 //interface 로 선언된 메소드는 무조건 추상메소드다.
 //class 가 interface 상속을 받으면 반드시
 //interface 메소드 몸체를 구현해야한다 (오버라이딩)
 //abstract class 가 interface 을 상속 받으면
 //interface 메소드 오버라이딩을 다할 필요는 없다.
 //abstract class, interface 는 new를 할수 없다
 //그래서 자기자신의 객체를 만들수 없다.
 //단 하위자식에서 new 를 한 (객체)를 받을수는 있다.
 
 //interface 는 자체가 추상이기 때문에 굳이 abstract 를 표시한해도 된다.
 public abstract void setName(String name);
 public abstract void setAddress(String address);
 public abstract void setAge(int age);
 
 public abstract String getName();
 public abstract String getAddress();
 public abstract int getAge();
  
}



package console.app.exinterface;

//class 에서 같은 종류의 class 를 받을때는 extends
//다른동류(Interface)는 implements

//interface 을 상속받는 추상클래스는 몸체를 구현한 필요가 없다.
//abstract class 는 보통 하위 클래스에서 인터페이스 메소드를 쓰고 싶은 몸체로 만들어준다.
public abstract class InterfaceChild implements InterfacOneDay {


 public String name="";
 public String address="";
 public int age=0;
 
 
 
 
 @Override
 public String getAddress() {
  // TODO Auto-generated method stub
  return this.address;
 }

 @Override
 public int getAge() {
  // TODO Auto-generated method stub
  return this.age;
 }

 @Override
 public String getName() {
  // TODO Auto-generated method stub
  return this.name;
 }

 @Override
 public void setAddress(String address) {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void setAge(int age) {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void setName(String name) {
  // TODO Auto-generated method stub
  
 }
 
 

}




package console.app.exinterface;

//interface 는 추상 메소드이기때문에 모든 클래스는 상속을 받으면 몸체를 구현해야한다.
//구현하지 않으면 에러


public class InterfaceChild2
implements InterfacOneDay
{

 public String name="";
 public String address="";
 public int age=0;

 
 
 

 @Override
 public void setAddress(String address) {
  this.address=address;
 }

 @Override
 public void setAge(int age) {
  this.age=age;
 }

 @Override
 public void setName(String name) {
  this.name=name;
 }
 
 

 @Override
 public String getAddress() {
  // TODO Auto-generated method stub
  return this.address;
 }

 @Override
 public int getAge() {
  // TODO Auto-generated method stub
  return this.age;
 }

 @Override
 public String getName() {
  // TODO Auto-generated method stub
  return this.name;
 }

 public static void main(String[] args) {
  
  InterfaceChild2 ob = new InterfaceChild2();
  ob.setName("김현호");
  ob.setAddress("미국");
  ob.setAge(10);
  
  //set 으로 담긴 값을 불러와서 InterfaceChild2 class 에서
  //InterfaceOneDay 에서 이름,나이,주소에 대한 get 방식을 만들어서
  //InterfaceChild2에서 구현한 다음
  //출력하세요
  
  System.out.println(ob.getName());
  System.out.println(ob.getAddress());
  System.out.println(ob.getAge());
 
 }

}




package console.app.exinterface;

public class InterfaceChild4 extends InterfaceChild{

 
 
 
 
 //모든클래스는 인터페이스를 받으면 몸체를 구현해야하지만
 //단 추상클래스를 클래스가 상속을 받으면 반드시 메소드 몸체를 반드시 구현할 필요가 없다.
 
 @Override
 public String getAddress() {
  // TODO Auto-generated method stub
  return this.getAddress();
 }

 @Override
 public int getAge() {
  // TODO Auto-generated method stub
  return this.getAge();
 }

 @Override
 public String getName() {
  // TODO Auto-generated method stub
  return this.getName();
 }

 @Override
 public void setAddress(String address) {
  // TODO Auto-generated method stub
  super.setAddress(address);
 }

 @Override
 public void setAge(int age) {
  // TODO Auto-generated method stub
  super.setAge(age);
 }

 @Override
 public void setName(String name) {
  //부모클래스 setName 메소드에 값을 넘긴다.
  super.setName(name);
 }

 public static void main(String[] args) {
  
  InterfaceChild4 in= new InterfaceChild4();
  in.setName("김현호");
  System.out.println(in.getName());

 }

}





package console.app.exinterface.car;

public interface BaseCar {
 
 public String sonata="쏘나타";
 public String carence="카렌스";
 public String starcraft="스타";
 public String basecartype="";
 public int carspeedup=0;
 public int carstartspeed=0;
 
 //차의 종류에 맞추어서 자동차 속도를 증가시키고 감소기키겠습니다.
 
 public void setCarType(String basecartype);
 public String getCarType();
 
 
 public void setCarspeedup(int speedup);
 public int getCarspeedup();
 public void setStartspeed(int initspeed);
 public int gerCarstartspeed();

}




package console.app.exinterface.car;

//인터페이스를 상속받으면 인터페이스는 몸체가 없는 메소드이기때문에 반드시
//하위클래스에
public class MyCar implements BaseCar{

 public String sonata="쏘나타";
 public String carence="카렌스";
 public String starcraft="스타";
 public String basecartype="카렌스";
 public int carspeedup=0;
 public int carstartspeed=0;
  
 public void print(Object ob){
  System.out.println(ob);
 }
 
 @Override
 public int gerCarstartspeed() {
  // TODO Auto-generated method stub
  return this.carstartspeed;
 }

 @Override
 public int getCarspeedup() {
  // TODO Auto-generated method stub
  return this.carspeedup;
 }

 @Override
 public String getCarType() {
  // TODO Auto-generated method stub
  return this.basecartype;
 }

 @Override
 public void setCarspeedup(int speedup) {
  // TODO Auto-generated method stub
  if(30<speedup){
   this.carspeedup=speedup;
  }
 }

 @Override
 public void setCarType(String basecartype) {
  // TODO Auto-generated method stub
  this.basecartype=basecartype;
 }

 @Override
 public void setStartspeed(int initspeed) {
  // TODO Auto-generated method stub
  this.carstartspeed=initspeed;
 }

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  MyCar mycar = new MyCar();
  mycar.setCarType("쏘나타");
  System.out.println(mycar.getCarType());
  mycar.setStartspeed(30);
  System.out.println(mycar.gerCarstartspeed());
  mycar.setCarspeedup(mycar.gerCarstartspeed()+20);
  System.out.println(mycar.getCarspeedup());
  
  
  //자동차이름은 카렌스로 지정을 하고
  //초기속도는 40으로 지정하고
  //(초기속도40 + 90)과속해서 130까지 달리겠습니다.
  //값을 출력해보세요.
  
  MyCar mine = new MyCar();
  mine.setCarType("카렌스");
  mine.setStartspeed(40);
  mine.setCarspeedup(mine.gerCarstartspeed()+90);
  mine.print(mine.getCarType());
  mine.print(mine.gerCarstartspeed());
  mine.print(mine.getCarspeedup());
  
  //자동차를 구별해서 (if) 내가 선책한 차로 셋팅을 하고
  //속도는 초기값은 20
  //증가값은 무조건 30 30이하로 내려가는 셋팅은 무시
   //if(30>=speed){
   //else
  
  //내일은 변수부터하고 상,중,하
  //상,중->문제
  //하->복습(문서로 제공)
  
  //String(문자열).equals(비교할문자열)
  //맞으면 true
  
  MyCar me = new MyCar();
  if(me.basecartype.equals("쏘나타")){
   
  }else if(me.basecartype.equals("카렌스")){
   
  }else if(me.basecartype.equals("스타")){
   
  }
  

 }

}

미완성
ㅜㅜ





'JAVA > 기초 JAVA' 카테고리의 다른 글

java - 10일째(source)  (0) 2010.07.21
java - 9일쩨(source)  (0) 2010.07.20
java - 7일째(source)  (0) 2010.07.16
java - 6일쩨(source)  (0) 2010.07.15
java - 5일째 (source)  (0) 2010.07.14
Comments