자바 위 챗 보너스 실현
상여금 문 화 는 역사가 유구 하 다.옛날 에 빨간색 종이 가방 부터 핸드폰 App 에 있 는 핸드폰 보너스 까지 보 너 스 는 독특한 중화 문화 로 지금까지 전승 되 었 다.기 존의 모든 내용 에서 자바 라 는 지식 을 종합 하면 일반 보 너 스 를 모 의 발급 할 수 있 습 니 다.그러면 이 블 로 그 는 제 가 이전에 소개 한 모든 기술 과 지식 을 통합 시 켜 인터페이스 가 있 는 보너스 사례 를 작성 하 겠 습 니 다.
수요 분석
제 시 된 클래스 를 분석 하고 사용 합 니 다.프로그램 을 작성 하고 보너스 형식 을 설정 합 니 다.
팁 보너스 종류:
1.일반 보너스:금액 을 균등 하 게 나눈다.정리 할 수 없 는 것 은 잔액 을 마지막 보너스 에 추가 합 니 다.
2.보너스:금액 은 랜 덤 입 니 다.각 보너스 금액 의 누적 과 총 금액 이 같다.
보너스 장면:이 사례 는 단체 주 들 이 단체 구성원 에 게 보 너 스 를 주 고 단체 주 들 이 마지막 보 너 스 를 열 어 주 는 장면 을 모 의 한 것 이다.
사례 실현
환경 구축:
1.프로젝트 생 성:이름 사용자 정의,RedPacketDemo 를 권장 합 니 다.
2.그림 가 져 오기:pic 디 렉 터 리 를 항목 에 가 져 와 src 디 렉 터 리 와 동급 으로 가 져 옵 니 다.
3.이미 알 고 있 는 클래스 가 져 오기:src 아래 에 가방 을 만 들 고 이름 을 사용자 정의 하 며 편집 한 클래스 를 저장 합 니 다.
1.RedPacketFrame:(인터페이스)
하나의 추상 적 인 유형 은 일부 속성 을 포함 하고 보너스 사례 의 페이지 이다.
public abstract class RedPacketFrame extends JFrame {
/* ownerName : */
public String ownerName = " ";
/* openMode : [ / ] */
public OpenMode openMode = null;
/**
* : .
* @param title .
*/
public RedPacketFrame(String title) {
super(title);
init();//
}
/* set */
public void setOwnerName(String ownerName) {
this.ownerName = ownerName;
}
public void setOpenMode(OpenMode openMode) {
this.openMode = openMode;
}
}
2.OpenMode:(유형)보너스 종 류 를 지정 하기 위해 분배 방법 을 포함 하 는 인터페이스
public interface OpenMode {
/**
* @param totalMoney , " "。 , , 。
* @param count
* @return ArrayList<Integer> , .
*
* totalMoney, count , ArrayList<Integer> , .
*/
public abstract ArrayList<Integer> divide(int totalMoney, int count);
}
3.RedPacket 정의:RedPacket 클래스,RedPacketFrame 계승:
public class RedPacket extends RedPacketFrame {
public RedPacket(String title) {
super(title);
}
}
4.테스트 클래스 를 정의 하고 RedPacket 을 만 듭 니 다.
public class RedPacketTest {
public static void main(String[] args) {
RedPacket rp = new RedPacket(" ");
}
}
코드 를 실행 하고 보 너 스 를 보 내 는 페이지 를 엽 니 다.총 금액,보너스 개수,댓 글 정 보 를 입력 할 수 있 습 니 다.돈 넣 기 버튼 을 누 르 면 다음 페이지 로 넘 어 갑 니 다.
5.RedPacket 대상
RedPacket 대상,그룹 이름 설정.setOwner Name(String ownerName)은 문자열 을 매개 변수 로 합 니 다.우 리 는 문자열 하나만 전달 하면 된다.
public class RedPacketTest {
public static void main(String[] args) {
//
RedPacket rp = new RedPacket(" ");
//
rp.setOwnerName(" ");
}
}
6.RedPacket 대상보너스 종류 설정.setOpenMode(OpenMode openMode)는 인 터 페 이 스 를 매개 변수 로 합 니 다.우 리 는 인터페이스의 실현 클래스 를 정의 하고 인터페이스 에 있 는 방법 을 다시 쓰 며 실현 클래스 대상 을 setOpenMode 방법 에 전달 해 야 설정 이 완 료 됩 니 다.재 관찰 인터페이스:
public interface OpenMode {
/**
* @param totalMoney , " "。 , , 。
* @param count
* @return ArrayList<Integer> , .
*
* totalMoney, count , ArrayList<Integer> , .
*/
public abstract ArrayList<Integer> divide(int totalMoney, int count);
}
일반 보너스열기 모드 Common.
public class Common implements OpenMode {
@Override
public ArrayList<Integer> divide(int totalMoney, int count) {
//
ArrayList<Integer> list = new ArrayList<>();
//
int avgMoney = totalMoney / count;
// count\1
for (int i = 0; i < count \ 1; i++) {
list.add(avgMoney);
// ,
totalMoney \= avgMoney;
}
//
list.add(totalMoney);
return list;
}
}
일반 보 너 스 를 지급 하 다
public class RedPacketTest {
public static void main(String[] args) {
//
RedPacket rp = new RedPacket(" ");
//
rp.setOwnerName(" ");
//
rp.setOpenMode(new Common()); //
}
}
행운 의 보너스본질 적 으로 보 너 스 는 총 금액 토 탈 머 니 를 무 작위 로 지 정 된 count 부 로 나 누 는 것 이기 때문에 각 금액 의 수치 범 위 를 규정 해 야 한다.범위 가 너무 작 으 면 나중에 보 너 스 를 나 눠 주 는 금액 이 특히 클 수 있다.반대로 범위 가 너무 커서 나중에 보 너 스 를 분배 하 는 금액 이 0 으로 부족 할 수 있다.이 를 통 해 알 수 있 듯 이 수치 범위 의 정의 규칙 은 보너스 의 관건 이다.
저 희 는 모든 무 작위 금액 범위(마지막 부분 제외),최소 치 는 1 이 고 최대 치 는 현재 남 은 평균 금액 의 2 배 이 며 단 위 는'분'이 라 고 규정 합 니 다.
계산 공식:
현재 남 은 평균 금액=남 은 총 금액/남 은 보너스 개수
예 를 들 어 총액 은 50 위안 이 고 5 개의 보 너 스 를 준다.
팁:표 에서 연산 을 편리 하 게 하기 위해 서 입 니 다.여기 서 단 위 는'원'입 니 다.프로그램 에 서 는'분'으로 환산 하여 연산 하 는 것 을 권장 합 니 다.
Lucky:
보너스,오픈 방식 Lucky,코드 는 다음 과 같 습 니 다:
public class Lucky implements OpenMode {
@Override
public ArrayList<Integer> divide(int totalMoney, int count) {
//
ArrayList<Integer> list = new ArrayList<>();
// , \1
int time = count \ 1;
//
Random random = new Random();
//
for (int i = 0; i < time; i++) {
/*
* ,
* : totalMoney / count * 2,totalMoney ,
* count , .
*/
int money = random.nextInt(totalMoney / count * 2) + 1;
//
list.add(money);
//
totalMoney \= money;
// \1
count\\;
}
// ,
list.add(totalMoney);
return list;
}
}
상여금 을 지급 하 다
public class RedPacketTest {
public static void main(String[] args) {
//
RedPacket rp = new RedPacket(" ");
//
rp.setOwnerName(" ");
// ,
// rp.setOpenMode(new Common()); //
rp.setOpenMode(new Lucky()); //
}
}
총결산보너스 사례 를 통 해 저 는 전에 배 운 여러 종류 와 방법 을 정리 하면 다음 과 같 습 니 다.
1.기초 문법.
2.기본 적 인 방법 들.
3.사례 는 대상 을 대상 으로 하 는 계승 을 나타 낸다.
4.인 터 페 이 스 를 매개 변수 로 사용 합 니 다.
5.인터페이스의 사용 방식 을 간소화 한다.
모든 독자 에 게 는 자신의 사고 와 답 이 있 을 것 이 라 고 믿는다.또한 독자 여러분 들 이 개발 경험 이 풍부 해 지면 서 기술 에 대한 이해 가 더욱 깊 어 지고 기술 의 운용 에 더욱 능숙 해 질 것 이 라 고 믿 습 니 다.대량의 사례 에 대한 축적 을 통 해 최종 적 으로 자신 만 의 프로그램 을 작성 하여 진정한 coder 가 됩 니 다.읽 어 주 셔 서 감사합니다. 기술 의 길 은 시작 일 뿐 입 니 다!감사합니다!
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.