您的位置:首页 > 编程语言 > Java开发

java中内部类和异常类

2014-03-29 22:24 351 查看
这是在eclipse中创建的一个Example8_2的类,其中有些错误,我想在这里注明一下。只是想以后自己看看,希望不要在出现这样的错误。

package s8_2;

/**

* @author Administrator

*本节主要是讲内部类和异常类

*/

/*

* 内部类主要是在以一个类里申明的一个类,内部类外面的类叫做外嵌类是叫其特点是:在内部类里外嵌类的成员变量和方法都有效

* 但是不可以申明类变量和类方法。

*

*/

class RedCowForm{

String fortName;

RedCow cow; //这是内部类生命的变量

RedCowForm(){}//构造方法

public RedCowForm(String s) {//带参数的构造方法

cow =new RedCow (150,115,5000);

fortName =s;

}

void showCowName(){//在外嵌类的方法中调用内部类的方法。

cow.speak();

}

class RedCow{
//这是内部 类

String cowName="红牛";

int height,weight,price;

RedCow(int h ,int w ,int p ){

height =h;

weight=w;

price=p;

}

void speak(){

System.out.println("偶是"+cowName+",身高:"+height+",体重:"+",价格:"+price);

}

}

}

public class Example8_2 {

public static void main(String[] args) {

// TODO 自动生成的方法存根

RedCowForm form=new RedCowForm();

form.showCowName();//使用外嵌类创建的对象只能使用外嵌类的成员方法,用该方法调用内部累的方法。

}

}

结果:Exception in thread "main" java.lang.NullPointerException

at s8_2.RedCowForm.showCowName(Example8_2.java:39)

at s8_2.Example8_2.main(Example8_2.java:49)

为什么出现这样的结果,因为是 RedCowForm form=new RedCowForm();少了参数,调用form.showCowName();方法时,cow没有创建,只是申明了,所以调用时出错了.加上去后就对了。

public class Example8_2 {

public static void main(String[] args) {

// TODO 自动生成的方法存根

RedCowForm form=new RedCowForm("xxxx");

form.showCowName();//使用外嵌类创建的对象只能使用外嵌类的成员方法,用该方法调用内部累的方法。

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: