java里为什么不能这样调用啊,不是都可以这样创建对象 然后调用方法吗

class Person{
void show(){
System.out.println("aaa");
}
}
class Student{
Person p=new Person();
p.show();
}
不能这样的话 那只能继承 那请问创建对象调用对象方法 到底是什么时候才可以这样用 它的用法在哪里 为什么不能这样

第1个回答  2013-08-20
少了个主方法 class Student{
public static void main(String[] args){
Person p=new Person();
p.show();}
}
Java 中程序都是从主方法开始运行,p.show()是一个语句,必须放到方法中。
第2个回答  2013-08-20
大哥,p.show();是一条语句,你在哪见过一条语句直接写到类里面的?类里面只包括成员变量和成员方法,语句是要写到方法里面的……追问

喔。 那Person p=new Person() 是啥 这个可以写在类里

追答

这个写哪儿都行,直接写到类里就是类的一个成员变量,写到方法里就是那个方法里面的一个局部变量。

追问

喔 谢谢 那如果在类里仍然可以创建对象调用方法 那我感觉继承就没必要了啊 都可以创建对象直接调用就OK了

追答

怎么就跟你说不明白呢,Person p=new Person();这条语句写到类里跟写到方法里含义是不一样的,写到类里是一种声明,就是说以后这个类的实例都包含有p这样一个Person类型的属性,写到方法里面就是单纯地创建一个对象,然后用这个对象去调用它的show方法。我之前虽然说写到哪都行只是说能通过编译并正确运行,但根据你提问的意图来说应该是要写在方法里才符合逻辑。

第二点,关于继承是干什么的你还没明白,继承的优点是可以去使用某些已有类的功能而不用自己又繁复地去实现。比如已有一个人类People,里面包含了吃饭eat、睡觉sleep等等一些方法,现在你自己想写一个明星类Star,明星除了吃饭睡觉还要演戏对不对?所以如果你的Star全都自己写的话又要去实现吃饭睡觉以及演戏,这时就体现出了继承的优点,你可以将Star继承People,那么吃饭睡觉这些方法Star就直接有了,你自己只要写演戏的方法就行了。

第3个回答  2013-08-20
这样调用没有问题呀。

是不是要继承,看需求的、看逻辑需要的。

class Person{
void show(){
System.out.println("aaa");
}
}
class Student extends Person{
}

这样就不需要写show方法了。追问

如果在类里仍然可以创建对象调用方法 那我感觉继承就没必要了啊 都可以创建对象直接调用就OK了

追答

调用 是没有问题,但要创建实例、浪费了。

继承的好处是代码复用。

追问

哦哦 谢谢 懂了

第4个回答  2013-08-20
这是继承与注入吧
这是注入的写法

class Student{
private Person p=new Person();
void show()
{
p.show();
}
}本回答被提问者采纳
相似回答