zoukankan      html  css  js  c++  java
  • java学习基础知识五

    一、类的成员之初始化块
    1、初始化块(代码块)的作用:对java对象进行初始化
      //在执行new Person();的时候
      //1、类的属性的默认初始化和显示初始化
      //2、执行代码块的代码
      //3、执行构造器的代码
    2、一个类中初始化块若有修饰符,则只能被static修饰,称为静态代码块(static block),
      当类被载入时,类属性的声明和静态代码块先后顺序被执行,且只被执行一次。

    二、非静态代码块:
    1、可以有输出语句
    2、可以对类的属性声明进行初始化操作
    3、可以调用静态和非静态的变量或方法
    4、若有多个非静态的代码块,按照从上到下的顺序一次执行
    5、每次创建对象的时候,都会执行一次,且先于构造器执行

    三、静态代码块:
    1、可以有输出语句
    2、可以对类的属性声明进行初始化操作
    3、不可以对非静态的属性初始化。即不可以调用非静态的属性和方法
    4、若有多个静态的代码块,按照从上到下的顺序一次执行
    5、静态代码块的执行要先于非静态代码块
    6、静态代码块只执行一次

    四、关键字final
    1、在java中声明类、属性和方法时,可使用关键字final来修饰,表示"最终
      →final标记的类不能被继承。——提高安全性,提高程序的可读性
        如String类、System类、StringBuffer类
      →final标记的方法不能被子类重写。
        如Object类中的getClass()
      →final标记的变量(成员变量或局部变量)即称为常量。名称大写,且只能被赋值一次
        如final double PI=3.14;

    五、关键字abstract
    1、用abstract关键字来修饰一个类时,这个类叫做抽象类;
    2、用abstract关键字来修饰一个方法时,该方法叫做抽象方法:只有方法的声明,没有具体实现
    如 abstract int abstractMethod();
    3、含有抽象方法的类必须声明为抽象类
    4、抽象类不能被实例化。抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,
    并提供具体的方法体。若没有重写全部的抽象方法,仍为抽象类。
    5、不能用abstract修饰属性、私有方法、构造器、静态方法和final的方法

    六、模板设计模式
      

    package test;
    
    /**
    * 模板设计模式
    * @author 小虞哥哥
    *
    */
    public abstract class Template {
    public abstract void code();
    
    public final void getTime(){}{
      long start=System.currentTimeMillis();
      code();
      long end =System.currentTimeMillis();
    
      System.out.println("code方法执行的时间:"+(end-start));
      }
    }
    
    class TestTP extends Template{
    @Override
    public void code() {
      // TODO Auto-generated method stub
      int count=0;
      for(int i=0;i<500000;i++){
      count++;
      }
    
      System.out.println(count);
    }
    }

    七、接口:被实现类实现(面向接口编程)
      →用interface来定义;
      →接口中的所有成员变量都默认是由 public static final修饰的;
      →接口中的所有方法都默认是由public abstract修饰的;
      →接口没有构造器;
      →接口采用多层继承机制
    1、有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。
      但是,java不支持多重继承,有了接口,就可以得到多重继承的效果。
    2、接口(interface)是抽象方法和常量值的定义的集合。
    3、从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。
    4、实现接口类:
      class SubClass implements InterfaceA{}
    5、一个类可以实现多个接口,接口也可以继承其他接口
    6、实现接口的类中必须提供接口中所有方法的具体实现内容,方可实例化。否则仍为抽象类
    7、如果一个类既继承父类,又实现接口,那么先继承再实现接口
      public class TestInImp2 extends Person implements TestIn{}
    8、如果实现接口中的类没有实现接口中的全部方法,必须将此类定义为抽象类

    八、工厂设计模式:

      面向接口编程,体现了面向对象的思想;将创建对象的工作转移到了工厂类,不用自己new了,委托给工厂生产。

    九、类的成员之内部类
    1、在java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类。
    2、Inner class 一般用在定义它的类或语句块之内,在外部引用它是必须给出完整的名称。
      Inner class 的名称不能与包含它的类名称相同
    3、Inner class可以使用外部类的私有数据因为它是外部类的成员,同一个类的成员之间可以互相访问。
      而外部类要访问内部类中的成员需要:内部类.成员或者内部类对象.成员
    4、分类:
      →成员内部类(static成员内部类和非static成员内部类)
      →局部内部类(不谈修饰符)、匿名内部类
    5、内部类Inner class作为类的成员:
      →可以声明为final
      →和外部类不同,Inner class可声明为private或protected
      →Inner class可以声明为static,但此时就不能再用外部类的非static的成员变量
    6、Inner class作为类:
      可以声明为abstract类,因此可以被其他的内部类继承

    十、面向对象总结

      

  • 相关阅读:
    如何使用 systemctl 管理服务
    Linux 下 SVN 的安装和配置
    C语言程序设计
    mysql 常用关键字操作(字符串转数字,字符串截取)
    Spring入门学习---05
    Spring入门学习---03
    使用 TiUP 部署 TiDB 集群
    docker安装kafka+kafka-manager集群
    发发牢骚
    php修改JPG格式图片的dpi
  • 原文地址:https://www.cnblogs.com/MeiToufu/p/14328125.html
Copyright © 2011-2022 走看看