1. 程式人生 > 其它 >100天程式碼提升計劃-第16天

100天程式碼提升計劃-第16天

抽象類方法的注意事項

1.抽象類不能建立物件

2抽象類中可以構造方法,是供子類建立物件時,初始化父類成員使用的

3.抽象類中不一定包含抽象方法,但是有抽象方法的類一定時抽象類

4.抽象類的子類必須重寫父類中所有的抽象方法,除非子類也是抽象類

 

練習:發紅包

思路

1.群主發紅包,成員領紅包,群主和成員有公共因素

2.公共部分為父類

3.群主裡面應該有發紅包的方法,成員有收紅包的方法  //子類

程式碼

父類

package Fahongbao;

public class User {
    private String name;
    private int money;

    public
User() { } public User(String name, int money) { this.name = name; this.money = money; } public void show(){ System.out.println("我是:"+name+",我的餘額有:"+money); } public String getName() { return name; } public void setName(String name) {
this.name = name; } public int getMoney() { return money; } public void setMoney(int money) { this.money = money; } }

 

子類

//群主發紅包
package
Fahongbao; import java.util.ArrayList; //yfdq=要發的錢 yuer =餘額 public class Groupleader extends User { public Groupleader(){ }
public Groupleader(String name, int money) { super(name, money); } public ArrayList<Integer> send(int ysdq,int count){ ArrayList<Integer> readlist=new ArrayList<Integer>();//定義一個新的集合 int yuer=super.getMoney();//餘額得去父類裡面看一下 if (ysdq>yuer){ System.out.println("餘額不足!!"); return readlist; } super.setMoney(yuer-ysdq);//發完錢以後把剩下的錢還回去 int avg = ysdq/count; int yushu=ysdq%count;//餘出來的錢給最後一個紅包 for (int i = 0; i < count-1; i++) { readlist.add(avg); } int last=avg+yushu; readlist.add(last); return readlist; } }


//成員收紅包
package
Fahongbao; import java.util.ArrayList; import java.util.Random; public class Member extends User { public Member() { } public Member(String name, int money) { super(name, money); } public void receive (ArrayList<Integer>list){ int index=new Random().nextInt(list.size());//在集合中隨機獲取索引值 int delta = list.remove(index);//在集合中刪掉已經獲取的錢 int money =super.getMoney();//本來有多少錢 super.setMoney(money+delta);//最新的錢數 } }

 

主方法

package Fahongbao;

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        Groupleader qunzhu =new Groupleader("群主",500);
        Member chengyuan1=new Member("張三",0);
        Member chengyuan2=new Member("李四",0);
        Member chengyuan3=new Member("王五",0);
        qunzhu.show();
        chengyuan1.show();
        chengyuan2.show();
        chengyuan3.show();
        ArrayList<Integer> redlist=qunzhu.send(9,3);//群主發多少錢
        chengyuan1.receive(redlist);//成員領錢
        chengyuan2.receive(redlist);//成員領錢
        chengyuan3.receive(redlist);//成員領錢
        //更新後的錢
        qunzhu.show();
        chengyuan1.show();
        chengyuan2.show();
        chengyuan3.show();

    }
}