我有一个基本的继承情况与超类中的重载方法.
public class Person {
private String name;
private int dob;
private String gender;
public Person(String theName, int birth, String sex){
name = theName;
dob = birth;
gender = sex;
}
public void work(){
getWorkDetail(this);
}
public void getWorkDetail(Employee e){
System.out.println("This person is an Employee");
}
public void getWorkDetail(Person p){
System.out.println("This person is not an Employee");
}
}
Run Code Online (Sandbox Code Playgroud)
以下Employee类扩展了Person上面的类:
public class Employee extends Person {
String department;
double salary;
public Employee(String theName, int birth, String sex){ …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 python 和 mido 库向我的计算机内部扬声器输出注释。我有一台 Mac,我了解到默认情况下您需要通过 IAC 驱动程序才能将任何声音输出到扬声器。我启用 IAC 驱动程序并使用以下命令搜索正确的输出:
>>> mido.get_output_names()
['IAC Driver Bus 1']
Run Code Online (Sandbox Code Playgroud)
从那里我创建了简单的脚本:
进口美度
def main():
outport = mido.open_output('IAC Driver Bus 1')
outport.send(mido.Message('note_on', note=60, velocity = 100))
main()
Run Code Online (Sandbox Code Playgroud)
note=60 应该输出中音 C,力度是音量。
然而根本没有发出任何声音。我假设端口必须被识别,因为我没有收到错误,但同样没有声音输出。有人知道发生了什么事吗?
我试图比较在Java和C++中实现BST的方式.在Java中,Node看起来像
class Node{
int data;
Node left;
Node right;
}
Run Code Online (Sandbox Code Playgroud)
在C++中它将是:
class Node{
int data;
Node *left;
Node *right;
}
Run Code Online (Sandbox Code Playgroud)
我很困惑java方法的工作原理.据我所知,在C++中,左右两边都是指向包含下一个Node的内存区域的指针.在Java中,我并没有真正了解所有内容最终是如何连接的.左边和右边是节点本身,而不是指向节点的指针,因此Java中的每个Node对象占用3个节点的空间(一个用于自身,另一个用于子节点)?如果有人能够解释所有节点的连接方式以及内存分配的差异,那么这将是非常有用的.
另外,在C++中可以做同样的事情吗?你能不能让Node离开Node而不是指针?如果是这样,首先使用指针有什么好处?谢谢!