JAVA的一道小选择题....跪求解答

来源:百度知道 编辑:UC知道 时间:2024/06/26 04:58:47
设A为已定义的类名,下列声明A类的对象a的语句中正确的是
A.float A a
B.public A a=A();
C.A a=new int();
D.static A a=new A();

我觉得哪个都不对啊 AB没有new,C那儿是int();而不是构造方法
D前面加了个static而构造方法前面不能用static修饰所以我觉得哪个都不对啊
跪求解答~
对象也分静态非静态的?

o(╯□╰)o
static 修饰的是a这个变量

D是对的。但这种声明方式只能声明成全局变量,因为static修饰属性表示属性是类中共有的。声明成局部变量就与static矛盾,故报错。如:
public class B{
static A a = new a(); //合法的

public void Method(){
static A a = new a(); //编译错误
}

楼主不信可以自己写个类A,在写个测试类测试一下。

楼主应该见过这种声明方式:
static String s ; 这里的成员变量s不就是静态的String对象类型么
那static A a ;这样写有什么不可以呢, 只是成员变量a是A对象类型而已

明显D是对的!
A a = new A();是什么含义你知道么?

声明一个类型为A的对象,取名为a,并且实例化a这个对象。

static是静态修饰符,当然可以修饰这个a对象,表明a这个对象

是静态对象。你嗦说的,构造方法前面不能用static,唉,

class A{
public A(){

}
}

这个publci A(){}才是构造方法。。

先把构造方法的含义和申明对象、实例化对象的步骤的概念搞

清楚吧!

【构造方法前面不能用static修饰】
跟这个有什么关系?

static是修饰a的。也就是创建一个A类的static类型的变量a

类 是new对象的。是对象的模板,是批量创建对象的。

我的意见是C正确!

class A{}类体里 既可以有int,也可以由String,,,都可以。

D,是对的。static A a=new A();明显是一个类里面的一个属性,比如:static A a=null;你能理解。D选项只