Java_接口与抽象类的小程序

1.代码:

用输入输出语句表示窗口的创建
主函数:

public class mainClass {
    public static void main(String[] args){

        mainView mainView = new mainView();
        mainView.touch();

    }
}

窗口:抽象函数与接口的实现

public class mainView extends activity implements View.OnClickListener{

    Button button;
    ImageView img;

    public mainView(){
        onCreate();
    }

    @Override
    public void onCreate() {
        button = new Button("分享","红色");
        img = new ImageView("海滩");

        //添加控件
        addChild(button);
        addChild(img);

        //告诉按键是谁在监听事件
        button.onClickListener = this;
        //给图片添加事件
        img.onClickListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                System.out.println("图片被点击了");
            }
        };
    }
    public void touch(){
        //将屏幕被触摸的事件传递给按键
        button.getToughEvent();
        img.getToughEvent();
    }
    @Override
    public void onDestory() {

    }
    //实现监听事件的接口
    @Override
    public void onClick(View v) {
        System.out.println("按键被点击了");
    }
}

定义抽象类(窗口主要的操作)

public abstract class activity {
    public abstract void onCreate();
    public abstract void onDestory();

    //保存这个界面的所有子视图
    public ArrayList childs = new ArrayList<>();

    //添加控件
    public  void addChild(View view){
        if (view instanceof Button){
            Button button = (Button)view;
            System.out.println(button.title + "被添加到窗口上了");
        }else {
            ImageView imageView = (ImageView)view;
            System.out.println(imageView.picture + "添加到窗口上了");
        }
        childs.add(view);
    }
}

定义接口:

//管理视图的事件
public class View {
    String backgroundColor;
    String bordrerColor;

    //记录谁在监听这个事件
    OnClickListener onClickListener;

    //内部接口,监听视图的事件
    public interface OnClickListener{
        void onClick(View v);
    }

    //控件监听事件
    public void getToughEvent(){
        onClickListener.onClick(this);
    }
}

图片视图:(继承于View)

public class ImageView extends View{
    String picture;

    public ImageView(String picture){
        this.picture = picture;
    }
}

按键视图:(继承于View)

public class Button extends View{
    String title;
    String titleColor;
    public Button(String title,String titleColor){
        this.title = title;
        this.titleColor = titleColor;
    }
}

打印结果:

分享被添加到窗口上了
海滩添加到窗口上了
按键被点击了
图片被点击了
程序框架图:
Java_接口与抽象类的小程序_第1张图片
image.png

你可能感兴趣的:(Java_接口与抽象类的小程序)