面向对象

面向对象

1、接口interface

1、定义:不是class类,没有构造方法,其中没有实例化的方法,只有抽象的方法,且里面定义的常量不可以被改变。

2、用法:实现定义一个接口,public interface +名字{},然后可以在里面定义一些抽象的方法,子类通过implements实现多个接口,并且必须重写这些接口中的所有方法。

3、快捷键:子类快速定义接口中的方法Ctrl+i或Alt+Ins

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-inQv7VtT-1616923007744)(C:\Users\wang1015\AppData\Roaming\Typora\typora-user-images\image-20210328112813966.png)]

例:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-osip6oTY-1616923007747)(C:\Users\wang1015\AppData\Roaming\Typora\typora-user-images\image-20210328113242434.png)]

2、内部类

1、定义在类里面的小类,有很多种内部类,如成员内部类:

package day8;

public class Test1 {
    private int app=10;
    public void eat(){
        System.out.println(app);
    }
   public class Inner{
        public void eat2(){
            System.out.println("调用内部类");
            System.out.println(app);
        }
    }
}

还有局部内部类:

public class Test1 {
    private int app=10;
    public void eat(){
        //局部内部类,该方法的变量在局部内部类里面相当于是成员变量
        class Inner{
            //里面也可以写方法
        }
        System.out.println(app);
    }
    //成员内部类
   public class Inner{
        public void eat2(){
            System.out.println("调用内部类");
            System.out.println(app);
        }
    }
}

还有Test2这种内部类:

package day8;

public class Test1 {
    private int app=10;
    public void eat(){
        //局部内部类,该方法的变量在局部内部类里面相当于是成员变量
        class Inner{
            //里面也可以写方法
        }
        System.out.println(app);
    }
    //成员内部类
   public class Inner{
        public void eat2(){
            System.out.println("调用内部类");
            System.out.println(app);
        }
    }
}
//一个类中最多只能有一个public类
//下面的这个类可以用来进行调试,这也是属于内部类的一种
class Test2{
    public static void main(String[] args) {
        Test1 test1 = new Test1();
        test1.eat();
        Test1.Inner inner = test1.new Inner();
        inner.eat2();
    }
}

3、匿名类

定义:创建对象时不创建具体的名字,直接调用其它类中的方法或访问变量(访问变量时需要再重新定义一个变量)

package day8;

public class Demo02 {
    public static void main(String[] args) {
        Test1 test1 = new Test1();
        test1.eat();
      //  test1.eat2(); 会报错,不能直接调用内部类中的方法
        Test1.Inner inner = test1.new Inner();
        inner.eat2();/*这样就可以获得Test1里面的prviate的变量
                       这也是内部类最好的地方*/
        //匿名类
        new Test1().eat();
        int age = new Test1().age;    /*不能只写成
                                      new Test1().age;
                                      应该用age赋值*/


    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值