基类:
public class Inheritance {
int i;
Inheritance() {
System.out.println("I am in base class" + i);
}
}
Run Code Online (Sandbox Code Playgroud)
派生类:
public class TestInheritance extends Inheritance {
TestInheritance() {
System.out.println("I am in derived class");
}
public static void main(String[] args) {
TestInheritance obj = new TestInheritance();
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我对上面发生的事情的想法.
当我默认创建派生类的对象时,super()调用基类的构造函数并初始化变量i.
现在,我的问题是:在这种情况下,构造函数是否只初始化变量i而不创建类的具体对象?
从我到目前为止所读到的,只有一个对象被创建 - 派生类中有i变量.
但是从调用基类的构造函数和调用派生类的构造函数的时间点开始如何/在哪里i存储?
基类是抽象类的情况会怎样.
如果我能知道在不同时间点内存中会发生什么,我真的很感激.
如果我说了一些根本不正确的话,请告诉我.我真的想知道这件事是如何运作的.
我正在编写一个带浮动的示例程序,但突然发生了一些奇怪的事情.我真的很感激,如果有人能够阐明我为什么要从我的计划中面对这样的行为.
package Programs;
public class FloatTest {
/**
* @param args
*/
public static void main(String[] args) {
float f1 = (float) 3.2;
float f2 = (float) 6.5;
if (f1 == 3.2) {
System.out.println(f1 + " same");
} else {
System.out.println(f1 + " different");
}
if (f2 == 6.5) {
System.out.println(f2 + " same");
} else {
System.out.println(f2 + " different");
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
3.2 different
6.5 same
Run Code Online (Sandbox Code Playgroud)
在做了一些改变f2值的测试后,我注意到f2> 3.5得到意想不到的结果为什么会这样?任何输入都非常感谢.
谢谢
在这里开始CS学生,试图掌握循环.我的任务是获取一个String,如果s = 'abcd',程序将打印:'a,b,c,d,ab,bc,cd,abc,bcd,abcd'.显然,begin索引和end索引随循环迭代而变化(0,1),(1,2),(2,3),(3,4).那很好,我可以打印:'a,b,c,d'.但我怎么控制它,这样它将从去(0,2),(1,3),(2,4),然后(0,3),(1,4),,最后(0,4)?这是我难倒的地方.感谢您的帮助,这是我的代码:
void printSubstring()
{
int len = s.length();
for (int i=0;i<len;i++)
{
for (int k=0;k<len;k++)
System.out.print(s.substring(k,k+1)+", ");
}
System.out.println();
}
Run Code Online (Sandbox Code Playgroud)