JAVA编程思想第七章练习题

Java语言程序设计(基础篇)(原书第10版) 第七章编程练习题 心血来潮补一下之前没做完的课后题,争取全部做完,欢迎大家评论指正。 目录7-1 指定等级7-2 倒置输入的数7-3 计算数字的出现次数7-4 分析成绩7-5 打印不同的数7-6 修改程序清单5-157-7 统计一位数的个数7-8 求数组的平均值7-9 找出最小元素7-10 找出最小元素的下标7-11 统计学方面:计算标准差7-12 倒置数组7-13 随机数选择器7-14 计算gcd7-15 消除重复7-16 执行时间7-17 对学生排序7-18 冒泡排序7-19 是否排好序了?7-20 修改选择排序法7-2 阅读详情

package java7;
class Simple{
    String s;
    public Simple(String si){ s = si;}
    public String toString(){return s;}
    public void setString(String sNew){ s = sNew;}

}
class Second{
    Simple simple;
    String s;
    public Second(String si){s = si;}

    public void check(){
        if (simple == null)
            System.out.println("not Initialized");
        else
            System.out.println("initialized");
    }
    private Simple lazy(){
        if (simple == null) {
            System.out.println("Creating Simple");
            simple = new Simple(s);
        }
        return simple;
    }
    public Simple getSimple(){ return lazy();}
    public String toString(){return lazy().toString();}
    public void setSimple(String sNew){
        lazy().setString(sNew);
    }
}

public class E01 {
    public static void main(String[] args) {
        Second second = new Second("Init String");
        second.check();
        System.out.println(second.getSimple());
        second.check();
        System.out.println(second);
        second.setSimple("New String");
        System.out.println(second);
    }
}

package java7;

public class E02 extends Detergent{
    public void scrub(){
        append("E02.scrub()");
    }

    public void sterilize(){
        System.out.println("this is sterilize");
    }

    public static void main(String[] args) {
        E02 e02 = new E02();
        e02.scrub();
        System.out.println(e02);
        e02.sterilize();

    }
}

package java7;
class Cartoo extends Drawing{
    public Cartoo() {
        System.out.println("Cartoo constructor");
    }
}
public class E03 {
    public static void main(String[] args) {
        new Cartoo();
    }
}

 练习4

package java7;
class Base1{
    public Base1() {
        System.out.println("Base1");
    }
}
class Derived1 extends Base1{
    public Derived1() {
        System.out.println("Derived1");
    }
}
class Derived2 extends Derived1{
    public Derived2() {
        System.out.println("Derived2");
    }
}
public class E04 {
    public static void main(String[] args) {
        new Derived2();
    }
}

练习5

package java7;
class A{
    public A() {
        System.out.println("A()");
    }
}
class B{
    public B() {
        System.out.println("B()");
    }
}
class C extends A{
    B b = new B();
}
public class E05 {
    public static void main(String[] args) {
        new C();
    }
}

 

 练习7:

package java7;
class A2{
    public A2(String s) {
        System.out.println("A2()" + s);
    }
}
class B2{
    public B2(String s) {
        System.out.println("B2()" + s);
    }
}
class C2 extends A2{
    B2 b;
    public C2(String s) {
        super(s);
        b = new B2(s);
    }
}
public class E07 {
    public static void main(String[] args) {
        new C2("hello");
    }
}

练习8 

package java7;
class ji{
    public ji(int i) {
        System.out.println("ji");
    }
}
class ji2 extends ji{
    public ji2() {
        super(1);
        System.out.println("jiji");
    }

    public ji2(int i) {
        super(i);
        System.out.println("feiji");
    }
}
public class E08 {
    public static void main(String[] args) {
        new ji2();
        new ji2(2);
    }

}

练习9:

package java7;
class Component1{
    public Component1() {
        System.out.println("Component1");
    }
}
class Component2{
    public Component2() {
        System.out.println("Component2");
    }
}
class Component3{
    public Component3() {
        System.out.println("Component3");
    }
}
class Root{
    Component1 c1 = new Component1();
    Component2 c2 = new Component2();
    Component3 c3 = new Component3();

    public Root() {
        System.out.println("Root");
    }
}

class Stem extends Root{
    Component1 c1 = new Component1();
    Component2 c2 = new Component2();
    Component3 c3 = new Component3();

    public Stem() {
        System.out.println("Stem");
    }
}
public class E09 {
    public static void main(String[] args) {
        new Stem();
    }

}

 

package java7;
class Component1{
    public Component1() {
        System.out.println("Component1");
    }
    public void dispose(){
        System.out.println("Component Dispose");
    }
}
class Component2{
    public Component2() {
        System.out.println("Component2");
    }
    public void dispose(){
        System.out.println("Component Dispose");
    }
}
class Component3{
    public Component3() {
        System.out.println("Component3");
    }
    public void dispose(){
        System.out.println("Component Dispose");
    }
}
class Root{
    Component1 c1 = new Component1();
    Component2 c2 = new Component2();
    Component3 c3 = new Component3();

    public Root() {
        System.out.println("Root");
    }
    public void disepose(){
        System.out.println("Root dispose");
        c3.dispose();
        c2.dispose();
        c1.dispose();
    }
}

class Stem extends Root{
    Component1 c1 = new Component1();
    Component2 c2 = new Component2();
    Component3 c3 = new Component3();

    public Stem() {
        System.out.println("Stem");
    }
    public void disepose(){
        System.out.println("Stem dispose");
        c3.dispose();
        c2.dispose();
        c1.dispose();
    }
}
public class E09 {
    public static void main(String[] args) {
        new Stem().disepose();
    }


}

练习13:创建一个类,它应带有一个被重载了三次的方法 。继承产生一个新类,并添加一个该方法的新的重载定义,展示这四个方法在导出类中都是可以使用的。

package java7;
class Lei{
    public void f(int i){
        System.out.println("f(int i)");
    }
    public void f(char c){
        System.out.println("f(char c)");
    }
    public void f(double d){
        System.out.println("f(double d)");
    }
}
class Jicheng extends Lei{
    public void f(String s){
        System.out.println("f(String s)");
    }
}
public class E13 {
    public static void main(String[] args) {
        Lei lei = new Lei();
        lei.f(1);
        lei.f(1.0);
        lei.f('s');
        //lei.f("hello");
    }
}

 

package java7;
class Engine{
    public void start(){}
    public void rev(){}
    public void stop(){}

}
class Ser extends Engine{
    public void service(){
        System.out.println("Service for you!");
    }
}

class  Wheel{
    public void inflate(int psi){}
}

class Window{
    public void rollup(){}
    public void rolldown(){}
}

class Door{
    public Window window = new Window();

    public void open(){}
    public void close(){}
}


public class Car {
    public Ser engine = new Ser();
    public Wheel[] wheel = new Wheel[4];
    public Door left = new Door(),right = new Door();

    public Car() {
        for (int i = 0; i < 4; i++) {
            wheel[i] = new Wheel();
        }
    }

    public static void main(String[] args) {
        Car car = new Car();
        car.left.window.rollup();
        car.wheel[0].inflate(72);
        car.engine.start();
        car.engine.service();
    }
}

用该protected方法。

package java7;

import java7.protect.E15_Pro;

class Derived extends E15_Pro{
    public void g(){
        f();
    }
}
public class E15 {
    public static void main(String[] args) {
       // new E15_Pro().f();
        new Derived().g();
    }
}

package java7;
class Amphibian{
    public void move() {
        System.out.println("Move");
    }
}
class Frog1 extends Amphibian{}
public class Frog {
    public static void main(String[] args) {
        Amphibian a = new Frog1();
        a.move();
    }
}
package java7;
class Amphibian{
    public void move() {
        System.out.println("Move");
    }
}
class Frog2 extends Amphibian{
    public void move(){
        System.out.println("Frog");
    }
}
public class Frog {
    public static void main(String[] args) {
        Amphibian a = new Frog2();
        a.move();
    }
}

 

 

package java7;
class SelfCounter{
    private static int count;
    private int id = count++;

    @Override
    public String toString() {
        return "SelfCounter{" +
                "id=" + id +
                '}';
    }
}

class WithFinalFields{
    final SelfCounter scf = new SelfCounter();
    static final SelfCounter scsf = new SelfCounter();

    @Override
    public String toString() {
        return "WithFinalFields{" +
                "scf=" + scf +
                '}' + "scsf = " + scsf;
    }
}
public class E18 {
    public static void main(String[] args) {
        System.out.println("First object:");
        System.out.println(new WithFinalFields());
        System.out.println("second object:");
        System.out.println(new WithFinalFields());
    }
}

package java7;
class WithBlankFinalField{
    private final Integer i;

    public WithBlankFinalField(Integer i) {
        this.i = i;
    }

    public Integer getI() {
        return i;
    }
}
public class E19 {
    public static void main(String[] args) {
        WithBlankFinalField wbff = new WithBlankFinalField(10);
        System.out.println(wbff.getI());
    }
}

 

 

package java7;
class WithFinalMethod{
    final void f(){}
}
public class E20 extends WithFinalMethod{
    //void f(){}不可以

    public static void main(String[] args) {
        
    }
}

 

 不可以继承

 练习23:

package java7;
class LoadTest{
    static {
        System.out.println("Loading LoadTest");
    }
    static void staticMember(){}
}
public class E23 {
    public static void main(String[] args) {
        System.out.println("Calling static member");
        LoadTest.staticMember();
        System.out.println("Creating an object");
        new LoadTest();
    }
}

练习24:

package java7;
class JapaneseBeetle extends Beetle{
    int m = printInit("JapaneseBeetle.m initialized");
    JapaneseBeetle(){
        System.out.println("m = " + m);
        System.out.println("j = " + j);
    }
    static int x3 = printInit("static JapaneseBeetle.x3 initialized");
}
public class E24 {
    public static void main(String[] args) {
        new JapaneseBeetle();
    }
}

final和类初始化这一块没太看懂 

Thinking in Java 第四版完整版 第七章练习题 复用类 Thinking in Java 第四版完整版 第七章练习题,记录一下(jdk1.8.0) 1. /** * 练习1:创建一个简单的类。在第二个类中,将一个引用定义为第一个类 * 的对象。运用惰性初始化来实例化这个对象。 * @author admin11 * @date 2018年3月21日 */ class Simple { String s; pu... 阅读详情

相关推荐

Java语言程序设计与数据结构(基础篇)课后练习题 第七章

对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。再分享一波我的Java面试真题+视频学习详解+技能进阶书籍效果低效又漫长,而且极易碰到天花板技术停滞不前!**因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

m0_60147147的博客 988

《Java编程思想》第七章习题答案

但是,在 Derived 类的构造器中,默认情况下会隐式地调用基类 Base 的构造器(如果 Base 类有无参构造器),这就是为什么输出中首先打印了 Base constructor。练习13:(2) 创建一个类,它应带有一个被重载了三次的方法。练习7:(1) 修改练习5,使A和B以带参数的构造器取代默认的构造器。即使你不为Cartoon()创建构造器,编译器也会为你合成一个默认的构造器,该构造器将调用基类的构造器。练习12:(3) 将一个适当的dispose()方法的层次结构添加到练习9的所有类中。

weixin_53759045的博客 534

尚学堂(java)1到13章所有练习题答案详解

文章目录尚学堂1到13章所有练习题答案详解B站网课链接第一章一、选择题三、上机操作第二章第三章第四章一、选择题二、简答题三:编程题第五章一、选择题第六章第七章一、 选择题二、 简答题第八章第九章第十章第十一章第十二章第十三章 尚学堂1到13章所有练习题答案详解 B站网课链接 配合网课食用学习效果更佳bilibili JAVA300集 尚学堂文档 第一章 一、选择题 以下( C )不是Java...

Guo_ping'blog 6076

Java编程思想第7章习题答案(2)

14、 //Override 重写 @Override必须重写,否则会报错。 Overload重载 14、 package ch7; class Engine{ public void start() {} public void rev() { } public void stop() { } } class Wheel{ public void inflate(int psi) { } } class Window { public void rollup() { } p

returnadsss的博客 366

【simulink模型】独立悬架振动模型,七自由度整车simulink模型

车辆悬架系统的设计对提升车辆行驶平顺性和操纵稳定性具有重要意义。本文构建了独立悬架的振动仿真模型以及七自由度整车动力学模型,基于 Simulink 平台实现对模型的动态响应仿真。通过对比不同工况下的车辆振动响应,验证了模型的准确性与实用性。研究结果为车辆悬架系统的优化设计提供了有力支持。

2401_84610415的博客 1582

无人驾驶小车调试笔记(六)-- 车轮校准

简介:小车的动力完全来自于两个电机带动的车轮,在理想状态下,给两个电机同样的驱动参数,两个车轮会以同样的转速带动小车直线行驶,而实际情况是每个电机可能都会有个体差异,也就是说给予同样的驱动参数,表现出的转动速度会有些许不同,两个轮子的差速会导致车辆拐弯,后果就是给了直线行驶的控制命令,但是车走着走着就偏离了原本的方向,所以在开始控制之前,我们需要先平衡两个车轮的转速,保证在同样驱动参数下,两个车轮转速大致相同,也就是可以走直线。 车轮校准分为3步,测试、调整后再测试、保存参...

aibingjin的博客 1820

Java编程思想第四版第七章习题*个人练习

练习1:(2)创建一个简单的类。第二个类中,将一个引用定义为第一个类的对象。运用惰性初始化来实例化 这个对象。 public class Ja7_1{ First f; First getFirst(){ if(f==null){ System.out.println("A Index Was Created");

chiyancu9963的博客 375

基于云盾构建等保三级Web安全体系:从合规要求到实战落地

网络安全等级保护(等保)是保障信息系统安全的重要制度,其核心原理是通过分级防护、动态调整的策略,构建纵深防御体系。在技术层面,等保要求覆盖物理环境、通信网络、区域边界、计算环境和安全管理中心等多个层面,旨在通过技术和管理相结合的方式,有效应对网络攻击和数据泄露风险。对于Web应用而言,满足等保三级要求具有极高的技术价值,它不仅是合规的刚性需求,更是提升业务系统整体安全水位、建立用户信任、保障业务连续性的关键工程实践。在云计算时代,利用云原生安全服务(如Web应用防火墙WAF、云安全中心、态势感知等)可以高效

weixin_29324877的博客 307

Java编程思想第四版第七章学习(2)

1、保证正确清理 (1)垃圾回收器不知道何时会被调用,也不知道是否将被调用。因此如果要某个类清理一些东西,就必须显示地编写一个特殊方法来做这个事情。需要注意的是,在清理方法中,必须注意对基类清理方法和成员对象清理方法的调用顺序,以防某个子对象依赖于另一个子对象情形的发生。一般而言,首先执行类的所有特定的清理动作,其顺序同生产顺序相反(通常这就要求基类元素仍旧存活);然后,调用基类的清理方法

Muc_hui的博客 732

五、2K0300 久久派开发板的GPIO控制与Shell脚本自动化实战

本文详细介绍了基于龙芯2K0300处理器的久久派开发板的GPIO控制方法,通过sysfs文件系统实现LED控制和传感器读取。重点讲解了Shell脚本自动化实战,包括LED闪烁、流水灯效果和传感器数据采集,为物联网项目开发提供完整解决方案。

silver的专栏 687

PCL 动态半径滤波【2025最新版】

使用PCL实现的2022年最新SCI论文——【Design of Dust-Filtering Algorithms for LiDAR Sensors Using Intensity and Range Information in Off-Road Vehicles】 一文中提出用于自动驾驶点云剔除粉尘、雨雪等影响因素导致的噪声点滤波算法。

点云侠的博客 1472

java编程思想练习题-第7章练习1-惰性初始化

题目:创建一个简单的类。在第二个类中,将一个引用定义为第一个类的对象,运用惰性初始化来实例化这个对象。 分析:惰性初始化其实在说一个很简单的事情。就是先定义引用,在使用引用的对象的时候再进行初始化。   so public class apple { public void eat(){ System.out.println("I eat a apple"); } }   p...

bongduangbong的博客 420

基于STC8G1K08A单片机的EC11旋转编码器控制(江科大同款,代码可直接使用)

本文介绍了STC8G系列单片机与EC11旋转编码器的接口实现方案。硬件方面详细说明了EC11编码器的机械结构、电气特性及与单片机的典型连接电路,包括上拉电阻和消抖设计。软件部分重点阐述了状态检测算法,通过状态机和查找表实现方向判断,采用中断方式检测信号变化,并配合定时器进行软件消抖处理。文章还提供了完整的代码实现,包括GPIO初始化、中断服务函数、状态转换逻辑等关键模块,展示了如何通过串口输出验证旋转计数。最后讨论了抗抖动优化、高低速应用场景等实际问题解决方案。该方案在菜单导航、参数调节等场景中具有实用价值

weixin_74013772的博客 322

《Java编程思想》第7章练习题

练习1:创建一个简单的类。在第二个类中,将一个引用定义为第一个类的对象。运用惰性初始化来实例化这个对象。 package ch7; import static net.mindview.util.Print.*; class Simple{ String s; public Simple(String si){ s = si;} public String toString(){ ret...

lanzijingshizi的博客 1571

密码学系列3-Elgamal加密及其IND-CPA安全性证明

但这没有任何影响,敌手本身就只能知道公钥,他并没有能力知道挑战者是否知道对应的私钥。所以上述整个游戏就是一个模拟实验,敌手无法区分挑战者运行的是这个模拟实验,还是真正的按照第一节的算法构造的实验(挑战者知道私钥…为什么合起来的时候有1/2:因为T既可能是随机的也可能是g^{ab},这两种情况概率为1/2。能够攻破Elgamal加密方案,那么挑战者利用敌手的能力构建下面游戏,来求解困难性问题DDH。就是挑战者选的随机数,虽然挑战者自己也不知道。),否则挑战者输出0,作为DDH的回答。

qq_41359358的博客 1249

机器学习项目实战案例数据集

本专栏整理了《机器学习项目实战案例》,内包含了各种不同的机器学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。

优快云 精品推荐 3636

java语言程序设计基础篇第七章编程练习题

1 import java.util.Scanner; public class Main{ public static void main(String[] args){ int maxScore = 0; Scanner input = new Scanner(System.in); int numStudent = input.nextInt(); int[] stude

梦幻的蔷薇色 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java编程思想笔记目录

祝各位 程序???? 节日快乐???? ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020102311591445.gif#pic_center) 写在前面:   前阵子,小名“偷偷地”发了一批文章,是小名的一些读书笔记✍,那么为什么要把笔记发出来呢,嘻嘻,当然是小名的????不太灵光啦????但是吧,小名坐地铁或者走在大街上的时候,脑袋里总是会想一些有的没的,不排除会想一些Java基础的知识,时常联系不起来,就有可能别扭一整天。所以呢,把它发出来一方面是为了和大

小名同学 23万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java编程思想---第七章(复用类)

1、复用类,(又名,继承) 伴随的关键字有,重写。7.1、组合语法。解释:就是将对象已用置于新类中的构造器即可。成员变量在初始化的时候进行默认赋值。也可以强制赋值。7.2、继承语法。创建一个普通类,在类主体的左花括号之前,书写extends关键字,跟随父类名字。这样会得到父类中所有的域(成员变量,常量)和方法如下:继承,是隐世定义,相比较组合这样显示定义。主要是对父类的复用。若感觉父类的方法不适合...

skycanf的博客 306

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java-Java编程思想第四版 第七章 练习

练习1:(2)创建一个简单的类。第二个类中,将一个引用定义为第一个类的对象。运用惰性初始化来实例化 这个对象。 public class Ja7_1{ First f; First getFirst(){ if(f==null){ System.out.println("A Index Was Created");

VimGuy的博客 654

java第七章练习题(多态)

第七章练习题(多态)       1.下列自‘关多态的叙述正确的是哪项?(选两项)     A.父类的引用指向子类的实例是一种多态     B. 子类的引用指向子类的实例是一种多态     c.接口的引用指向实现该接口类的实例是一种多态     D.抽象类的引用指向抽象类的实例是一种多态         2.Java中方法绑定有哪些形式?(选两项)     A.编译时刻绑定  ...

毕富国的博客 4693

OOP丨《Java编程思想》阅读笔记Chapter 7 : 复用类

Thinking In Java Chapter 7 read note

TheSumSt的经验站 769

第七章练习题part2

构造器、方法调用、属性、匿名对象

wjkqq0921的博客 382

第七个猴子java_黑猴子的家:Java SE 练习题第七章

尾部都有答案第七章练习题(多态)(1)下列自‘关多态的叙述正确的是哪项?(选两项)A. 父类的引用指向子类的实例是一种多态B. 子类的引用指向子类的实例是一种多态C. 接口的引用指向实现该接口类的实例是一种多态D. 抽象类的引用指向抽象类的实例是一种多态(2)Java中方法绑定有哪些形式?(选两项)A. 编译时刻绑定B. 运行时刻绑定C. 静态绑定D. 私有绑定(3)表达式"hello" inst...

weixin_28899845的博客 347

java编程思想

java编程思想

xzy的博客 3045

疯狂java讲义第七章课后习题答案

本章练习 1.定义一个长度为10的整数数组,可用于保存用户通过控制台输入的10个整数。并算它们的平均值、最大值、最小值。 2.将字符串"ABCDEFG”中的"CD”截取出来;再将"B"、"F"截取出来。 3.将A1B2C3D4E5F6G7H8拆分开来,并分别存入int[]和String[]数组。得到的结果为[1,2,3,4,5,6,78]和[AB,C,D,E,F,G,H]。 4.改写第4章练习中的五子棋游戏,通过正则表达式保证用户输入必须合法。 5.改写第4章练习中的五子棋游戏,为该程序增加国际化功能。

yaoguaiba579567的博客 2266
上一篇: JAVA编程思想第六章练习题
下一篇: JAVA编程思想第八章练习题
士千i
博客等级 码龄16年 9粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值