我写了个java程序,但是报main函数空指针错误,求大神详解。

/*
* 作者:邵春雷
* 功能:理解构造方法
* 日期:2014.8.17
*/
package zte.day06;
public class Structure {
/**
* @param args
*/
public static void main(String[] args) {
Dog dog1=new Dog(10,"Spider");
Person p1=new Person(dog1,18,"shaochunlei");
p1.show_Info();
//Person p2=new Person(dog1,20, "hanshunping");
p1.dog.show_Dog_Name();

}
}
//定义一个人类
class Person
{
//定义人类的成员变量
int age;
String name;
Dog dog;//引用类型
//每个人一只狗
//构造方法,是不能返回任何值得
public Person(Dog dog,int age,String name)
{
this.age=age;
this.name=name;
}
//写一个方法,显示人的属性
public void show_Info(){
System.out.println("The person's name is "+this.name);
}
}
//定义一个狗类
class Dog
{
//定义狗的成员变量
int age;
String name;
//构造函数
public Dog(int age,String name)
{
this.age=age;
this.name=name;
}
//定义一个方法显示狗的名字
public void show_Dog_Name(){
System.out.println("The dog's name is "+this.name);
}
}

第1个回答  2014-08-17
你没有赋值
//构造函数
public Person(Dog dog,int age,String name)
{
this.age=age;
this.name=name;
增加一下代码
this.dog=dog;

}

所以你调用
p1.dog.show_Dog_Name();

p1.dog还是null本回答被提问者采纳
相似回答