黑马程序员技术交流社区

标题: java 学习笔记7天(下) [打印本页]

作者: 陈捷旋    时间: 2015-3-25 10:37
标题: java 学习笔记7天(下)
/*
需求:获取一段程序运行的时间
原理:获取程序开始和结束的时间并相减即可。

获取时间:System.currentTimeMillis();

当代码完成优化后,就可以解决这类问题

这种方式就是:模版方法设计模式

什么是模版方法呢?
在定义功能时功能一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的部分,
那么这时就将不确定的部分暴露出去,由该类的子类去完成

*/

class GetTime
{
        public final void getTime()  //加final是为了没法改变和覆盖 这方法不给改
        {
                long star=System.currentTimeMillis();
               
                runcode();

                long end=System.currentTimeMillis();

                System.out.println("毫秒:"+(end-start));
        }
        public abstract void runcode();  //一个函数,打印的 没具体内容,所以是抽象类
}

class SubTime extends GetTime
{
        public void runcode()     //子类里面的一个普通程序
        {
                for(int x=0;x<4000;x++)
                {
                        System.out.print(x);
                }
        }
}

class TemplateDemo
{
        public static void main(String[] args)
        {
                GetTime gt=new GetTime();
                gt.getTime();
        }
}

/*
接口:初期理解,可以认为是一个特殊的抽象类
      当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示
class用于定义类
interface用于定义接口

接口定义时,格式特点:
1,接口中常见定义:常量,抽象方法
2,接口中的成员都有固定修饰符
    常量:public static final
    方法:public abstract
记住:接口中的成员都是public的

接口:是不可以创建对象的,因为有抽象方法
需要被子类实现,子类对接口中的抽象方法全都覆盖后

接口可以被类多实现 也是对多继承不支持的转换形式,java支持多实现

记住:一个类继承一个类还可以实现许多的接口
*/

案例:

interface Inter
{
        public static final int NUM=3;  //常量,不能变
        public abstract void show();    //方法,抽象类的
}

interface InterA
{
        public abstract void method();
}

class Test implements Inter,InterA   //子类实现多接口接口
{
        public void show(){}           //覆盖接口方法
        public abstract void method(); //覆盖接口InterA方法
       
}

class InterfaceDemo
{
        public static void main(String[] args)
        {
                Test t=new Test();
                System.out.print(t.NUM);
                System.out.print(Test.NUM);   //这三个打印的都是一样的是3
                System.out.print(Inter.NUM);
               
        }
}

多继承案例:

interface A
{
        void methodA();
        //int show();   这是绝对不允许出现的因为和接口B类型不同
}


interface B
{
        void methodB();
        //boolean show()     这是绝对不允许出现的因为和接口A类型不同
}                            //而A 和B又被类D多实现,系统会报错

interface C estends B,A
{
        void methodC();
}


class D implementd C
{
        public void methodA(){};  //覆盖要记得加public
        public void methodB(){};
        public void methodC(){};
       
}


当子类继承父类是具备父类的全部功能
子类也可以实现一些接口,但不是强制的

作者: xuweiyu    时间: 2015-3-25 10:45
大家加油啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2