【练习】Day01(未完成版)

努力经营当下,直至未来明朗!


普通小孩也要热爱生活!

一、选择

  1. 导出类/ 派生类调用基类的构造器必须用到的关键字( )
    A: this B: final C: super D: static

  2. 以下哪个接口的定义是正确的( )
    A: interface B{ void print() { } ;}
    B: interface B{ static void print() ;}
    C: abstract interface B extends A1, A2{ abstract void print(){ };} //A1、A2为已定义的接口
    D: interface B{ void print();}

  3. 关键字super的作用是( )
    A: 用来访问父类被隐藏的非私有成员变量
    B: 用来调用父类中被重写的方法
    C: 用来调用父类的构造函数
    D: 以上都是

  4. 将下列(A、B、C、D)哪个代码替换下列程序中的【代码】不会导致编译错误( )

interface Com{
int M=200;
int f();
}
class ImpCom implements Com{
//【代码】
}

A: public int f(){ return 100+M;}
B: float f(){ return 100;}
C: public double f(){ return 2.6;}
D: public abstract int f()

  1. 默认类型等价表示是哪一项( )
public interface IService {String NAME="default";}

A: public String NAME=“default”;
B: public static String NAME=“default”;
C: public static final String NAME=“default”;
D: private String NAME=“default”;


二、编程

1. 子集

LeetCode78.子集
给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。


2. 组合

LeetCode77.组合
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。


答案

1. 选择

  1. 导出类就是子类/派生类,基类就是父类/超类。
    ① 子类继承父类时,如果父类用的系统默认的构造方法(无参构造方法),则子类不需要调用super关键字(应该说系统会隐式调用父类构造方法);
    ② 如果父类用的是自己生成的构造方法(复写系统默认的构造方法),则子类需要显式的在构造方法的第一行调用父类的构造方法 super。
    子类调用父类的构造器使用super(),放在子类构造方法的首行。

故:选C

  1. 接口中方法默认被public abstract修饰抽象方法不可以有方法体{}。
    ② JDK8中,接口中的方法可以被default和static修饰,但被修饰的方法必须有方法体。
    ③ 接口的确是可以继承extends的,并且接口是可以多继承接口的。但C选项错误的原因和继承没关系。它错在抽象方法不可以有方法体。

参考接口

故:选D

  1. ① super:代表的是当前对象内部的那一块特征,其主要作用是在子类方法中访问父类成员。
    ② super代表父类对应的对象,所以用super访问在子类中无法直接使用的父类成员和方法
    ③ super不止能用来调用父类的构造函数,还能用来调用父类中那些被子类隐藏的变量和方法。所谓隐藏是指在子类中重新定义了父类的变量或方法。
    ④ 构造是不能被继承的。

故:选D

  1. 实现类必须实现接口中所有的方法
    在实现类中实现接口时,方法的名字、返回值类型、参数的个数及类型必须与接口中的完全一致,并且必须实现接口中的所有方法。
    ② 接口实现类相当于子类,子类的访问权限是不能比父类小的
    接口中所有方法默认都是public,而在实现类中,实现的类相当于子类,子类的访问权限是不能比父类小的;在java中一个类如果没有权限的修饰符,默认是default,其访问权限<public,所以在实现类中一定要写public

故:选A

  1. ① 本题主要看代码中的interface,接口中的变量默认是public static final 的,方法默认是public abstract 的
    ② NAME是String类型的变量,所以其默认的修饰符是public static final的。

故:选C


2. 编程

  1. 子集

  1. 组队
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
以下是将之前day2练习生成的音乐添加混响效果并进行实时处理和显示的代码: ```matlab clc; clear; close all; % 生成音乐 fs = 44100; t = 0:1/fs:5; f1 = 440; f2 = 880; f3 = 1320; y = sin(2*pi*f1*t) + sin(2*pi*f2*t) + sin(2*pi*f3*t); % 创建音频播放器和图形窗口 sigPlayer = audioplayer(y, fs); myFigure = figure('Name', '实时混响'); waveAxes = subplot(2, 1, 1); axis(waveAxes, [0 numel(y)/fs -3 3]); waveAxes.NextPlot = 'replacechildren'; fftAxes = subplot(2, 1, 2); axis(fftAxes, [0 fs/2 0 100]); fftAxes.NextPlot = 'replacechildren'; % 设置音频播放器的参数 windLength = fs / 10; sigPlayer.TimerPeriod = windLength / fs; sigPlayer.TimerFcn = {@realtimeReverb, waveAxes, fftAxes, y, fs}; % 添加混响效果 reverbObject = reverberator('PreDelay', 0.5, 'WetDryMix', 0.5); % 创建实时波形和频谱图对象 realtimeWavePlot = animatedline(waveAxes); realtimeFFTPlot = bar(fftAxes, [], []); % 播放音乐 play(sigPlayer); function realtimeReverb(plr, ~, axwave, axfft, sigData, fs) persistent reverbObject; persistent ind; persistent indbase; if isempty(reverbObject) reverbObject = reverberator('PreDelay', 0.5, 'WetDryMix', 0.5); end if isempty(indbase) indbase = 1:numel(sigData); end windLength = plr.TimerPeriod * fs; ind = fix((plr.CurrentSample) / windLength) * windLength + indbase; segData = sigData(ind); % 混响处理 reverbAudio = reverb(reverbObject, segData); ydata_fft = fft(reverbAudio); ydata_abs = abs(ydata_fft(1:numel(segData)/2)); % 更新实时波形和频谱图的数据 addpoints(realtimeWavePlot, (1:numel(segData))/fs, segData); set(realtimeFFTPlot, 'ydata', log(ydata_abs)); drawnow; end ``` 这段代码首先生成了一个简单的音乐信号 `y`,然后创建了一个音频播放器对象 `sigPlayer` 和一个图形窗口 `myFigure`。在图形窗口中,创建了两个子图 `waveAxes` 和 `fftAxes`,用于显示实时波形图和频谱图。 接下来,设置音频播放器的参数,包括定时器周期和定时器函数。定时器函数 `realtimeReverb` 用于实时处理音频数据并更新图形。在定时器函数中,使用 `reverberator` 函数创建了混响效果对象 `reverbObject`,并对音频数据进行混响处理。然后,通过 FFT 算法计算音频数据的频谱,并将数据更新到实时波形图和频谱图中。 最后,通过调用 `play` 函数开始播放音乐,并启动定时器以实现实时处理和显示。 请注意,在运行此代码之前,您需要确保已经安装了 Matlab,并具有 `reverberator` 函数和 Day 2 练习生成的音乐信号 `y`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

'Dream是普通小孩耶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值