JAVA面向对象程序设计(第二版) 袁绍欣 第四章答案

面向对象(上)

1.名词解释:构造方法、抽象

构造方法一般是用来初始化数据成员的,与类名相同,无返回值。

分为有参和无参数,当一个类中没有定义构造函数时,系统会给该类中加一个默认的空参数的构造函数,方便该类初始化。

构造函数可以重载。

2.对象位于内存何处?声明能引用对象的本质是什么?

对象位于堆内存中,实质是从栈空间中初始化一个引用,保存对象的地址。

3.对象和基本数据类型作为参数传递时,有什么不同?

对象传递的是它的地址,基本数据类型是值传递。

4.对象在什么时候成为垃圾对象并被释放?

对象没有任何引用时,才会成为垃圾,当系统资源不够时,垃圾会被释放。

5.final修饰符有什么用?

修饰类时表示不可被继承

修饰方法时表示方法不可被重写,对子类隐藏

修饰变量时表示变量不可被更改

7.static修饰的属性和方法有什么特点?

在堆中的公共储存单元,不属于任一个类

main函数是特殊的静态方法

8.Application程序执行时,为什么不能带后缀名?

当运行 java x.y 时

java会找 package x 下面 类 y 的 main函数运行

如果写成 java x.class

java 会找 package x 下面 类 class 的main 函数运行,显然是找不到的

10.输出下列图形

5 5 5 5 5

4 4 4 4

3 3 3

2 2 

1
void display(n)
{
    if(n==1) return;
    for(int i=0;i<n;i++)
    {
        System.out.print(n+" ");
    }
    System.out.print("\n");
    display(n-1);
}

11.马周游问题

?在一张国际象棋棋盘上(8*8方格),骑士(knight,马)位于任意一个位置。问如何才能让骑士不重不漏的经过棋盘上的每个格?共有多少种跳法?

package com.text;  //课后习题 4.11
import java.util.*;
public class Chess {

    public static int dx[] = {-2,-1,1,2,2,1,-1,-2};
    public static int dy[] = {1,2,2,1,-1,-2,-2,-1};
    public static int n = 5;
    public static int res = 0;
    //public static int step = 0;
    public static void dfs(int x,int y,boolean[][] tabu,int step)
    {
        if(step == 24) {
            res++;
            System.out.println("ok");
            return;
        }
        tabu[x][y] = true;
        //step++;
        for(int i=0;i<8;i++)
        {
            int xx = x+dx[i];
            int yy = y+dy[i];
            if(xx>=0&&xx<n&&yy>=0&&yy<n&&tabu[xx][yy]==false)
            {
                //System.out.println(xx+","+yy);
                step++;
                dfs(xx,yy,tabu,step);
                step--;
            }
        }
        tabu[x][y] = false;
    }

    public static void main(String[] args) {
            boolean[][] tabu = new boolean[n][n];
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<n;j++)
                {
                    tabu[i][j] =false;
                }
            }
            dfs(0,0,tabu,0);
            System.out.println(res);
    }
}

这里我设置的棋盘是 5 * 5 的,答案304种,和网上给出的一样。
你问我为什么不 8 * 8 ?说多了都是泪。。。

8 * 8的我跑了好长好长时间,出不来结果,一直以为自己算法出错了,改来改去,一度崩溃。。。

实在受不了的我google了一下:

对于8 * 8棋盘,一共有26,534,728,821,064种封闭巡逻,但是到底有多少种开巡逻仍然未知 --摘自维基百科

(封闭巡逻就是跳回原位置,开巡逻就是最后可以跳到任意位置)

我算你个鬼,你个糟老头子坏得很~

原文地址:https://www.cnblogs.com/lyc1226/p/10661458.html

时间: 2024-10-10 15:14:16

JAVA面向对象程序设计(第二版) 袁绍欣 第四章答案的相关文章

JAVA面向对象程序设计(第二版) 袁绍欣 第六章答案

1.this 和 super 各有几种用法? 普通的直接引用,this指向当前对象 形参与成员名字重名,用 this 来区分:子类和父类中的成员重名,使用 super 引用构造函数 2.子类对象实例化的具体过程是什么? 先调用父类的构造函数,再调用自己的构造函数 3.类的域变量和方法中定义的局部变量在初始化上有何区别? 类的域变量在类实例化的时候进行初始化,方法中的局部变量在方法内部显式初始化 5.接口有什么用?自己定义一个接口,并给出实现类和使用类 实现多重继承 接口是一种标准,使用者按照接口

《Java面向对象编程第二版》今年出版以来获得读者一致好评。

<Java面向对象编程第一版>自2016年出版以来,承蒙读者们的厚爱,至今已经重印了二十多次,成为国内Java领域里的经典Java技术宝典.在当当网上获得了1500多条好评: http://product.dangdang.com/9186890.html?point=comment_point 应广大读者的要求,为第一版进行了升级,第二版融合了最新的Java8的语言特性,它继续为Java开发人员们提供丰富全面的技术支持和帮助.在京东网上读者们对第二版的好评如潮,一致认为这是Java开发人员必

《Java面向对象编程第二版》即将出版

<Java面向对象编程第一版>自2016年出版以来,承蒙读者们的厚爱,至今已经重印了二十多次,成为国内Java领域里的经典Java技术宝典.应广大读者的要求,在过去的几个月,为第一版进行了升级,第二版融合了最新的Java8的语言特性,希望它能继续为Java开发人员们提供丰富全面的技术支持和帮助. 本书技术支持网址为:www.javathinker.net

java的第二个实验——JAVA面向对象程序设计

java的第二个实验——JAVA面向对象程序设计 北京电子科技学院 实     验    报     告 课程:Java程序设计 班级:1352 姓名:林涵锦 学号:20135213 成绩:        指导教师:娄嘉鹏  实验日期:2015.4.14 实验密级: 预习程度:  实验时间:19:30~21:50 仪器组次:13 必修/选修:选修 实验序号:2 实验名称:JAVA面向对象程序设计 实验目的与要求: 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态

2062326 齐力锋 实验四《Java面向对象程序设计Android开发》实验报告

北京电子科技学院(BESTI) 实 验 报 告 课程: 程序设计与数据结构  班级: 1623  姓名: 齐力锋 学号: 20162326 成绩: 指导教师: 娄嘉鹏/王志强 实验日期: 2017年5月26日 实验密级:非密级 预习程度: 优良 实验时间: 2 Hours 仪器组次: 必修/选修: 必修 实验序号: 04 实验名称:Java面向对象程序设计Android开发 实验内容 1.Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBI

20172304 实验二 《Java面向对象程序设计》 实验报告

20172304 实验二 <Java面向对象程序设计> 实验报告 - 课程名称:<程序设计与数据结构> - 学生班级:1723班 - 学生姓名:段志轩 - 学生学号:20172304 - 实验时间:2018年4月18日 - 实验名称:<Java面向对象程序设计> - 指导老师:王志强老师 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 完成蓝墨云上 (1)-(5)实验. 实验要

2062326 齐力锋 实验二《Java面向对象程序设计》实验报告

北京电子科技学院(BESTI) 实     验    报     告 课程:   程序设计与数据结构           班级:      1623           姓名:  齐力锋      学号: 20162326 成绩:             指导教师:   娄嘉鹏/王志强             实验日期: 2017年4月14日 实验密级:非密级         预习程度:   优良      实验时间: 2 Hours 仪器组次:          必修/选修:   必修    

20145301《Java程序设计》实验二报告:Java面向对象程序设计

20145301<Java程序设计>实验二报告:Java面向对象程序设计 课程:Java程序设计 实验名称:Java面向对象程序设计 实验目的与要求: 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验内容: 使用TDD的方式设计关实现复数类Complex 程序设计思路: 需求分析: 复数运算需要分:实部和虚部. 需要运行四则运算,即加.减.乘.除四种运算.  需要用户有输入,所以调用了Scanner实例,i

20135119_涂文斌 实验二 Java面向对象程序设计

北京电子科技学院(BESTI) 实  验  报  告 课程: Java        班级:1351           姓名:涂文斌          学号:20135119 成绩:               指导教师:娄嘉鹏    实验日期:2015.4.17 实验密级:         预习程度:             实验时间:15:30~18:00 仪器组次:         必修/选修:选修       实验序号:(一) 实验名称:java面向对象程序设计 实验目的:1.初步掌握