学习java的第六周

一、工厂模式
1)抽象类:Animal 动物类 (基类)
2)提供一些子类,完成方法重写:eat(){} sleep(){}
3)提供一个接口 :
                  Factory
                          public Animal createAnimal() ;

                 DogFactory /CatFactory具体的子实现类实现对象的创建

      优点:具体的动物创建,交给类工厂类来实现 (面向接口编程),便于功能维护(代码维护)
      弊端:代码量非常大
              如果有新的类中增加,那么还必须提供对应具体的工厂类创建当前类实例
abstract class Animal{}
class Cat extends Animal{}
class Dog extends Animal{}
interface Factory{
    Animal createAnimal() ;
    
} //工厂接口

//具体的工厂类
class DogFactory implements Factory{
    public Animal createAnimal(){
        return new Dog() ;
    }
}
class CatFactory implements Factory{
    public Animal createAnimal(){
        return new Cat() ;
    }
}
二、单例模式
分为两种
1.饿汉式
1)构造方法私有:保证外界不能直接创建当前类对象
2)在当前类的成员位置:创建当前类实例
3)提供一个静态的功能,返回值就是当前类本身(需要当前类的实例)
//饿汉式:不会出现问题的单例
class Student{
    //在成员位置创建静态实例变量
    private static Student s = new Student() ;
    //构造方法私有化:目的外界不能使用它创建实例
    private Student(){}
    //提供静态的公共的访问,返回值就是当前类本身
    public static Student getInstance(){
        return s ;
    }
}
//jdk提供典型的类:Runtime:就是饿汉式

2.懒汉式:可能出现问题的一种单例模式
1)构造方法私有化
2)在当前成员变量的位置声明变量:数据类型就是当期类 (私有的,静态的)
3)提供静态功能,返回值还是当前类本身,
                  判断如果当前没有给当前类型变量为null,直接new 当期类的实例
                  如果不为null,就返回当前类的变
//懒汉式:可能出现线程安全问题的单例模式
class Teacher{
    //在成员位置声明当前类型的一个变量t
    private static Teacher t ;
    //构造方法私有
    private Teacher(){}
    //提供,静态功能,返回值当前类本身
    public synchronized  static Teacher getInstance(){ //静态的同步方法 (锁对象:类名.class):解决安全问题
        if(t == null){//需要使用的时候才创建对象
            t = new Teacher() ;
            return t
        }
        return t ;
    }
}
           
三、File类(文件和目录(文件夹)路径名的抽象表示)
File 文件和目录(文件夹)路径名的抽象表示。
构造方法
File(String pathname)  :参数就是指定的路径/如果没有指定路径(默认是在当前项目下)
通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例
File(File parent, String child)
从父抽象路径名和子路径名字符串创建新的 File实例。
File(String parent, String child):参数1:父目录地址    参数2:具体的子文件地址

成员方法:
      创建/删除/重名
      public boolean createNewFile()   throws IOException :表示创建文件 :如果不存在,则创建
      public boolean mkdir():创建文件夹,如果不存在,则创建;否则就返回false
      public boolean mkdirs():创建多个文件,如果父目录不存在,则创建
      public boolean delete():删除文件或者文件夹(如果删除文件夹,文件夹必须为空目录)
      public boolean renameTo(File dest):重命名
                  参数传递的修改的File对象
判断功能
  public boolean canRead()是否可读
  public boolean canWrite()是否可写
  public boolean exists():是否存在
  public boolean isFile():是否是文件
  public boolean isDirectory():是否是文件夹
  public boolean isHidden():是否隐藏


高级获取功能:
      public long length()
      public String getName():获取抽象路径 名所表示的文件或者目录的名称
      public File[] listFiles():获取某个目录下的所有的文件以及文件夹的File数组
      public String[] list():获取某个抽象路径名所表示的文件以及目录的字符串数组
四、递归
方法递归:方法调用方法本身的一种现象(不是方法嵌套方法)

前提条件
1)必须有一个成员方法
2)必须有方法递归的出口条件(结束条件),如果没有出口条件,就是死递归...
3)还存在一定的规律
注意事项:构造方法不存在递归

五、IO流
*分类
1)流的方向划分:
输入流: 读数据
输出流: 写数据

2)流的类型划分:
字节流:
      字节输入流
              InputStream
                      FileInputStream
              

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值