小编sta*_*lus的帖子

程序中的空指针异常

下面的代码没有编译失败但是在运行时它在第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)

java nullpointerexception

0
推荐指数
1
解决办法
440
查看次数

为什么我的基类指针变量不能从派生类访问函数?

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()是一个错误

谢谢!

c++ inheritance

0
推荐指数
1
解决办法
119
查看次数

与size_t的奇怪循环

我没有进入循环使用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)

c++ for-loop size-t type-promotion

0
推荐指数
1
解决办法
90
查看次数

如何在循环中检查bool是否为false

我正在尝试遍历一组类.该类有两个变量:变换和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)

c# loops for-loop class unity-game-engine

0
推荐指数
1
解决办法
820
查看次数

为什么可以在自己的类的main方法中创建对象?

正如我们所知,除非类的定义完整,否则我们无法创建任何类的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

-2
推荐指数
1
解决办法
7110
查看次数

为什么要调用超级构造函数?为什么我在打印到屏幕时出错?

我正在学习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:错误:非法字符:\ …

java inheritance constructor

-4
推荐指数
1
解决办法
186
查看次数