day5

面向对象的特征

1.封装
2.继承
3.多态

1.封装

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

2.继承,子父类关系

继承:让类与类之间产生关系,子父类关系
案例演示:动物类,猫类,狗类。定义两个属性(颜色,腿的个数)两个功能(吃饭,睡觉)。extends是继承的意思。Animal是父类。Cat和Dog都是子类。
使用继承前使用继承后的一个简单区别就是代码简化了。
继承的好处:1.提高了代码的复用性。2.提高了代码的维护性。3.让类与类之间产生了关系,继承是多态的前提。
继承的弊端:1.类的耦合性增强了。2.开发的原则:高内聚,低耦合。耦合:类与类的关系。内聚:就是自己完成某件事情的能力。
Java类的继承特点:java只支持单继承,不支持多继承。(一个儿子只能有一个爹)。有些语言是支持多继承,多继承的格式:extends类1,类2,…。java支持多层继承(继承体系)如果想用这个体系的所有功能用最底层的类创建对象。如果想看这个体系的共性功能,看对顶层的类

方法重写概述及其应用
什么是方法重写:方法重写是指子父类出现了一模一样的方法。重写这个概念只是存在子类和父类中。
方法重写的应用:当子类需要父类的功能,而子类有自己特有内容时,可以重写父类中的方法。这样,即沿袭了父类的功能,又定义了子类特有的内容。

3.多态

什么是多态:多态就是事物存在的多种形态
java中存在多态的前提条件:要有继承关系,要有方法重写,要有父类引用指向子类对象。
多态中向上转型和向下转型
向上转型:父类指向子类对象Person p=new SuperMan();
向下转型:子类指向父类对象SuperMan sm=(SuperMan)p;
**向下转型注意:父类的真实对象必须是子类对象,否则会有问题。
**
斗地主案例
以下为代码:
package com.zhongruan;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;

public class Test3 {
public static void main(String[] args) {
ArrayList col = new ArrayList();
col.add(“♠”);
col.add(“♥”);
col.add(“♦”);
col.add(“♣”);
ArrayList num = new ArrayList();
num.add(“3”);
num.add(“4”);
num.add(“5”);
num.add(“6”);
num.add(“7”);
num.add(“8”);
num.add(“9”);
num.add(“10”);
num.add(“J”);
num.add(“Q”);
num.add(“K”);
num.add(“A”);
num.add(“2”);
HashMap<Integer, String> map = new HashMap<Integer, String>();

    int a = 0;
    for (String b : num) {
        for (String c : col) {
            map.put(a++, b+c);
        }
    }
    map.put(a++, "小王");
    map.put(a++, "大王");
    ArrayList<Integer> pd = new ArrayList<Integer>();

    for (int i = 0; i <= 53; i++) {
        pd.add(i);
    }
    Collections.shuffle(pd);


    ArrayList<Integer> id1 = new ArrayList<Integer>();
    ArrayList<Integer> id2 = new ArrayList<Integer>();
    ArrayList<Integer> id3 = new ArrayList<Integer>();
    ArrayList<Integer> id4 = new ArrayList<Integer>();

    for (int i = 0; i < pd.size(); i++) {
        if(i>=51) {
            id4.add(pd.get(i));
        } else {
            if(i%3==0) {
                id1.add(pd.get(i));
            }else if(i%3==1) {
                id2.add(pd.get(i));
            }else {
                id3.add(pd.get(i));
            }
        }
    }

    Collections.sort(id1);
    Collections.sort(id2);
    Collections.sort(id3);

    ArrayList<String> o = new ArrayList<String>();
    ArrayList<String> t = new ArrayList<String>();
    ArrayList<String> th = new ArrayList<String>();
    ArrayList<String> f = new ArrayList<String>();

    for (Integer x : id1) {
        o.add(map.get(x));
    }
    for (Integer x : id2) {
        t.add(map.get(x));
    }
    for (Integer x : id3) {
        th.add(map.get(x));
    }
    for (Integer x : id4) {
        f.add(map.get(x));
    }

    System.out.println("ID1"+o);
    System.out.println("ID2"+t);
    System.out.println("ID3"+th);
    System.out.println("底牌"+f);
}

}
运行结果为:
在这里插入图片描述
注:Collections.sort()运用:类似于洗牌,将顺序打乱

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值