본문 바로가기

IT일반과목/java

포인트관리(상속)

 

 

포인트관리 시스템
1. Silver Class(kh.java.point.model.vo)
 #변수 : 이름,등급,포인트,(이자)
 #메소드 : 생성자,getter,setter, 이자(getter)
 -> Silver등급의경우 포인트의 2%
   Gold Class(kh.java.point.model.vo)
 #변수 : 이름,등급,포인트,(이자)
 #메소드 : 생성자,getter,setter, 이자(getter)
 -> Gold등급의경우 포인트의 3%
 Vip -> 이자 5%
 Vvip -> 이자 7%

2. PntMgr Class(kh.java.point.controller)
 #변수 : silver등급을 관리할 객체배열(10명), s_index
         gold등급을 관리할 객체배열(10명), g_index
         vip등급을 관리할 객체배열(10명), v_index
         vvip등급을 관리할 객체배열(10명), vv_index
 #메소드 : 생성자, insertData, printData(전체출력)

3. 실행용클래스
 -> Run Class(kh.java.point.run)
 main()
 PntMgr mgr = new PntMgr();
 mgr.insertData(new Silver("홍길동","Silver",1000));
 mgr.insertData(new Silver("김말똥","Silver",2000));
 mgr.insertData(new Silver("고길똥","Silver",3000));
 mgr.insertData(new Gold("홍길동","Gold",1000));
 mgr.insertData(new Gold("김말똥","Gold",2000));
 mgr.insertData(new Gold("고길똥","Gold",3000));
 mgr.insertData(new Vip("홍길동","Vip",1000));
 mgr.insertData(new Vip("김말똥","Vip",2000));
 mgr.insertData(new Vip("고길똥","Vip",3000)); 
 mgr.insertData(new Vvip("홍길동","Vvip",1000));
 mgr.insertData(new Vvip("김말똥","Vvip",2000));
 mgr.insertData(new Vvip("고길똥","Vvip",3000));
 mgr.printData();


--------------------------------------------------------------------

package kh.java.point.run;

import kh.java.point.controller.PntMgr;
import kh.java.point.model.vo.Gold;
import kh.java.point.model.vo.Silver;
import kh.java.point.model.vo.Vip;
import kh.java.point.model.vo.Vvip;

public class Run {
 public static void main(String[] args) {
   PntMgr mgr = new PntMgr();
   mgr.insertData(new Silver("홍길동","Silver",1000));
   mgr.insertData(new Silver("김말똥","Silver",2000));
   mgr.insertData(new Silver("고길똥","Silver",3000));
  
   mgr.insertData(new Gold("홍길동","Gold",1000));
   mgr.insertData(new Gold("김말똥","Gold",2000));
   mgr.insertData(new Gold("고길똥","Gold",3000));
  
   mgr.insertData(new Vip("홍길동","Vip",1000));
   mgr.insertData(new Vip("김말똥","Vip",2000));
   mgr.insertData(new Vip("고길똥","Vip",3000));
  
   mgr.insertData(new Vvip("홍길동","Vvip",1000));
   mgr.insertData(new Vvip("김말똥","Vvip",2000));
   mgr.insertData(new Vvip("고길똥","Vvip",3000));
  
  
  
   mgr.printData();
 }
}

--------------------------------------------------------------------

package kh.java.point.model.vo;

public class Vvip extends Grade {

 
 public Vvip() {
  
  
 }
 public Vvip(String name, String rank, int point) {
  super(name,rank,point);
 }
 
 @Override
 public double getEija() {
  return getPoint()*0.07;
 }
}

------------------------------------------------------------

package kh.java.point.model.vo;

public class Vip extends Grade {

 
 public Vip() {
  
 }
 
 public Vip(String name, String rank, int point) {
  super(name,rank,point);
 }
 
 @Override
 public double getEija() {
  return getPoint()*0.05;
 }
 
}

---------------------------------------------------------------

package kh.java.point.model.vo;

public class Silver extends Grade {

 
 public Silver() {
  
 }
 public Silver(String name, String rank, int point) {
  super(name,rank,point);
 }//내 생성자를 호출했을때 값3개를 전달해준다. 그럼 grade에 생성자로 바로 간다.
 
 @Override//부모객체에있는 Eija를 내가 명시해서 쓸꺼야.
 public double getEija() {
  return getPoint()*0.02;
 }//실버의 이자포인트를 썼다.
 //이렇게 하면 실버 객체가 끝난다.
 
 
 
 
 
//
// public Silver(String name, String rank, int point) {
//
//  this.name=name;
//  this.rank=rank;
//  this.point=point;
// }
//
//
//
// private String name;//이름
// private String rank;//등급
// private int point;//등급
//
// public String getName() {
//  return name;
// }
//
// public void setName(String name) {
//  this.name = name;
// }
//
// public String getRank() {
//  return rank;
// }
//
// public void setRank(String rank) {
//  this.rank = rank;
// }
//
// public int getPoint() {
//  return point;
// }
//
// public void setPoint(int point) {
//  this.point = point;
// }
//
// public double getEija() {
//  return (point*0.02);//정수랑 실수연산하면 어차피 자동형변환이라 강제형변환 안해줘도 된다.
// }
// public void setEija(int point) {
//  this.point = point;
// }
//
//
// public Silver() {
//
// }//기본생성자
//


}
----------------------------------------------------------------------

 

package kh.java.point.model.vo;

public class Grade {
 private String name;
 private String rank;
 private int point;
 public Grade() {
  
 }//기본생성자
 public Grade(String name, String rank, int point) {
  this.name = name;
  this.rank = rank;
  this.point = point;
 }
 

 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getRank() {
  return rank;
 }
 public void setRank(String rank) {
  this.rank = rank;
 }
 public int getPoint() {
  return point;
 }
 public void setPoint(int point) {
  this.point = point;
 }
 public double getEija() {
  return point;
 }
 
 
 
 
 
 
}
------------------------------------------------------------

package kh.java.point.model.vo;

public class Gold extends Grade {

 
 public Gold() {
  
 }//기본생성자
 
 public Gold(String name, String rank, int point) {
  super(name,rank,point);
 }
 
 
 @Override//부모객체에있는 Eija를 내가 명시해서 쓸꺼야.
 public double getEija() {
  return getPoint()*0.03;//정수랑 실수연산하면 어차피 자동형변환이라 강제형변환 안해줘도 된다.
 }//this안써도된다.
 
 
 
 
 
 
 // private String name;//이름
// private String rank;//등급
// private int point;//등급
// 
// public Gold(String name, String rank, int point) {
//  this.name = name;
//  this.rank=rank;
//  this.point=point;
// }
// 
// 
// 
// 
// public String getName() {
//  return name;
// }
// public void setName(String name) {
//  this.name = name;
// }
// public String getRank() {
//  return rank;
// }
// public void setRank(String rank) {
//  this.rank = rank;
// }
// public int getPoint() {
//  return point;
// }
// public void setPoint(int point) {
//  this.point = point;
// }
 
 
 
 
}
-----------------------------------------------------------------

package kh.java.point.controller;

import kh.java.point.model.vo.Gold;
import kh.java.point.model.vo.Silver;
import kh.java.point.model.vo.Vip;
import kh.java.point.model.vo.Vvip;

public class PntMgr {

 int s_index=0;
 int g_index=0;
 int v_index=0;
 int vv_index=0;
 public PntMgr() {

 }//생성자

 Silver [] s = new Silver[10];
 Gold [] g = new Gold[10];
 Vvip [] vv = new Vvip[10];
 Vip [] v = new Vip[10];
 public void insertData(Silver s) {
  this.s[s_index++]=s;
 }
 public void insertData(Gold g) {
  this.g[g_index++]=g;
 }
 public void insertData(Vip v) {
  this.v[v_index++]=v;
 }
 public void insertData(Vvip vv) {
  this.vv[vv_index++]=vv;
 }
 
 
 public void printData() {
  System.out.println("<< =================== information =================== >>");
  System.out.println("이름 \t\t 등급 \t\t 포인트 \t 이자포인트 \t");
  for(int i=0; i<s_index; i++) {
   System.out.printf((i+1)+"%s \t %s \t %d \t\t %.1f\n",s[i].getName(),s[i].getRank(),s[i].getPoint(),s[i].getEija());
  }
  System.out.println("================================================================");
  for(int i=0; i<g_index; i++) {
   System.out.printf((i+1)+"%s \t %s \t\t %d \t\t %.1f\n",g[i].getName(),g[i].getRank(),g[i].getPoint(),g[i].getEija());
  }
  System.out.println("================================================================");
  for(int i=0; i<v_index; i++) {
   System.out.printf((i+1)+"%s \t %s \t\t %d \t\t %.1f\n",v[i].getName(),v[i].getRank(),v[i].getPoint(),v[i].getEija());
  }
  System.out.println("================================================================");
  for(int i=0; i<vv_index; i++) {
   System.out.printf((i+1)+"%s \t %s \t\t %d \t\t %.1f\n",vv[i].getName(),vv[i].getRank(),vv[i].getPoint(),vv[i].getEija());
  }
  
  
  
  
  
  
 }

 

 


}

 

 

 

 

 

'IT일반과목 > java' 카테고리의 다른 글

합계(인터페이스)  (0) 2018.07.24
포인트관리(추상화)  (0) 2018.07.24
포인트관리  (0) 2018.07.24
객체배열, 변수  (0) 2018.07.23
Student 만들기  (0) 2018.07.23