java-为什么这个会出现main不能声明为static呢?

问题描述

为什么这个会出现main不能声明为static呢?
package creat_class;

public class main_class
{
class box
{
double length;
double width;
double height;
void volume(){
System.out.print(""volume is "");
System.out.println(length*width*height);
}
}

class boxdome{    public static void main(String arg[])    /*The method main cannot be declared static; static methods can only be declared in a static or top level type*/    {    box mybox = new box();    mybox.length = 9;    mybox.width = 10;    mybox.height = 8;    mybox.volume();    }}

}

解决方案

这个是java的基本语法,static的用法,只能在静态类型和顶层类型中定义静态方法。
你的boxdome类是定义在main_class中的内部类型,所以不能定义static方法。
另外:java类的定义都是遵循首字母大写的约定和规范的。

解决方案二:
普通内部类中不能定义static方法,你把boxdome内部类定义为静态内部类应该就可以了。

解决方案三:
求体积的那个方法应该声明为static的,这样才符合Java的方法规范。希望对你有用!

解决方案四:
这个是java的基本语法,static的用法,只能在静态类型和顶层类型中定义静态方法。
你的boxdome类是定义在main_class中的内部类型,所以不能定义static方法。

时间: 2025-01-19 20:02:16

java-为什么这个会出现main不能声明为static呢?的相关文章

java类的问题-Java类的实例化,对象的声明,使用

问题描述 Java类的实例化,对象的声明,使用 有没有哪位大神帮忙解释一下图中的代码,本人是新手,希望各位前辈指教 解决方案 创建一个person类 类里面两个变量一个方法 方法体的内容是打印这个类里面变量的值 然后书上写错了 应该是person 不是person2 解决方案二: 书上说的很清楚了. 比如 int i = 1; 这个你懂么? i是一个int型的变量,初始化值指向一个整数1. 那么 helloworld c = new helloworld(); c是一个helloworld型的变

为什么java中的类里面还能声明一个静态的自己

问题描述 为什么java中的类里面还能声明一个静态的自己 如题,感觉这种情况好诡异,能不能解释一下下面这段代码的流程呢?代码如下 public class CameraInterface { private static final String TAG = "yanzi"; private Camera mCamera; private Camera.Parameters mParams; private boolean isPreviewing = false; private f

java的接口可以直接拿来声明变量?

问题描述 java的接口可以直接拿来声明变量? public interface IUserManage { public void addUser(User user); public void modifyUser(User user); public void deleteUser(User user); } 现在有这么个接口,然后在另一个没有实现此接口的类里看到如下这句: private IUserManage userManage: 在这个类里,直接声明了userManage,并且us

java 中list集合中对象的声明周期

问题描述 java 中list集合中对象的声明周期 list集合中存放是是堆中的对象,但如果堆中的对象被回收后就变成了空?还是只要list集合存在就不会被回收?如果会被回收的话,怎样保证集合内的数据在list存在时长期有效??求大牛帮助

java eclipse 把主类名Main改为MainCloudsim出现的问题

问题描述 java 点"run as"出现下面的窗口,之前有把类名Main改为类名MainCloudsim,怎么处理?虽然不影响运行,但挺烦的. 解决方案 楼主,你好,有两种方式,可以解决1.第一种,就是,将其中一个mian方法注释掉.2.第二种,才你需要的类里面执行"run as"操作,这样Eclipse就只会搜素当前类,是否有入口函数执行.

详细讲解Java中的main()方法_java

前言 JAVA中的主函数是我们再熟悉不过的了,相信每个学习过JAVA语言的人都能够熟练地写出这个程序的入口函数,但对于主函数为什么这么写,其中的每个关键字分别是什么意思,可能就不是所有人都能轻松地答出来的了.我也是在学习中碰到了这个问题,通过在网上搜索资料,并加上自己的实践终于有了一点心得,不敢保留,写出来与大家分享. Java中的main()方法 java虚拟机通过main方法找到需要启动的运行程序,并且检查main函数所在类是否被java虚拟机装载.如果没有装载,那么就装载该类,并且装载所有

《Java 7程序设计入门经典》一1.7 第一个简单的程序

1.7 第一个简单的程序 编译和运行一个简短的示例程序是开始介绍Java的诸多关键元素的最佳方法.我们将使用以下代码: 下面将运行以下三步: 1)输入程序: 2)编译程序: 3)运行程序. 1.7.1 输入程序 创建一个程序的第一步就是将源代码输入到计算机中.正如前面所介绍的那样,程序的源代码是程序可由人类阅读的形式.必须使用文本编辑器,而不是字处理软件将源代码输入到计算机中.字处理软件一般不仅存储文本信息,还存储格式信息.格式信息会使Java编译器困惑.源代码必须只包含文本.如果使用IDE,则

java算法-关于Java的走迷宫问题

问题描述 关于Java的走迷宫问题 题目是这样的: 用户输入一个值,生成一个n*n的矩阵,然后每个符号之间用空格隔开,要求从A到B,如果当前位置的坐标是"+"那么下一个坐标则必须为"-",找出最短的路径的步数 我的代码是把所有的情况写出来,但是出错了,请各位大神看看哪里有问题 import java.util.ArrayList; import java.util.Scanner; public class Main { //矩阵的大小 static int n;

Java transient关键字使用小结

1.transient关键字只能修饰变量,而不能修饰方法和类.注意,本地变量是不能被transient关键字修饰的.2.被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化.3.一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问.也可以认为在将持久化的对象反序列化后,被transient修饰的变量将按照普通类成员变量一样被初始化. 如下面的例子 package com.kkoolerter