java中这种定义为什么非法,求解

问题描述

java中这种定义为什么非法,求解

解决方案

可以啊,但是不能这样连着写,类中定义的变量是成员变量,成员变量的赋值只能在代码块或者构造函数中。
改成如下这样就可以了:

class A {
    int i, j;

    {
        i = j = 10;
    }

    public static void main(String[] args) {
        A a = new A();
        System.out.println(a.i);
        System.out.println(a.j);
    }
}

这样就能测试i,j都被初始化为10了。

解决方案二:

定义是对的,赋值是错的。java不允许i=j=10; c语言可以。

解决方案三:

你得照java规则定义呀!每个语言都有它自己的规定!

解决方案四:

{
i = j = 10;
}

解决方案五:

类体是用来声明(可以一并初始化)成员变量的。
i 和 j 已经在前面定义过,i=j=10不是声明动作,
是单纯赋值动作,只能在方法体或代码块中进行。

类体里声明并初始化是没问题的,如下:
int j;
int i=j=0;

类的代码结构如下:
class 类名 {
类体
{
代码块
}
类体
方法名() {
方法体
}
类体
}

时间: 2024-10-03 23:57:21

java中这种定义为什么非法,求解的相关文章

java中有关定义常量int初始值时,怎样将出是最定义为最大

问题描述 java中有关定义常量int初始值时,怎样将出是最定义为最大 例如:int i=?;?处定义为最大值 解决方案 int i=Integer.MAX_VALUE; int a=Integer.MIN_VALUE; double b= Double.MAX_VALUE; double c= Double.MIN_VALUE; float d= Float.MAX_VALUE; float e=Float.MIN_VALUE;每个基础类型都有对应的类,有用请采纳 解决方案二: java中定义

java中方法定义的时候是不允许嵌套一个方法吗

问题描述 java中方法定义的时候是不允许嵌套一个方法吗 java中方法定义的时候是不允许嵌套一个方法吗内部类分为静态和非静态的吗 解决方案 是不允许的,已经明白了 解决方案二: java方法重写的时候,一个调用父类还是子类方法的问题 解决方案三: 静态内部类和非静态内部类的区别 解决方案四: 当然不允许了.....

跪求大神-java中static定义变量

问题描述 java中static定义变量 运行结果为什么是0不是1? 解决方案 因为你定义了参数x 根据就近原则,你的x++访问的是这个参数x变量,而不是成员变量x 解决方案二: 因为你的参数名也叫x,x++ 这里是将参数x自增,不是全局变量x. 所以全局变量x里面的值还是0. 解决方案三: class Test { public static int x = 9; public static void name(int x) { x ++; System.out.println(x); //为

java中局部变量定义申明的位置的问题

问题描述 ...if(xxx){return1;}Connectionconn=null;...与...Connectionconn=null;...if(xxx){return1;}...前者是不是,有可能不会执行Connectionconn=null;这句.java中对源码中的不同位置的局部变量申时定义是怎么处理的? 解决方案 解决方案二:随时要用随时定义解决方案三:貌似都会执行,还是楼上说的随时用随时定义!!解决方案四:引用楼主lovedoghero的帖子: ...if(xxx){retu

Java中接口定义成员变量

在interface里面的变量都是public static final的.可以这样写:public static final int i=10或者int i=10. public interface MyInterface {  // 默认为public static int a = 10;  int a = 10; } public class MyTest {  public static void main(String[] args)  {   int a = MyInterface.

全面解读Java中的枚举类型enum的使用_java

关于枚举大多数地方写的枚举都是给一个枚举然后例子就开始switch,可是我想说,我代码里头来源的数据不太可能就是枚举,通常是字符串或数字,比如一个SQL我解析后首先判定SQL类型,通过截取SQL的token,截取出来可能是SELECT.DELETE.UPDATE.INSERT.ALTER等等,但是都是字符串,此时我想用枚举就不行了,我要将字符串转换成枚举怎么转呢,类似的情况还有从数据库取出数据根据一些类型做判定,从页面传入数据,根据不同的类型做不同的操作,但是都是字符串,不是枚举,悲剧的是我很少

java-JAVA中数组定义new分配内存空间的问题

问题描述 JAVA中数组定义new分配内存空间的问题 JAVA中在定义一个数组的时候,根据书上内容形式,举一个例子 int[] arr=new int[]{3,4,5,}; 但是在实际中,我见到过或者使用更多的是 int[] arr={3,4,5}; 这个时候要不要new去分配内存又有什么区别呢? 在JAVA中 是不是没有new 分配的时候 数组arr在内存栈中 new分配内存空间时 数组arr就到了堆内存中呢 解决方案 现在也不是很理解,找了一个大神告诉我说 第二种是静态初始化,在编译的时候就

详解Java中格式化日期的DateFormat与SimpleDateFormat类_java

DateFormat 1. DateFormat 介绍DateFormat 的作用是 格式化并解析"日期/时间".实际上,它是Date的格式化工具,它能帮助我们格式化Date,进而将Date转换成我们想要的String字符串供我们使用 不过DateFormat的格式化Date的功能有限,没有SimpleDateFormat强大:但DateFormat是SimpleDateFormat的父类.所以,我们先对DateFormat有个整体了解,然后再学习SimpleDateFormat. D

jtable-java中JTable的问题,求解,大神在哪里

问题描述 java中JTable的问题,求解,大神在哪里 import java.sql.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class a1