这样写为什么不对

Narcist 2008-01-14 05:50:35
Class A
{
}
Class B
{

A a1=new A();

A a2;
a2=new A();

public static void main(String[] args)
{

}
}
为什么
A a2;
a2=new A();
会不对?
它和
A a1=new A();
有什么区别吗?
...全文
94 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
光辉岁月 2008-01-14
  • 打赏
  • 举报
回复
怎么回复了没反应啊,没显示出啦:
??
来解释下,混饭吃的!讲得能理解就散点分:

Class A
{
}
Class B
{

A a1=new A(); //这里定义一个成员他的访问属性是默认(可以是public,private吧?),并且初始化它

A a2; //这里定义一个成员他的访问属性是默认(可以是public,private吧?)
a2=new A();//非法,不认识的代码,

public static void main(String[] args)//定义类的方法吧?
{

}
}
好到这里我要说下类的定义规则了,就是java的语法啦:
首先说明类名,在定义他有那些属性(也就是成员变量啦),在就是定义类的方法(也就是类的成员函数啦),基本的就怎么多吧,
好在回来看看你这里:
A a2; //这里定义一个成员他的访问属性是默认(可以是public,private吧?)
a2=new A();//非法,不认识的代码,(你这里是定义什么呢,还是想怎么样啊?)
在来看你写对了的:
A a1=new A(); //这里定义一个成员他的访问属性是默认(可以是public,private吧?),这里只不过是你把类的成员变量出示化了(好java比c++特殊了,java中说明了可以这样给类的成员初始化)

在说说吧:
其实A a1=new A()这样的写法我们是很少写的,我们更喜欢吧类自己的成员初始化放到他的构造函数里去哦。
光辉岁月 2008-01-14
  • 打赏
  • 举报
回复
来解释下,混饭吃的!讲得能理解就散点分:

Class A
{
}
Class B
{

A a1=new A(); //这里定义一个成员他的访问属性是默认(可以是public,private吧?),并且初始化它

A a2; //这里定义一个成员他的访问属性是默认(可以是public,private吧?)
a2=new A();//非法,不认识的代码,

public static void main(String[] args)//定义类的方法吧?
{

}
}
好到这里我要说下类的定义规则了,就是java的语法啦:
首先说明类名,在定义他有那些属性(也就是成员变量啦),在就是定义类的方法(也就是类的成员函数啦),基本的就怎么多吧,
好在回来看看你这里:
A a2; //这里定义一个成员他的访问属性是默认(可以是public,private吧?)
a2=new A();//非法,不认识的代码,(你这里是定义什么呢,还是想怎么样啊?)
在来看你写对了的:
A a1=new A(); //这里定义一个成员他的访问属性是默认(可以是public,private吧?),这里只不过是你把类的成员变量出示化了(好java比c++特殊了,java中说明了可以这样给类的成员初始化)

在说说吧:
其实A a1=new A()这样的写法我们是很少写的,我们更喜欢吧类自己的成员初始化放到他的构造函数里去哦。

光辉岁月 2008-01-14
  • 打赏
  • 举报
回复
来解释下,混饭吃的!讲得能理解就散点分:

Class A
{
}
Class B
{

A a1=new A(); //这里定义一个成员他的访问属性是默认(可以是public,private吧?),并且初始化它

A a2; //这里定义一个成员他的访问属性是默认(可以是public,private吧?)
a2=new A();//非法,不认识的代码,

public static void main(String[] args)//定义类的方法吧?
{

}
}
好到这里我要说下类的定义规则了,就是java的语法啦:
首先说明类名,在定义他有那些属性(也就是成员变量啦),在就是定义类的方法(也就是类的成员函数啦),基本的就怎么多吧,
好在回来看看你这里:
A a2; //这里定义一个成员他的访问属性是默认(可以是public,private吧?)
a2=new A();//非法,不认识的代码,(你这里是定义什么呢,还是想怎么样啊?)
在来看你写对了的:
A a1=new A(); //这里定义一个成员他的访问属性是默认(可以是public,private吧?),这里只不过是你把类的成员变量出示化了(好java比c++特殊了,java中说明了可以这样给类的成员初始化)

在说说吧:
其实A a1=new A()这样的写法我们是很少写的,我们更喜欢吧类自己的成员初始化放到他的构造函数里去哦。

捏造的信仰 2008-01-14
  • 打赏
  • 举报
回复
a2=new A();
这句话你写到外面去了,执行不了的。
songduanlei 2008-01-14
  • 打赏
  • 举报
回复
好好看看语法书。
lihaifeng0412 2008-01-14
  • 打赏
  • 举报
回复
没见过,楼上说的都不错,学习
cangyue87 2008-01-14
  • 打赏
  • 举报
回复
在类里面除了方法和属性的声明就是代码块.
要么是声明的同时赋值,如同: "A a1 = new A();"
要么是只声明不赋值,如同: "A a2;" 那么这个属性取默认值.
要么是一段代码块,如同:
{
a2 = new A();
}

而 "a2 = new A();" 不是方法,不是属性的声明,不是代码块...

当然就报错了...
老紫竹 2008-01-14
  • 打赏
  • 举报
回复
a2=new   A(); 

在类一级没有这样的语法,如果你想初始化,需要采用
A   a2; 
{
a2=new A();
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧