JAVA—day6

一、目的

  • 掌握抽象类的使用
  • 学习接口的作用,掌握其使用
  • 了解模板设计模式
  • demo编写

二、技术及其使用

1.主界面
public class MainActicity extends Activity implements View.OnClickListener{
    Button btn;
    ImageView img;
    //构造方法
    public MainActicity(){
        //当界面被创建 就自动调用onClick方法
        onCreate();
    }

    @Override
    public void onCreate() {
        //主界面如何布局
        //添加一个按钮
        btn=new Button("分享","红色");

        //添加一张图片
        img=new ImageView("周杰伦");

        //将创建的
        addChild(btn);
        addChild(img);

        //1.
        //如果一个控件需要监听事件 那么就必须实现监听事件的接口
        //告诉按钮是谁在监听这个事件
        btn.listener=this;
        //2.
        //
        img.listener=new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                System.out.println("图片被点击了");
            }
        };
    }
    //模拟触摸
    public void touch(){
        btn.getTouchEvent();
        img.getTouchEvent();
    }
    @Override
    public void onDestory() {
        //销毁之前需要做点什么事情
    }

    //当事件触发 就会来调用这个onClick方法
    @Override
    public void onClick(View v) {
        System.out.println("按钮被点击了");
    }
}
2.管理视图显示和事件监听
public class View{
    //所有的视图共有的属性
    String backgroundColor;
    String borderdColor;

    //记录谁想监听我这个事件
    //暂时我不确定是谁要监听
    //但是监听事件的人肯定实现了这个接口
    OnClickListener listener;

    //所有的视图都要监听事件
    //定义内部接口 封装
    public interface OnClickListener{
        //定义一套方法 约束外部使用这些方法来监听事件
        void onClick(View v);
    }

    //用于控件接收触摸事件
    public void getTouchEvent(){
        //调用监听者里面的onClivk方法
        listener.onClick(this);
    }
}
3.创建一个按钮类
public class Button extends View {
    String title;
    String titleColor;

    public Button(String title,String titleColor){
        this.title=title;
        this.titleColor=titleColor;
    }
}
4.显示一张图片
public class ImageView extends View {
    String picture;
    public ImageView(String picture){
        this.picture=picture;
    }
}
5.定义一个界面创建到结束的模板
public abstract class Activity {
    //保存这个界面的所有子视图
    public ArrayList<View> childs=new ArrayList<>();
    //界面创建
    public abstract void onCreate();

    //界面销毁
    public abstract void onDestory();

    //将子控件添加到当前界面上去
    //接收的时候是用父类接收子类
    //当需要访问子类内容的时候 就要强制转化为对应的类

    public void addChild(View v){
        if (v instanceof Button) {

            Button btn=(Button)v;
            System.out.println(btn.title+"按钮显示到界面上了");
        }if (v instanceof ImageView) {
            ImageView iv = (ImageView) v;
            System.out.println(iv.picture+"的图片显示到界面上");
        }

            //保存子控件
            childs.add(v);
    }
}
6.创建测量代码执行效率的模板
abstract class TimeTemplate{
    //通过实现这个方法 获得具体测量的代码
    public abstract void code();

    //实现测量
    public void calculate(){
        long start=System.currentTimeMillis();

        //测量的代码
        code();

        long end=System.currentTimeMillis();

        System.out.println(end-start);
    }
}
class MyCode extends TimeTemplate{
    @Override
    public void code() {
        //写自己的测试代码
        int total=0;
        for (int i=0;i<100000;i++){
            total+=i;
        }
    }
}

三、主函数及预览

(1)demo1:
public class MyClass {
    public static void main(String[] args){
        //启动程序 创建界面
        MainActicity main=new MainActicity();
        //模拟触摸
        main.touch();
    }
}
1.png
(2)demo2:
public class Myclass {
    public static void main(String[] args){
        MyCode test=new MyCode();
        test.calculate();
    }
}
2.png

四、心得体会

又是一天的学习过去了,貌似不会的东西越来越多了,也不知道什么时候才能融会贯通,继续努力吧!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 抽象类 接口 目的 1.了解抽象类的基本概念普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以...
    欲擒故纵_a222阅读 136评论 0 0
  • java语言中,根据定义变量的位置不同,可以将变量分成两大类:成员变量和局部变量。成员变量和局部变量的运行机制存在...
    伊卡洛斯丶阅读 279评论 0 0
  • static关键字 1, 使用static声明属性 static声明全局属性 2, 使用static声明方法 ...
    o0寳贝阅读 369评论 0 0
  • 今天学了类的一些内容 把关键词abstract加载类声明的前面,就把一个类编程抽象类 抽象类 不能被实例化 抽象类...
    惨不忍睹阅读 172评论 0 0
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,699评论 1 32

友情链接更多精彩内容