JAVA内部类与异常类

内部类

定义

在类A中声明了类B,B称为内部类,A称为B的外嵌类

应用

需要建立一个类,不想它为外界所用

public class RedCowform{
    static String formName = "红牛农场";
    Redcow cow;// 声明
    public RedCowform(){
        cow = new RedCow();
    }
    class RedCow{
        String Name;
        int height,weight,price;
        RedCow(){
            //赋值 可以使用外嵌类的方法
        }
    }
    void speak(){
        //输出
    }
}

补充说明

  • 继承:外嵌类的子类能够继承该类的内部类
public class NewRedcowform extends Redcowform{
  // 能使用redcow的方法  
}
  • 内部类也能继承其他类

  • 访问外嵌类的同名变量\方法

    Outer.this.name=''

匿名类

定义

class People{
    void print(){
        System.out.println("I am a People");
    }
}
public class Test{
    public static class(){
        public static void  main(String[] args){
            People stu = new People(){
                void print(){// 对方法重写
                    System.out.println("I am a Student");
                }
            };
        }
        stu.print();
    }
}
Pet newpet = new Pet(){
    public void speak(){
        System.out.println("sadd");
    }
};
newpet.speak();

异常类

try-catch语句

try{
    //包含可能发生异常的语句 发生异常即转向catch
}catch(/*Exception的某个子类*/){
       
}

自定义异常类

  • public class DangerException extends Exception{
        String message;
          public DangerException(int n){
              message="第"+n+"个物品危险";
          }
          public void toShow(){
              System.out.println(message);
          }
    }

    创造一个Exception的子类

  • 其他

/*抛出异常的处理*/
class Machine{
    public void checkBag(Goods goods) throws DangerException {
        if(goods.isDanger==true) throw new DangerException(goods.num);
        System.out.println("第"+goods.num+"个物品安全");
    }
}
/*商品属性*/
class Goods{
    boolean isDanger;
    int num;
    public Goods(boolean m,int n){
        isDanger = m;
        num=n;
    }
}
public class Main{
    public static void main(String[] args){
        Machine machine = new Machine();
        Goods goods = new Goods(false,1);
        Goods goods2 = new Goods(false,3);
        Goods goods1 = new Goods(true,5);
        Goods goods3 = new Goods(false,8);
        try{
            machine.checkBag(goods);
            machine.checkBag(goods2);//继续执行或者抛出异常
            machine.checkBag(goods1);
            machine.checkBag(goods3);
        } catch (DangerException e) {// catch到异常 
            System.out.println("危险警告!!!!");
            e.toShow();
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/smallocean/p/10217531.html