面向对象特征+斗地主

面向对象特征

封装
封装是指隐藏对象的属性和实现细节,仅对外提供公共public访问方式。
好处:隐藏实现细节,提供公共的访问方式。提高了代码的复用性和安全性。
原则:封装原则将不需要对外提供的内容都隐藏起来。把属性隐藏,提供公共方法对其访问。

实例:
创建一个类“BL”,定义私有属性“height”,“wight”
在这里插入图片描述
给定“get”和“set”方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可根据需求改写set身高
在另一个类中可获取BL中的“height”属性
在这里插入图片描述
运行后可得到默认值为0
在这里插入图片描述
构造方法
作用:给对象的数据(属性)进行初始化赋值

实例:

在“BL”类中添加无参与有参
i.无参:
在这里插入图片描述
ii.有参:
右键“Generate”–“Constructor”
在这里插入图片描述
在这里插入图片描述
在另一个类中执行“BL”类中无参与有参的方法
在这里插入图片描述
继承
继承是让类与类之间产生关系,子父类关系
好处:提高了代码的复用性 ;提高了代码的维护性;让类与类之间产生了关系,继承是多态的前提
注:Java只支持单继承,不支持多继承

实例:

i.父类(Anm)
在这里插入图片描述
ii. 子类(Cat)
在这里插入图片描述
抽象类/抽象方法(不具体的类/方法)
必须用“abstract”关键字修饰
抽象方法必须写在抽象类中,抽象类中可以有普通方法
抽象类不能被新建,但一定要在子类中实现
在这里插入图片描述
接口
用关键字interface表示
接口里全是抽象方法
默认为抽象方法,不用写“abstract”
在这里插入图片描述
斗地主实例
代码如下
package com.zhongruan;

import java.util.*;

public class DouDiZhu {
public static void main(String[] args) {
//1.准备一副牌
Map<Integer,String> map=new HashMap<Integer, String>();
List poker=new ArrayList<>();
String[] nums={“A”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“10”,“J”,“Q”,“K”};
String[] colors={“黑桃”,“红心”,“梅花”,“方块”};
for (String color:colors){
for (String num:nums){
String pai=color+num;
poker.add(pai);
}
}
poker.add(“大王”);
poker.add(“小王”);
//System.out.println(poker);
//2.洗牌
Collections.shuffle(poker);
//System.out.println(poker);
//3.留3张牌
//Set keyset=map.keySet();
List dipai=new ArrayList<>();
Random random=new Random();
for (int i=0;i<3;i++){
int index=random.nextInt(poker.size());
String pai=poker.remove(index);
dipai.add(pai);
}
System.out.println(dipai);
//System.out.println(poker);
//4.发牌
List wwc=new ArrayList<>();
List hll=new ArrayList<>();
List tkh=new ArrayList<>();
for (int i=0;i<poker.size();i++){
String pai=poker.get(i);
int mod=i%3;
if (mod0){
wwc.add(pai);
}else if (mod1){
hll.add(pai);
}else {
tkh.add(pai);
}
}
//5.看牌
System.out.println(wwc);
System.out.println(hll);
System.out.println(tkh);
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值