• 接口的使用,内部类


    接口的使用:

    接口定义好后,如何使用这些接口呢?只要在类的声明语句中使用关键字implements,声明该类实现了某个或多个接口,同时要在类中实现接口中定义的所有方法。具体格式如下:

    [类修饰符]class类名 implements多个接口

    {

    实现接口中的方法

    }

    在类体中实现接口中的方法必须是公有public方法,如果不加public,程序会出错。我们对上面定义的接口写出具体的实现,程序如下:

    Class A implements Son

    {

    public void fn1()

    {

    System.out.println(“fn1 ok”);

    }

    public void fn2(){

    }

    Public void fn3()

    {

    }

    public void fn5()

    {}

    Public void fn4()

    {}

    }

    接口的用法:定义一个接口图形类,派出3个子类:三角形类,矩形类,圆形类,求面积.。

    package com.extend;

    public class Test1{

    public static void main(String []args){

    Recte rect=new Recte(3,4);

    rect,area();

    Anglex ang=newAnglex(3,4);

    ang,area()

    Circlex cir=new Circlex(5)

    Cir,area();

    }

    }

    Interface Shape{

    public final double PI=3.1415;

    public abstract void area();

    }

    class Recte implements Shape{

    private int1.w;

    Recte(int a1,int b1){

    this.1=a1

    this.w=b1

    }

    public void area(){

    double s;

    s=1*w;

    System.out.println(“矩形的面积为:”+s);

    }

    }

    class Anglex implements Shape{

    private int 1,h

    Anglex(int11,int h1){

    this.1=11;

    this.h=h1;

    }

    Public void area(){

    double s;

    s=0.5*1*h;

    System.out.println(三角形的面积为:”+s);

    }

    }

    class Circlex implements Shape{

    private int r;

    Circlex(int r1){

    this.r=r1;

    }

    public void area(){

    double s;

    s=PI*r*r;

    System.out.println(“圆形的面积为:”+s);

    }

    }

    ps:继承抽象类:优势为抽象类中方法不需要全部实现,缺陷为单继承系。

    实现接口:缺陷为接口中的方法必须全部实现,优势为多继承系。

    在我们写程序的时候,可以将接口保存成一个文件,类保存成一个文件。

    内部类和匿名类:

    简单地说,内部(inner)类是指那些定义代码被置于其他定义中的类;而对于一般的类定义代码不嵌套在其他类定义中的类,称为顶层(top-level)类。对于一个内部类来讲,包含其定义代码的类称为它的外部(outer)类。

    匿名类,顾名思义就是没有名字的类。并不是所有的类都可以是匿名类,只有内部类才可以是匿名类。也就是说,我们在定义内部类时,可以不给内部类起名字,称为匿名内部类,简称匿名类。

    内部类:

    在一个类的内部定义另外一个类,这个类就叫做内部类(inner class)。内部类的定义和普通类的定义没什么区别,它可以直接访问和引用它的外部类的所有变量和方法(包括private),就像外部类中的其他非static成员的功能一样。区别是,外部类只能声明为public和default,而内部类可以声明为private和protected。

    当我们建立一个内部类时,其对象就拥有了与外部类对象之间的一种关系,当内部类的成员方法访问某个变量/方法时,如果在该方法和和内部类中都没有定义过这个变量,词用就会被传递给内部类中保存的那个外部类对象的引用,通过那个外部类对象的引用去调用这个变量。

    内部类:

    public class Test2{

    public static void main(String []args){

    //Inner in=new Inner();错误

    Outer out=new Outer();

    Out.outMethod();

    }

    }

    Class Outer

    {

    int s=10;

    void outMethod()

    {

    Inner i=new Inner();;

    i.inMethod();

    }

    class Inner

    {

    int t;

    void inMethod()

    {

    t=20;

    s++;

    System.out.println(s+t);

    }

    }

    }

    在该程序中,在类Outer的内部包含了类Inner的定义,这时Outer类称为外部类,Inner类称为内部类。在外部类Outer的里面,可以对内部类进行任何访问,在outMethod()方法中就创建了内部类的对象,调用了内部类中的inMethod()方法。在内部类中,可以访问在外部类中定义的各种成员,例如在inMethod()方法中使用了外部类中定义的成员变量s。而在类的外部,主类中,不能对内部类直接进行访问,“Inner in=new Inner();”这条语句是错误的。我们只能创建Outer类的对象,通过外部类的成员方法对内部类进行操作。

  • 相关阅读:
    Oracle EBS json
    OAF--基础
    Oracle EBS FA 本年折旧
    Oracle EBS FA 获取累计折旧
    SOAP REST
    Oracle EBS FA 资产取值
    Java ——基础语法
    PL/SQL APIs for Concurrent Processing
    Using Globals in Oracle Reports (Doc ID 34751.1)
    Using SRW Packaged Procedures In Reports (Doc ID 61643.1)
  • 原文地址:https://www.cnblogs.com/Angella/p/6024921.html
Copyright © 2020-2023  润新知