JAVA练习(五)对象封装

news2024/9/22 16:36:56

选择题

1、【static使用】

如果有以下程序片段:

public class Some{
	private Some some;
	private Some(){}
	public static Some create(){
		if(some == null){
			some = new Some();
		}
		return some;
	}
}

以下描述哪个正确:
A、编译错误
B、客户端必须使用new Some()产生Some实例
C、客户端必须使用new Some().create()产生Some实例
D、客户端必须使用Some.create()产生Some实例

一开始选了D,想到static使用类名称作为命名空间。但实际运行了以下发现编译错误,报错提示无法从静态上下文中引用非静态变量some,所以选A。

操作题

1、汉诺塔问题–递归

汉诺塔问题描述
撰写程序显示搬运过程:

public class HannoiTower{
    public static void main(String[] args) {
        Tower tower = new Tower();
        tower.move(2,'A','B','C');
    }
}

class Tower{
    public void move(int num,char a, char b, char c){ //num:盘子数量;A、B、C:三根塔,从a移到c借助b)
        //如果只有一个盘
        if(num ==1){
            System.out.println(a + "->" + c);
        }else{
            //如果有多个盘,看成两个盘,最下面的和上面的所有盘(num-1)
            //1.先移动上面的所有盘到b,借助c
            move(num-1,a,c,b);
            //2.最下面的盘移动到c
            System.out.println(a + "->" + c);
            //3.b的所有盘从b移动到c,借助a塔
            move(num-1,b,a,c);
        }
    }
}

2、老鼠出迷宫问题–递归

public class MiGong {

    public static void main(String[] args) {
        //1.先创建迷宫,用二维数组表示
        //2.先规定元素值 0表示可以走,1表示障碍物
        int[][] map = new int[8][7];
        //3.将最上面的一行和最下面的一行全部设置为1
        for(int i=0;i<7;i++){
            map[0][i] = 1;
            map[7][i] = 1;
        }
        //4.将最右面的一列和最左面的一列全部设置为1
        for(int i=0;i<8;i++){
            map[i][0] = 1;
            map[i][6] = 1;
        }
        //添加障碍物
        map[3][1] = 1;
        map[3][2] = 1;
        //输出当前地图
        System.out.println("======当前地图======");
        for(int i=0; i<map.length; i++){
            for(int j=0; j<map[i].length; j++){
                System.out.print(map[i][j]+" ");
            }
            System.out.println();
        }
        //使用findWay给老鼠找路
        T t1 = new T();
        t1.findWay(map, 1, 1);

        System.out.println("======找路的情况如下======");
        for(int i=0; i<map.length; i++){
            for(int j=0; j<map[i].length; j++){
                System.out.print(map[i][j]+" ");
            }
            System.out.println();
        }
    }
}

class T{
    //使用递归回溯的思想解决出迷宫问题
    //1.findWay专门用来解决出迷宫的路径问题
    //2.找到返回true,否则返回false
    //3.初始化位置(1,1)
    //4.先规定map数字的各个值的含义: 0表示地图无障碍物,1表示障碍物 2表示(测试过)可以走 3表示走过但走不通 **
    //5.退出递归的条件:当出口map(6,5)=2时,说明找到通路,否则继续找  **
    //6.先确定找路策略下-》右-》上-》左
    public boolean findWay(int[][] map, int i, int j){
        if(map[6][5]==2){ //已经找到
            return true;
        }else{
            if(map[i][j] == 0){ //当前位置为0,说明可以走
                //假定可以走通
                map[i][j] = 2;
                //使用找路策略,来确定该位置是否真的可以走通,下-》右-》上-》左
                if(findWay(map, i+1, j)){ //先尝试走下
                    return true;
                }else if(findWay(map, i, j+1)){//右
                    return true;
                }else if(findWay(map, i-1, j)){//上
                    return true;
                }else if(findWay(map, i, j-1)){//右
                    return true;
                }else{ //此处不能走通
                    map[i][j] = 3;
                    return false;
                }
            }else{
                return false;
            }
        }
    }
}
hard: ****

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1997063.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

政务数据共享交换平台的逻辑架构

政务数据共享交换平台基于主流大数据技术和政务数据共享交换规范&#xff0c;提供大数据工作门户、工单系统、资源目录管理平台、数据交换平台和API管理平台&#xff0c;如 政务数据共享交换平台主要包括大数据工作门户、数据资源目录管理平台、共享交换管理平台、API管理平台、…

Python07:循环结构 --> for-in循环

如果循环次数已经确定&#xff0c; for循环 """ eg05 - 循环结构 --> for-in循环Author: mimo_yy Date: 2024/5/15 """ # 如果循环次数已经确定 for循环 for i in range(100): # 产生0到100范围的整数&#xff0c;从0开始取数&#xff0c;1…

【Impala】学习笔记

Impala学习笔记 【一】Impala介绍【1】简介&#xff08;1&#xff09;简介&#xff08;2&#xff09;优点&#xff08;3&#xff09;缺点 【2】架构&#xff08;1&#xff09;Impalad&#xff08;守护进程&#xff09;&#xff08;2&#xff09;Statestore&#xff08;存储状态…

【智能控制】第8章 典型神经网络 ,单神经元网络,BP神经网络,RBF神经网络,Hopfield神经网络(北京航天航空大学)

目录 第8章 典型神经网络 1. 单神经元网络 2. BP神经网络 3. RBF神经网络 4. Hopfield神经网络 第8章 典型神经网络 根据神经网络的连接方式&#xff0c;神经网络可分为三种形式&#xff1a;前馈型神经网络、反馈型神经网络和自组织网络&#xff0c;。典型的前馈型神经…

嵌入式边缘计算软硬件开发实训室解决方案

一、 引言 随着5G通信技术、人工智能算法和大数据分析方法的迅猛发展&#xff0c;物联网(IoT)设备的数量正以前所未有的速度增长&#xff0c;这些设备每天产生着海量的数据。据预测&#xff0c;到2025年&#xff0c;全球将有超过750亿个连接的IoT设备。这些设备不仅包括常见的智…

ArcGIS基础:标注转注记及简单处理

注记是一个静态的标签图层&#xff0c;能够独立的保存为文件&#xff0c;并且具有计算功能&#xff1b; 标注是一个动态的标签图形&#xff0c;无法以文件的形式进行存储和计算&#xff1b; 2者各有优势和劣势&#xff0c;根据具体需求进行选择 需要注意的是注记要存储在GDB…

Spring-MyBatis整合:No qualifying bean of type ‘XXX‘ available: ...

1.看一下核心配置中有没有导入myBatis配置 2.看一下service和dao有没有相应注解 3.看一下MyBatisConfig中有没有对sqlSessionFactory和mapperScannerConfigurer注释成bean对象以及有没有配置映射文件路径

天机学堂 第七天 积分系统

签到 签到最核心的包含两个要素&#xff1a; 谁签到&#xff1a;用户id 什么时候签的&#xff1a;签到日期 同时要考虑一些功能要素&#xff0c;比如&#xff1a; 补签功能&#xff0c;所以要有补签标示 按照年、月统计的功能&#xff1a;所以签到日期可以按照年、月、日分…

2024年TI杯E题-三子棋游戏装置方案分享-jdk123团队-第一弹赛题的选择与前期方案的准备

赛前准备 本来我们团队前几个月的准备都在小车上&#xff0c;赛前也完成了 STM32,树莓派4B&#xff0c;Openmv等几款常见主控板来对小车完成基本的模块封装控制。我们团队的大部分精力以及预算都准备在了小车上面。 赛题选择 由于在赛题公布的的那一天&#xff0c;我们发现H…

张邱建 百鸡问题 python 求解

“百鸡问题”是一个著名的古典数学问题&#xff0c;来源于中国古代数学著作《张邱建算经》。问题是这样的&#xff1a;公鸡每只5钱&#xff0c;母鸡每只3钱&#xff0c;小鸡3只1钱&#xff0c;用100钱买100只鸡&#xff0c;问公鸡、母鸡、小鸡各有多少只&#xff1f; from sym…

【学习笔记】卫星网络(NTN)的窄带物联网(NB-IoT)/增强型机器类型通信(eMTC)研究 -- 3GPP TR 36.763(一)

引言 在RAN#86会议上&#xff0c;针对物联网非陆地网络&#xff08;IoT NTN&#xff09;批准了一个新的研究项目&#xff0c;并在RAN#91中进行了修订[4]。在RAN#91中&#xff0c;有一封关于[91E][42][NTN_IoT_Roadmap]的电子邮件讨论&#xff0c;其中包括主持人的总结和GTW输入…

NOI Linux 2.0 的安装说明以及使用指南

关于 NOI Linux 2.0 NOI Linux 是 NOI 竞赛委员会基于 Ubuntu 操作系统开发的一款 Linux 桌面发行版&#xff0c;是一套免费的、专门为信息学奥林匹克竞赛选手设计的操作系统&#xff0c;是 NOI 系列赛事指定操作系统&#xff0c;适用于常见笔记本电脑和桌面电脑。 新建虚拟机…

lvs加keepalive高可用集群

lvs集群当中的高可用架构只是针对调度器的高可用 基于vrrp来实现调度器的主和备 高可用的HA架构 主调度器和备调度器&#xff08;多台&#xff09; 在主调度器正常工作的时候&#xff0c;备完全处于冗余状态&#xff08;待命&#xff09;&#xff0c;不参与集群的运转&…

深入解析Nginx限流策略:如何高效控制访问频率

摘要&#xff1a;本文将详细介绍Nginx限流模块的使用方法&#xff0c;包括基于IP地址的限流、基于并发连接的限流以及如何应对突发流量。通过实际案例&#xff0c;帮助读者掌握Nginx限流策略&#xff0c;确保服务器在高并发场景下的稳定运行。 一、引言 在高并发场景下&#x…

Vscode下ESP32工程函数定义无法跳转

1.删除.vscode 2.按下 ctrlshiftp&#xff0c;搜索 ESP-IDF:Add vscode Configuration Folder

SwinIR速读

SwinIR发表在ICCV21,它核心创新在于使用了SwinTransformer(同年ICCV best paper)进行图像修复&#xff0c;由ETH的CVL提出&#xff0c;大组还是抓前沿抓得好&#xff0c;不仅能想到&#xff0c;还能做出来性能&#xff0c;而且性能还是稳定的增益&#xff0c;通用性强。 目前&a…

TCP Window Full TCP Zero Window

TCP window Full & TCP Zero Window 注&#xff1a; 192.168.60.67 是客户端IP10.250.251.223是服务端IP 当客户端向服务发送多个280大小应用层数据时&#xff0c;在No 45帧数据时发生TCP Window Full&#xff0c;应用发送280字节&#xff0c;实际发出去只有67个字节。28…

机器学习——逻辑回归(学习笔记)

目录 一、认识逻辑回归 二、二元逻辑回归&#xff08;LogisticRegression&#xff09; 1. 损失函数 2. 正则化 3. 梯度下降 4. 二元回归与多元回归 三、sklearn中的逻辑回归&#xff08;自查&#xff09; 1. 分类 2. 参数列表 3. 属性列表 4. 接口列表 四、逻辑回归…

11.面试题——消息队列RabbitMQ

1.RabbitMQ是什么&#xff1f;特点是什么&#xff1f; RabbitMQ是一种开源的消息队列中间件&#xff0c;用于在应用程序之间进行可靠的消息传递。它实现了AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;协议&#xff0c;提供了强大的消息处理能力。RabbitMQ的…

DVWA—SQL Injection

DVWA—SQL Injection实例 1. low等级 进入界面后&#xff0c;可以看到它是一个ID的查找内容的输入框&#xff0c;我们输入数字1、2可以看到是从后端返回数据库相应的数据&#xff0c;但是我们作为SQL注入的最终目标是得到更多有关的信息&#xff0c;所以我们需要通过构造payl…