java中内部类和异常类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yanghuangsanguo/article/details/22522789

这是在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();//使用外嵌类创建的对象只能使用外嵌类的成员方法,用该方法调用内部累的方法。

}


}




猜你喜欢

转载自blog.csdn.net/yanghuangsanguo/article/details/22522789