下面的代码没有编译失败但是在运行时它在第20行和第41行的行处显示了java.lang.NullPointerException.此外,我有点好奇知道什么是空指针异常,在运行时会发生什么?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Tool
{
private JToolBar toolbar1;
private JToolBar toolbar2;
private JPanel panel;
public Tool()
{
JFrame frame= new JFrame();
panel = new JPanel();
panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
JButton one = new JButton("one");
JButton two = new JButton("two");
JButton three = new JButton("three");
JButton four = new JButton("four");
toolbar1 = new JToolBar();
toolbar2 = new JToolBar();
toolbar1.add(one);
toolbar1.add(two);
toolbar2.add(three);
toolbar2.add(four);
toolbar1.setAlignmentX(0);
toolbar2.setAlignmentX(0);
panel.add(toolbar1);
panel.add(toolbar2);
frame.add(panel,BorderLayout.NORTH);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.setSize(400,300);
frame.setTitle("ZOOP");
frame.setVisible(true);
}
public static void main (String …Run Code Online (Sandbox Code Playgroud) class Polygon {
protected:
int width, height;
public:
void set_values (int a, int b)
{ width=a; height=b; }
};
class Rectangle: public Polygon {
public:
int area()
{ return width*height; }
};
int main () {
Rectangle rect;
Polygon * ppoly1 = ▭
ppoly1->set_values (4,5);
cout << rect.area() << '\n';
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,ppoly1指向什么以及该指针如何无法访问矩形类的函数?
为什么ppoly1-> area()是一个错误
谢谢!
我没有进入循环使用size_t.为什么?如果我使用int我进入循环,输出是:11, 11
int main()
{
int j = 11;
for (size_t i = 11; i > - 1; --j, i -=12)
{
std::cout << i << ", " << j << std::endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试遍历一组类.该类有两个变量:变换和bool.
我想在另一个脚本中循环查看当前位置是否被占用,如果是,则bool占用将被设置为true.
我该怎么做呢?
public Positions[] PosInObect = new Positions[1];
[System.Serializable]
public class Positions
{
public Transform pos;
public bool isFilled;
}
for (int i = 0; i < TheObject.GetComponent<GetInObject>().PosInObect.Length; i++)
{
}
Run Code Online (Sandbox Code Playgroud) 正如我们所知,除非类的定义完整,否则我们无法创建任何类的obj.那么我们如何才能在自己的类的main方法中创建obj?
class Test
{
public static void main(String args[])
{
Test test=new Test(); //yet class definition of Test class is not completed still it is permitted! why?
}
}
Run Code Online (Sandbox Code Playgroud) 我正在学习java编程.我尝试运行以下程序时收到编译错误.
public class Animal {
public Animal() {
System.out.println(“Making an Animal”);
}
}
public class Hippo extends Animal {
public Hippo() {
System.out.println(“Making a Hippo”);
}
}
public class TestHippo {
public static void main (String[] args) {
System.out.println(“Starting...”);
Hippo h = new Hippo();
}
}
Run Code Online (Sandbox Code Playgroud)
根据我的理解,如果这个程序运行没有错误,它将打印
开始...
制作河马
但在"Head First Java"一书中,他们提到了该程序的输出
开始...
制作动物
制作河马
这个输出怎么可能?我没有调用超类构造函数,但是如何在这里打印"制作动物".
任何人都可以解释这背后的逻辑吗?
如果我们调用子类构造函数,它的超类constrtuctor是否也被执行?
还有为什么我得到编译错误,我使用在线IDE来测试基本的java程序.
错误详情
编译错误注释(0)stdin copy标准输入为空编译信息Main.java:3:错误:非法字符:\ 8220 System.out.println(?制作动物?); ^ Main.java:3:错误:';' 期望System.out.println(?制作动物?); ^ Main.java:3:错误:非法字符:\ 8221 System.out.println(?制作动物?); ^ Main.java:8:错误:非法字符:\ 8220 System.out.println(?制作河马?); ^ Main.java:8:错误:';' 期待System.out.println(?制作河马?); ^ Main.java:8:错误:非法字符:\ …